Documentation

Complexitylib.Algebraic.LinearAlgebra.Tensor.Internal.BorderRank

Tensor rank and border rank: proof internals #

Proofs behind Complexitylib.Algebraic.LinearAlgebra.Tensor.BorderRank: the algebra of RankLE (sums, scalar multiples, monotonicity, existence of a decomposition), its transport along map and subtensor, the composition of maps (map_map, proved on outer products), and the corresponding closure arguments for BorderRankLE.

theorem Algebraic.Tensor3.Internal.outer_zero_left {α : Type u_1} {β : Type u_2} {γ : Type u_3} (v : β → ℂ) (w : γ → ℂ) :
outer 0 v w = 0
theorem Algebraic.Tensor3.Internal.smul_outer {α : Type u_1} {β : Type u_2} {γ : Type u_3} (c : ℂ) (u : α → ℂ) (v : β → ℂ) (w : γ → ℂ) :
c • outer u v w = outer (c • u) v w
theorem Algebraic.Tensor3.Internal.rankLE_zero_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} {T : Tensor3 α β γ} :
T.RankLE 0 ↔ T = 0
theorem Algebraic.Tensor3.Internal.rankLE_one_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} {T : Tensor3 α β γ} :
T.RankLE 1 ↔ ∃ (u : α → ℂ) (v : β → ℂ) (w : γ → ℂ), T = outer u v w
theorem Algebraic.Tensor3.Internal.rankLE_add {α : Type u_1} {β : Type u_2} {γ : Type u_3} {S T : Tensor3 α β γ} {r r' : ℕ} (hS : S.RankLE r) (hT : T.RankLE r') :
(S + T).RankLE (r + r')
theorem Algebraic.Tensor3.Internal.zero_rankLE {α : Type u_1} {β : Type u_2} {γ : Type u_3} (d : ℕ) :
RankLE 0 d
theorem Algebraic.Tensor3.Internal.rankLE_mono {α : Type u_1} {β : Type u_2} {γ : Type u_3} {T : Tensor3 α β γ} {r r' : ℕ} (h : T.RankLE r) (hr : r ≤ r') :
T.RankLE r'
theorem Algebraic.Tensor3.Internal.rankLE_sum {α : Type u_1} {β : Type u_2} {γ : Type u_3} {ι : Type u_7} (s : Finset ι) (T : ι → Tensor3 α β γ) (r : ι → ℕ) (h : ∀ x ∈ s, (T x).RankLE (r x)) :
(∑ x ∈ s, T x).RankLE (∑ x ∈ s, r x)
theorem Algebraic.Tensor3.Internal.rankLE_smul {α : Type u_1} {β : Type u_2} {γ : Type u_3} {T : Tensor3 α β γ} {r : ℕ} (c : ℂ) (h : T.RankLE r) :
(c • T).RankLE r
theorem Algebraic.Tensor3.Internal.rankLE_card_mul_card {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Fintype α] [Fintype β] (T : Tensor3 α β γ) :
theorem Algebraic.Tensor3.Internal.map_outer {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} [Fintype α] [Fintype β] [Fintype γ] (X : Matrix α' α ℂ) (Y : Matrix β' β ℂ) (Z : Matrix γ' γ ℂ) (u : α → ℂ) (v : β → ℂ) (w : γ → ℂ) :
map X Y Z (outer u v w) = outer (X.mulVec u) (Y.mulVec v) (Z.mulVec w)
theorem Algebraic.Tensor3.Internal.map_add {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} [Fintype α] [Fintype β] [Fintype γ] (X : Matrix α' α ℂ) (Y : Matrix β' β ℂ) (Z : Matrix γ' γ ℂ) (S T : Tensor3 α β γ) :
map X Y Z (S + T) = map X Y Z S + map X Y Z T
theorem Algebraic.Tensor3.Internal.map_zero {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} [Fintype α] [Fintype β] [Fintype γ] (X : Matrix α' α ℂ) (Y : Matrix β' β ℂ) (Z : Matrix γ' γ ℂ) :
map X Y Z 0 = 0
theorem Algebraic.Tensor3.Internal.map_smul {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} [Fintype α] [Fintype β] [Fintype γ] (X : Matrix α' α ℂ) (Y : Matrix β' β ℂ) (Z : Matrix γ' γ ℂ) (c : ℂ) (T : Tensor3 α β γ) :
map X Y Z (c • T) = c • map X Y Z T
theorem Algebraic.Tensor3.Internal.map_finset_sum {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} [Fintype α] [Fintype β] [Fintype γ] (X : Matrix α' α ℂ) (Y : Matrix β' β ℂ) (Z : Matrix γ' γ ℂ) {ι : Type u_7} (s : Finset ι) (T : ι → Tensor3 α β γ) :
map X Y Z (∑ x ∈ s, T x) = ∑ x ∈ s, map X Y Z (T x)
theorem Algebraic.Tensor3.Internal.rankLE_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} [Fintype α] [Fintype β] [Fintype γ] (X : Matrix α' α ℂ) (Y : Matrix β' β ℂ) (Z : Matrix γ' γ ℂ) {T : Tensor3 α β γ} {r : ℕ} (h : T.RankLE r) :
(map X Y Z T).RankLE r
theorem Algebraic.Tensor3.Internal.continuous_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} [Fintype α] [Fintype β] [Fintype γ] (X : Matrix α' α ℂ) (Y : Matrix β' β ℂ) (Z : Matrix γ' γ ℂ) :
Continuous (map X Y Z)
theorem Algebraic.Tensor3.Internal.map_diagonal {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Fintype α] [Fintype β] [Fintype γ] [DecidableEq α] [DecidableEq β] [DecidableEq γ] (a : α → ℂ) (b : β → ℂ) (c : γ → ℂ) (T : Tensor3 α β γ) :
map (Matrix.diagonal a) (Matrix.diagonal b) (Matrix.diagonal c) T = fun (i : α) (j : β) (k : γ) => a i * b j * c k * T i j k
theorem Algebraic.Tensor3.Internal.map_one {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Fintype α] [Fintype β] [Fintype γ] [DecidableEq α] [DecidableEq β] [DecidableEq γ] (T : Tensor3 α β γ) :
map 1 1 1 T = T
theorem Algebraic.Tensor3.Internal.map_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} [Fintype α] [Fintype β] [Fintype γ] [Fintype α'] [Fintype β'] [Fintype γ'] {α'' : Type u_7} {β'' : Type u_8} {γ'' : Type u_9} (X : Matrix α' α ℂ) (Y : Matrix β' β ℂ) (Z : Matrix γ' γ ℂ) (X' : Matrix α'' α' ℂ) (Y' : Matrix β'' β' ℂ) (Z' : Matrix γ'' γ' ℂ) (T : Tensor3 α β γ) :
map X' Y' Z' (map X Y Z T) = map (X' * X) (Y' * Y) (Z' * Z) T
theorem Algebraic.Tensor3.Internal.subtensor_outer {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} (f : α' → α) (g : β' → β) (h : γ' → γ) (u : α → ℂ) (v : β → ℂ) (w : γ → ℂ) :
(outer u v w).subtensor f g h = outer (u ∘ f) (v ∘ g) (w ∘ h)
theorem Algebraic.Tensor3.Internal.subtensor_finset_sum {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} (f : α' → α) (g : β' → β) (h : γ' → γ) {ι : Type u_7} (s : Finset ι) (T : ι → Tensor3 α β γ) :
(∑ x ∈ s, T x).subtensor f g h = ∑ x ∈ s, (T x).subtensor f g h
theorem Algebraic.Tensor3.Internal.rankLE_subtensor {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} (f : α' → α) (g : β' → β) (h : γ' → γ) {T : Tensor3 α β γ} {r : ℕ} (hT : T.RankLE r) :
(T.subtensor f g h).RankLE r
theorem Algebraic.Tensor3.Internal.continuous_subtensor {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} (f : α' → α) (g : β' → β) (h : γ' → γ) :
Continuous fun (T : Tensor3 α β γ) => T.subtensor f g h
theorem Algebraic.Tensor3.Internal.borderRankLE_of_rankLE {α : Type u_1} {β : Type u_2} {γ : Type u_3} {T : Tensor3 α β γ} {r : ℕ} (h : T.RankLE r) :
theorem Algebraic.Tensor3.Internal.borderRankLE_mono {α : Type u_1} {β : Type u_2} {γ : Type u_3} {T : Tensor3 α β γ} {r r' : ℕ} (h : T.BorderRankLE r) (hr : r ≤ r') :
theorem Algebraic.Tensor3.Internal.isClosed_setOf_borderRankLE {α : Type u_1} {β : Type u_2} {γ : Type u_3} (r : ℕ) :
theorem Algebraic.Tensor3.Internal.borderRankLE_add {α : Type u_1} {β : Type u_2} {γ : Type u_3} {S T : Tensor3 α β γ} {r r' : ℕ} (hS : S.BorderRankLE r) (hT : T.BorderRankLE r') :
(S + T).BorderRankLE (r + r')
theorem Algebraic.Tensor3.Internal.borderRankLE_smul {α : Type u_1} {β : Type u_2} {γ : Type u_3} {T : Tensor3 α β γ} {r : ℕ} (c : ℂ) (h : T.BorderRankLE r) :
theorem Algebraic.Tensor3.Internal.borderRankLE_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} [Fintype α] [Fintype β] [Fintype γ] (X : Matrix α' α ℂ) (Y : Matrix β' β ℂ) (Z : Matrix γ' γ ℂ) {T : Tensor3 α β γ} {r : ℕ} (h : T.BorderRankLE r) :
(map X Y Z T).BorderRankLE r
theorem Algebraic.Tensor3.Internal.borderRankLE_subtensor {α : Type u_1} {β : Type u_2} {γ : Type u_3} {α' : Type u_4} {β' : Type u_5} {γ' : Type u_6} (f : α' → α) (g : β' → β) (h : γ' → γ) {T : Tensor3 α β γ} {r : ℕ} (hT : T.BorderRankLE r) :
theorem Algebraic.Tensor3.Internal.borderRankLE_zero_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} {T : Tensor3 α β γ} :
theorem Algebraic.Tensor3.Internal.rankLE_tensorRank {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Fintype α] [Fintype β] (T : Tensor3 α β γ) :
theorem Algebraic.Tensor3.Internal.tensorRank_le_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Fintype α] [Fintype β] {T : Tensor3 α β γ} {r : ℕ} :
theorem Algebraic.Tensor3.Internal.borderRankLE_borderRank {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Fintype α] [Fintype β] (T : Tensor3 α β γ) :
theorem Algebraic.Tensor3.Internal.borderRank_le_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Fintype α] [Fintype β] {T : Tensor3 α β γ} {r : ℕ} :