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.
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)