Canonical complements and canonical linear maps #
The paper's preliminaries.tex, sec:linear-spaces: two different "perps", both needed by the
seeded CL low-degree test, whose questions are (uโ, s) and (uโ, s, v) with
uโ = L^Ln_v(u) the canonical representative of a line.
- The orthogonal complement
Sแฎfor the standard dot product (defbeforelem:perp_perp). Over a finite field this is not a direct-sum complement ---span{(1,1)}over๐ฝโis orthogonal to itself --- butdim S + dim Sแฎ = nand(Sแฎ)แฎ = Shold over every field (lem:perp_perp). Here it is Mathlib'sLinearMap.BilinForm.orthogonalofdotForm, and the lemma is Mathlib's, oncedotFormis shown reflexive and nondegenerate. - The canonical complement
F^โฅof a setFof linearly independent vectors (def:canonical-complement), which is a direct-sum complement (lem:canonical-complement) and is a set of standard basis vectors.
The paper defines the canonical complement by reduced row echelon form. This file uses the
equivalent characterization rk:cancomp credits to a referee, which is what makes the
construction formalizable and its well-definedness immediate: with
uโฑผ = dim (S โ span {eแตข : i โฅ j}), the complement is {eโฑผ : uโฑผ = u_{j+1}}. It depends on the
subspace S = span F alone, with no echelon form, no choice of basis and no ordering of F to
quotient by --- so canonLin, the projector onto that complement parallel to S
(def:cl-canonical), is a function of S, which is exactly what rk:cancomp has to argue.
pivots S is the paper's set J of pivot columns, and #(pivots S) = dim S
(card_pivots): the two characterizations agree.
Coordinate subspaces cut out by vanishing #
The projection onto the coordinates in J.
Equations
- MIPRE.CL.projTo J = LinearMap.pi fun (j : โฅJ) => LinearMap.proj โj
Instances For
The tail subspaces and the pivot set #
tail j = span {eแตข : i โฅ j}, the vectors whose coordinates below j vanish.
Equations
- MIPRE.CL.tail n j = MIPRE.CL.coordSub {i : Fin n | โi < j}
Instances For
uโฑผ = dim (S โ tail j), the dimension sequence of rk:cancomp.
Equations
- MIPRE.CL.dimTail S j = Module.finrank F โฅ(S โ MIPRE.CL.tail n j)
Instances For
The pivot set J of S: the indices at which the dimension sequence drops.
Equations
- MIPRE.CL.pivots S = {j : Fin n | MIPRE.CL.dimTail S (โj + 1) < MIPRE.CL.dimTail S โj}
Instances For
Counting the pivots below j + 1, for an arbitrary index set, in the two cases separately.
Stated for a variable Finset, and with no if, on purpose: pivots S is a
Finset.filter over a Nat inequality between finranks, so it carries a Decidable
instance that cannot be evaluated, and either letting simp see through it or asking rw to
unify it against a Classical instance costs a whnf timeout.
The canonical complement and the canonical linear map #
lem:canonical-complement: S and its canonical complement are complementary.
The canonical linear map with kernel S (def:cl-canonical): the projector onto the
canonical complement of S, parallel to S. It is a function of S alone, which is what
rk:cancomp argues.
Equations
- MIPRE.CL.canonLin S = (MIPRE.CL.canonCompl S).projection S โฏ
Instances For
A point differs from its canonical representative by an element of S. For a line ---
S = span {w} --- this is the statement that the base point the seeded test reports lies on the
line through the sampled point, which is what lets a line answer be evaluated at the point.
The dot product and orthogonal complements #
The paper's other perp: the orthogonal complement for the standard dot product. Over a finite
field it need not be a direct-sum complement, but lem:perp_perp holds over every field.
The standard dot product on Fin n โ F, as a bilinear form.
Equations
- MIPRE.CL.dotForm F n = LinearMap.mkโ F (fun (x y : Fin n โ F) => โ i : Fin n, x i * y i) โฏ โฏ โฏ โฏ
Instances For
The orthogonal complement of S for the dot product. Over a finite field this need
not be a complement of S --- span{(1,1)} over ๐ฝโ is orthogonal to itself --- which is
exactly why the canonical complement above exists.
Equations
- MIPRE.CL.perp S = (MIPRE.CL.dotForm F n).orthogonal S