Mathematical Foundation

Schubert uses Schubert calculus — a branch of algebraic geometry — to make access control decisions. You don't need to be a mathematician, but understanding the core concepts helps design better policies.

The Grassmannian as Policy Space

A Grassmannian Gr(k,n) is the space of all k-dimensional subspaces of an n-dimensional vector space. In Schubert, we use it as the policy space — each point represents a possible access configuration.

The dimension of Gr(k,n) is k(n−k). This is the maximum number of independent Schubert conditions you can impose before the space collapses:

Gr(k,n)DimensionMax Independent Conditions
Gr(2,4)44
Gr(3,6)99
Gr(4,8)1616

Schubert Conditions

A Schubert condition is a geometric constraint defined by a partition — a weakly decreasing sequence of integers like [1], [2,1], or [2,2]. Each partition corresponds to a specific subspace constraint.

The codimension of a condition is the sum of the partition entries. Higher codimension = more restrictive:

PartitionCodimensionTypical Use
[1]1Read access
[2]2Write access
[1,1]2Read + audit
[2,1]3Manage
[2,2]4Admin (point class)

Schubert Intersection

When you check multiple capabilities, Schubert computes their Schubert intersection. The intersection number (Littlewood-Richardson coefficient) tells you how many configurations satisfy all conditions simultaneously:

  • Positive integer: access is granted with that many configurations
  • Zero: the conditions are geometrically impossible together (the killer feature)
  • Too many conditions (> dimension): overconstrained — access denied

Key Algebraic Identities

Note: These are identities in algebraic geometry (facts about Grassmannians), not validated security properties. The security relevance depends on the formal mapping from your domain to Schubert conditions. See Distributed Game Sync for the formal mapping.

  • σ₁⁴ = 2 in Gr(2,4) — four read-like conditions yield exactly 2 configurations
  • σ₂ · σ₁₁ = 0 — write + internal-audit is geometrically impossible
  • Composition is commutative — grant order doesn't matter
  • Grant-revoke identity — grant then revoke = no net change

Notation Guide

SymbolMeaning
σ_λSchubert class indexed by partition λ
σ₁Schubert class for partition [1] (codimension 1)
σ₂Schubert class for partition [2] (codimension 2)
σ₁₁Schubert class for partition [1,1] (codimension 2, different direction from σ₂)
σ₂₂Schubert class for partition [2,2] — the point class (codimension 4 in Gr(2,4), the class of a single point)

The partition [λ₁, λ₂, ...] and the Schubert class σ_λ refer to the same object. We use partitions when defining capabilities and σ notation when computing intersections.

External References

Prior Work in Access Control