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.
def
Module.Basis.flag
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{n : ℕ}
(b : Basis (Fin n) R M)
(k : Fin (n + 1))
:
Submodule R M
The subspace spanned by the first k vectors of the basis b.
Instances For
@[simp]
theorem
Module.Basis.flag_zero
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{n : ℕ}
(b : Basis (Fin n) R M)
:
@[simp]
theorem
Module.Basis.flag_last
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{n : ℕ}
(b : Basis (Fin n) R M)
:
theorem
Module.Basis.flag_succ
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{n : ℕ}
(b : Basis (Fin n) R M)
(k : Fin n)
:
theorem
Module.Basis.self_mem_flag
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{n : ℕ}
(b : Basis (Fin n) R M)
{i : Fin n}
{k : Fin (n + 1)}
(h : i.castSucc < k)
:
b i ∈ b.flag k
@[simp]
theorem
Module.Basis.self_mem_flag_iff
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{n : ℕ}
[Nontrivial R]
(b : Basis (Fin n) R M)
{i : Fin n}
{k : Fin (n + 1)}
:
theorem
Module.Basis.flag_mono
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{n : ℕ}
(b : Basis (Fin n) R M)
:
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)
:
@[deprecated Module.Basis.flag_mono (since := "2025-10-20")]
@[deprecated Module.Basis.flag_strictMono (since := "2025-10-20")]
theorem
Module.Basis.flag_lt_flag
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{n : ℕ}
{b : Basis (Fin n) R M}
{i j : Fin (n + 1)}
[Nontrivial R]
(hij : i < j)
:
@[simp]
theorem
Module.Basis.flag_le_ker_coord_iff
{R : Type u_1}
{M : Type u_2}
[CommRing R]
[AddCommGroup M]
[Module R M]
{n : ℕ}
[Nontrivial R]
(b : Basis (Fin n) R M)
{k : Fin (n + 1)}
{l : Fin n}
:
theorem
Module.Basis.flag_le_ker_dual
{R : Type u_1}
{M : Type u_2}
[CommRing R]
[AddCommGroup M]
[Module R M]
{n : ℕ}
(b : Basis (Fin n) R M)
(k : Fin n)
:
theorem
Module.Basis.flag_covBy
{K : Type u_1}
{V : Type u_2}
[DivisionRing K]
[AddCommGroup V]
[Module K V]
{n : ℕ}
(b : Basis (Fin n) K V)
(i : Fin n)
:
theorem
Module.Basis.flag_wcovBy
{K : Type u_1}
{V : Type u_2}
[DivisionRing K]
[AddCommGroup V]
[Module K V]
{n : ℕ}
(b : Basis (Fin n) K V)
(i : Fin n)
:
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.
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)
:
@[simp]
theorem
Module.Basis.mem_toFlag
{K : Type u_1}
{V : Type u_2}
[DivisionRing K]
[AddCommGroup V]
[Module K V]
{n : ℕ}
(b : Basis (Fin n) K V)
{p : Submodule 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)