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.
theorem
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)
:
b.flag k.succ = Submodule.span R {b k} ⊔ b.flag k.castSucc
theorem
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)
:
StrictMono b.flag
theorem
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)
:
b.flag i < b.flag j
@[simp]
theorem
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}
:
b.flag k ≤ LinearMap.ker (b.coord l) ↔ k ≤ l.castSucc
theorem
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)
:
b.flag k.castSucc ≤ LinearMap.ker (b.dualBasis k)
theorem
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)
:
b.flag i.castSucc ⋖ b.flag i.succ
theorem
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)
:
b.flag i.castSucc ⩿ b.flag i.succ
def
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
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
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)