Flag of submodules defined by a basis #
In this file we define Basis.flag b k, where b : Basis (Fin n) R M, k : Fin (n + 1),
to be the subspace spanned by the first k vectors of the basis b.
We also prove some lemmas about this definition, including flag_map, Basis.mkFinCons, and
mem_flag_iff_repr_eq_zero.
theorem Module.Basis.flag_strictMono {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {n : ℕ} [Nontrivial R] (b : Basis (Fin n) R M) :
theorem Module.Basis.span_singleton_le_mkFinCons_flag_succ {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] {n : ℕ} {v : M} {W : Submodule R M} {bW : Basis (Fin n) R ↥W} {hli : ∀ (c : R), ∀ x ∈ W, c • v + x = 0 → c = 0} {hsp : ∀ (z : M), ∃ (c : R), z + c • v ∈ W} (k : Fin (n + 1)) :
The span of the new head vector lies in the successor flag of Basis.mkFinCons.
theorem Module.Basis.map_flag_le_mkFinCons_flag_succ {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] {n : ℕ} {v : M} {W : Submodule R M} {bW : Basis (Fin n) R ↥W} {hli : ∀ (c : R), ∀ x ∈ W, c • v + x = 0 → c = 0} {hsp : ∀ (z : M), ∃ (c : R), z + c • v ∈ W} (k : Fin (n + 1)) :
The image of a flag under Submodule.subtype lies in the successor flag of
Basis.mkFinCons.
noncomputable def Module.Basis.toFlag {K : Type u_1} {V : Type u_2} [DivisionRing K] [AddCommGroup V] [Module K V] {n : ℕ} (b : Basis (Fin n) K V) :
Range of Basis.flag as a Flag.
Equations
- b.toFlag = Flag.rangeFin b.flag ⋯ ⋯ ⋯
Instances For
@[simp]
theorem Module.Basis.toFlag_carrier {K : Type u_1} {V : Type u_2} [DivisionRing K] [AddCommGroup V] [Module K V] {n : ℕ} (b : Basis (Fin n) K V) :
theorem Module.Basis.isMaxChain_range_flag {K : Type u_1} {V : Type u_2} [DivisionRing K] [AddCommGroup V] [Module K V] {n : ℕ} (b : Basis (Fin n) K V) :
IsMaxChain (fun (x1 x2 : Submodule K V) => x1 ≤ x2) (Set.range b.flag)