Documentation

Atlas.Buildings.code.GeometricAlgebra.SemidirectExistence

theorem GeometricAlgebra.isCompl_of_isOppositeFlag {k : Type u_1} [Field k] {V : Type u_2} [AddCommGroup V] [Module k V] (F F' : Flag k V) (hopp : F.isOppositeFlag F') (i : Fin F.len) :
IsCompl (F.spaces i) (F'.spaces F'.len - 1 - i, )

If F' is an opposite flag to F, then for each level i the space F.spaces i and the matching level F'.spaces (F'.len - 1 - i) of F' are complementary.

theorem GeometricAlgebra.opposite_top_is_bot {k : Type u_1} [Field k] {V : Type u_2} [AddCommGroup V] [Module k V] (F F' : Flag k V) (hopp : F.isOppositeFlag F') (hlen : 0 < F.len) (hcov : F.spaces F.len - 1, = ) :
F'.spaces 0, =

If the top level of F is all of V and F' is opposite to F, then the bottom level of F' is the zero subspace.

theorem GeometricAlgebra.semidirect_existence_len_one {k : Type u_1} [Field k] {V : Type u_2} [AddCommGroup V] [Module k V] (F F' : Flag k V) (hopp : F.isOppositeFlag F') (hlen1 : F.len = 1) (hcov : F.spaces F.len - 1, = ) (p : V ≃ₗ[k] V) (hp : ∀ (i : Fin F.len), Submodule.map (↑p) (F.spaces i) = F.spaces i) :
∃ (d : V ≃ₗ[k] V) (u : V ≃ₗ[k] V), (∀ (i : Fin F.len), Submodule.map (↑d) (F.spaces i) = F.spaces i) (∀ (i : Fin F'.len), Submodule.map (↑d) (F'.spaces i) = F'.spaces i) (∀ (i : Fin F.len), Submodule.map (↑u) (F.spaces i) = F.spaces i) (∀ (i : Fin F.len), vF.spaces i, u v - v if x : i = 0 then else F.spaces i - 1, ) p = d ∘ₗ u

Base case of the semidirect existence theorem: for a length-one flag (with the unique level equal to V), the trivial factorization p = p ∘ id works.

theorem GeometricAlgebra.map_eq_of_forall_mem {k : Type u_1} [Field k] {V : Type u_2} [AddCommGroup V] [Module k V] (W : Submodule k V) (e : V ≃ₗ[k] V) (h1 : wW, e w W) (h2 : wW, e.symm w W) :
Submodule.map (↑e) W = W

A submodule W is preserved by a linear equivalence e iff e maps W into itself and e.symm maps W into itself.

theorem GeometricAlgebra.block_diagonal_decomp {k : Type u_1} [Field k] {V : Type u_2} [AddCommGroup V] [Module k V] [FiniteDimensional k V] (W W' : Submodule k V) (hc : IsCompl W W') (p : V ≃ₗ[k] V) (hpW : Submodule.map (↑p) W = W) :
∃ (d₀ : V ≃ₗ[k] V) (u₀ : V ≃ₗ[k] V), Submodule.map (↑d₀) W = W Submodule.map (↑d₀) W' = W' Submodule.map (↑u₀) W = W (∀ (v : V), u₀ v - v W) p = d₀ ∘ₗ u₀ wW, d₀ w = p w

Block-diagonal decomposition: given a p-stable subspace W with complement W', factor p = d₀ ∘ u₀ where d₀ is block-diagonal (stabilizes both W and W' and agrees with p on W) and u₀ is "unipotent" along W (i.e. u₀ v - v ∈ W for every v). The block-diagonal part d₀ is constructed via the projection W' →ₗ W' induced by p.

theorem GeometricAlgebra.preserves_of_unipotent_le {k : Type u_1} [Field k] {V : Type u_2} [AddCommGroup V] [Module k V] (S W : Submodule k V) (e : V ≃ₗ[k] V) (hunip : ∀ (v : V), e v - v W) (hle : W S) :
Submodule.map (↑e) S = S

A "unipotent" linear equivalence (one whose deviation from the identity lies in W) preserves every submodule S containing W.

theorem GeometricAlgebra.semidirect_existence_inductive_step {k : Type u_1} [Field k] {V : Type u_2} [AddCommGroup V] [Module k V] [FiniteDimensional k V] (F F' : Flag k V) (hopp : F.isOppositeFlag F') (hlen : 2 F.len) (hcov : F.spaces F.len - 1, = ) (p : V ≃ₗ[k] V) (hp : ∀ (i : Fin F.len), Submodule.map (↑p) (F.spaces i) = F.spaces i) (ih : ∀ (G G' : Flag k V), G.len = G'.len(∀ (hlen_eq : G.len = G'.len) (i : Fin G.len), G.spaces iG'.spaces G'.len - 1 - i, = G.spaces iG'.spaces G'.len - 1 - i, = )G.len < F.len∀ (hGpos : 0 < G.len), G.spaces G.len - 1, = ∀ (q : V ≃ₗ[k] V), (∀ (j : Fin G.len), Submodule.map (↑q) (G.spaces j) = G.spaces j)∃ (d : V ≃ₗ[k] V) (u : V ≃ₗ[k] V), (∀ (j : Fin G.len), Submodule.map (↑d) (G.spaces j) = G.spaces j) (∀ (j : Fin G'.len), Submodule.map (↑d) (G'.spaces j) = G'.spaces j) (∀ (j : Fin G.len), Submodule.map (↑u) (G.spaces j) = G.spaces j) (∀ (j : Fin G.len), vG.spaces j, u v - v if x : j = 0 then else G.spaces j - 1, ) q = d ∘ₗ u) :
∃ (d : V ≃ₗ[k] V) (u : V ≃ₗ[k] V), (∀ (i : Fin F.len), Submodule.map (↑d) (F.spaces i) = F.spaces i) (∀ (i : Fin F'.len), Submodule.map (↑d) (F'.spaces i) = F'.spaces i) (∀ (i : Fin F.len), Submodule.map (↑u) (F.spaces i) = F.spaces i) (∀ (i : Fin F.len), vF.spaces i, u v - v if x : i = 0 then else F.spaces i - 1, ) p = d ∘ₗ u

Inductive step of the semidirect existence theorem: given the IH for shorter flags, factor a stabilizer of F as p = d ∘ u where d preserves both F and the opposite flag F', and u is unipotent along the flag.