This file provides notation used in the project and conversions between set-theoretical and type-theoretical definitions.
Roughly speaking a ᕃ A
is A ∪ {a}
.
Equations
- «term_ᕃ_» = Lean.ParserDescr.trailingNode `«term_ᕃ_» 66 67 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ᕃ ") (Lean.ParserDescr.cat `term 66))
Instances For
Writing X ⫗ Y
is slightly more general than writing X ∩ Y = ∅
.
Equations
- «term_⫗_» = Lean.ParserDescr.trailingNode `«term_⫗_» 61 62 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⫗ ") (Lean.ParserDescr.cat `term 62))
Instances For
The left-to-right direction of ↔
.
Equations
- «term_.→» = Lean.ParserDescr.trailingNode `«term_.→» 1024 1024 (Lean.ParserDescr.symbol ".→")
Instances For
The right-to-left direction of ↔
.
Equations
- «term_.←» = Lean.ParserDescr.trailingNode `«term_.←» 1024 1024 (Lean.ParserDescr.symbol ".←")
Instances For
@[reducible, inline]
abbrev
Matrix.prependId
{α : Type}
[Zero α]
[One α]
{m n : Type}
[DecidableEq m]
[DecidableEq n]
(A : Matrix m n α)
:
Equations
- A.prependId = Matrix.fromCols 1 A
Instances For
theorem
IsUnit.linearIndependent_matrix
{α : Type}
[DecidableEq α]
[Fintype α]
{R : Type}
[CommRing R]
{A : Matrix α α R}
(hA : IsUnit A)
:
theorem
HasSubset.Subset.elem_injective
{α : Type}
{X Y : Set α}
(hXY : X ⊆ Y)
:
Function.Injective hXY.elem
Convert X.Elem ⊕ Y.Elem
to (X ∪ Y).Elem
.
Equations
- i.toUnion = Sum.casesOn i ⋯.elem ⋯.elem
Instances For
def
Matrix.toMatrixUnionUnion
{α : Type}
{T₁ T₂ S₁ S₂ : Set α}
{β : Type}
[(a : α) → Decidable (a ∈ T₁)]
[(a : α) → Decidable (a ∈ T₂)]
[(a : α) → Decidable (a ∈ S₁)]
[(a : α) → Decidable (a ∈ S₂)]
(C : Matrix (↑T₁ ⊕ ↑T₂) (↑S₁ ⊕ ↑S₂) β)
:
Convert a block matrix to a matrix over set unions.
Equations
- C.toMatrixUnionUnion x✝ = (C ∘ Subtype.toSum) x✝ ∘ Subtype.toSum
Instances For
theorem
toMatrixUnionUnion_toMatrixSumSum
{α : Type}
{T₁ T₂ S₁ S₂ : Set α}
{β : Type}
[(a : α) → Decidable (a ∈ T₁)]
[(a : α) → Decidable (a ∈ T₂)]
[(a : α) → Decidable (a ∈ S₁)]
[(a : α) → Decidable (a ∈ S₂)]
(hT : T₁ ⫗ T₂)
(hS : S₁ ⫗ S₂)
(C : Matrix (↑T₁ ⊕ ↑T₂) (↑S₁ ⊕ ↑S₂) β)
:
C.toMatrixUnionUnion.toMatrixSumSum = C
Converting a block matrix to a matrix over set unions and back to a block matrix gives the original matrix, assuming that both said unions are disjoint.
theorem
toMatrixSumSum_toMatrixUnionUnion
{α : Type}
{T₁ T₂ S₁ S₂ : Set α}
{β : Type}
[(a : α) → Decidable (a ∈ T₁)]
[(a : α) → Decidable (a ∈ T₂)]
[(a : α) → Decidable (a ∈ S₁)]
[(a : α) → Decidable (a ∈ S₂)]
(C : Matrix (↑(T₁ ∪ T₂)) (↑(S₁ ∪ S₂)) β)
:
C.toMatrixSumSum.toMatrixUnionUnion = C
Converting a matrix over set unions to a block matrix and back to a matrix over set unions gives the original matrix.
theorem
Matrix.IsTotallyUnimodular.toMatrixUnionUnion
{α : Type}
{T₁ T₂ S₁ S₂ : Set α}
{β : Type}
[(a : α) → Decidable (a ∈ T₁)]
[(a : α) → Decidable (a ∈ T₂)]
[(a : α) → Decidable (a ∈ S₁)]
[(a : α) → Decidable (a ∈ S₂)]
[CommRing β]
{C : Matrix (↑T₁ ⊕ ↑T₂) (↑S₁ ⊕ ↑S₂) β}
(hC : C.IsTotallyUnimodular)
:
C.toMatrixUnionUnion.IsTotallyUnimodular
A totally unimodular block matrix stays totally unimodular after converting to a matrix over set unions.