Bounds for finite grid row networks
TheoremCapacity bound between grid rows#✓fully proved
The capacity between two grid rows is at most g²mL when every active rectangle is
charged at most 2mL and there are g columns.
theorem gridRowNetwork_capacity_le [Fintype ρ] [LinearOrder ρ]
[Fintype γ] [LinearOrder γ] [DecidableEq A]
{g L m : ℕ} (hm : 1 ≤ m) (hγ : Fintype.card γ = g)
(labels diagonalLabels : Finset A) (R : Instance (ρ × γ) A)
(cutLabels : ((ρ × ρ) × (γ × γ)) → Finset T)
(top bottom : ((ρ × ρ) × (γ × γ)) → A → A → T → ℤ)
(cap : ((ρ × ρ) × (γ × γ)) → ℕ)
(hcap : ∀ ω, cap ω ≤ 2 * m * L) (a b : ρ) :
(gridRowNetwork labels diagonalLabels R cutLabels top bottom cap L).c a b ≤
g ^ 2 * (m * L)
abbrev Instance (J A : Type*) := J → (J → A) → ℤ
MathlibExt/Combinatorics/TensorNetwork/Basic.lean:67
def gridRowNetwork [Fintype ρ] [LinearOrder ρ] [Fintype γ] [LinearOrder γ]
[DecidableEq A]
(labels diagonalLabels : Finset A) (R : Instance (ρ × γ) A)
(cutLabels : ((ρ × ρ) × (γ × γ)) → Finset T)
(top bottom : ((ρ × ρ) × (γ × γ)) → A → A → T → ℤ)
(cap : ((ρ × ρ) × (γ × γ)) → ℕ) (L : ℕ) :
Factored ρ (γ → ρ × γ → A)
((γ → A) × ({k : γ × γ // k ∈ orderedPairs γ} → T)) := by
classical
exact
{ S := fun a => Fintype.piFinset fun i =>
Fintype.piFinset fun w => if w = (a, i) then diagonalLabels else labels
⋯
MathlibExt/Combinatorics/TensorNetwork/GridRows.lean:40
Uses 5 · Used by 1
TheoremShape bound for the grid row network#✓fully proved
The grid row network has shape m g³ L when both raw-state alphabets have at most
2^L elements and every rectangle label set and capacity obeys its declared bound.
theorem gridRowNetwork_shaped [Fintype ρ] [LinearOrder ρ]
[Fintype γ] [LinearOrder γ] [DecidableEq A]
{g L m : ℕ} (hm : 1 ≤ m) (hρ : Fintype.card ρ = g)
(hγ : Fintype.card γ = g)
(labels diagonalLabels : Finset A) (hlabels : labels.card ≤ 2 ^ L)
(hdiagonal : diagonalLabels.card ≤ 2 ^ L) (R : Instance (ρ × γ) A)
(cutLabels : ((ρ × ρ) × (γ × γ)) → Finset T)
(top bottom : ((ρ × ρ) × (γ × γ)) → A → A → T → ℤ)
(cap : ((ρ × ρ) × (γ × γ)) → ℕ)
(hcut : ∀ ω, (cutLabels ω).card ≤ 2 ^ cap ω)
(hcap : ∀ ω, cap ω ≤ 2 * m * L) :
(gridRowNetwork labels diagonalLabels R cutLabels top bottom cap L).Shaped
(m * (g ^ 3 * L))
abbrev Instance (J A : Type*) := J → (J → A) → ℤ
MathlibExt/Combinatorics/TensorNetwork/Basic.lean:67
def gridRowNetwork [Fintype ρ] [LinearOrder ρ] [Fintype γ] [LinearOrder γ]
[DecidableEq A]
(labels diagonalLabels : Finset A) (R : Instance (ρ × γ) A)
(cutLabels : ((ρ × ρ) × (γ × γ)) → Finset T)
(top bottom : ((ρ × ρ) × (γ × γ)) → A → A → T → ℤ)
(cap : ((ρ × ρ) × (γ × γ)) → ℕ) (L : ℕ) :
Factored ρ (γ → ρ × γ → A)
((γ → A) × ({k : γ × γ // k ∈ orderedPairs γ} → T)) := by
classical
exact
{ S := fun a => Fintype.piFinset fun i =>
Fintype.piFinset fun w => if w = (a, i) then diagonalLabels else labels
⋯
MathlibExt/Combinatorics/TensorNetwork/GridRows.lean:40
Uses 8 · Used by 1
TheoremSize bound for the grid row network#✓fully proved
Under uniform raw tensor and factor bounds, the grid row network has exact source exponents
m g³ L for shape and g B + g² b for integer magnitudes.
TensorNetwork.gridRowNetwork_sized · 20 lines
theorem gridRowNetwork_sized [Fintype ρ] [LinearOrder ρ]
[Fintype γ] [LinearOrder γ] [DecidableEq A]
{g L m B b : ℕ} (hm : 1 ≤ m) (hρ : Fintype.card ρ = g)
(hγ : Fintype.card γ = g)
(labels diagonalLabels : Finset A) (hlabels : labels.card ≤ 2 ^ L)
(hdiagonal : diagonalLabels.card ≤ 2 ^ L) (R : Instance (ρ × γ) A)
(hR : ∀ w h, |R w h| ≤ 2 ^ B)
(G : ((ρ × ρ) × (γ × γ)) → A → A → A → A → ℤ)
(cutLabels : ((ρ × ρ) × (γ × γ)) → Finset T)
(top bottom : ((ρ × ρ) × (γ × γ)) → A → A → T → ℤ)
(cap : ((ρ × ρ) × (γ × γ)) → ℕ)
(hfactor : ∀ ω x y u v,
G ω x y u v = ∑ θ ∈ cutLabels ω, top ω x y θ * bottom ω u v θ)
(hcut : ∀ ω, (cutLabels ω).card ≤ 2 ^ cap ω)
(hcap : ∀ ω, cap ω ≤ 2 * m * L)
(htop : ∀ ω x y θ, |top ω x y θ| ≤ 2 ^ b)
(hbottom : ∀ ω u v θ, |bottom ω u v θ| ≤ 2 ^ b)
(hG : ∀ ω x y u v, |G ω x y u v| ≤ 2 ^ b) :
(gridRowNetwork labels diagonalLabels R cutLabels top bottom cap L).Sized
(m * (g ^ 3 * L)) (g * B + g ^ 2 * b)
abbrev Instance (J A : Type*) := J → (J → A) → ℤ
MathlibExt/Combinatorics/TensorNetwork/Basic.lean:67
def gridRowNetwork [Fintype ρ] [LinearOrder ρ] [Fintype γ] [LinearOrder γ]
[DecidableEq A]
(labels diagonalLabels : Finset A) (R : Instance (ρ × γ) A)
(cutLabels : ((ρ × ρ) × (γ × γ)) → Finset T)
(top bottom : ((ρ × ρ) × (γ × γ)) → A → A → T → ℤ)
(cap : ((ρ × ρ) × (γ × γ)) → ℕ) (L : ℕ) :
Factored ρ (γ → ρ × γ → A)
((γ → A) × ({k : γ × γ // k ∈ orderedPairs γ} → T)) := by
classical
exact
{ S := fun a => Fintype.piFinset fun i =>
Fintype.piFinset fun w => if w = (a, i) then diagonalLabels else labels
⋯
MathlibExt/Combinatorics/TensorNetwork/GridRows.lean:40
TheoremTotal capacity of the grid row network#✓fully proved
The directed total capacity consists of all vertical row edges plus twice the active rectangle capacity; diagonal row capacities are excluded.
theorem gridRowNetwork_totalCapacity [Fintype ρ] [LinearOrder ρ]
[Fintype γ] [LinearOrder γ] [DecidableEq A]
{g L : ℕ} (hρ : Fintype.card ρ = g) (hγ : Fintype.card γ = g)
(labels diagonalLabels : Finset A) (R : Instance (ρ × γ) A)
(cutLabels : ((ρ × ρ) × (γ × γ)) → Finset T)
(top bottom : ((ρ × ρ) × (γ × γ)) → A → A → T → ℤ)
(cap : ((ρ × ρ) × (γ × γ)) → ℕ) :
(gridRowNetwork labels diagonalLabels R cutLabels top bottom cap L).totalCapacity =
g ^ 2 * (g - 1) * L +
2 * ∑ ω ∈ gridRectangles ρ γ, cap ω
abbrev Instance (J A : Type*) := J → (J → A) → ℤ
MathlibExt/Combinatorics/TensorNetwork/Basic.lean:67
def gridRowNetwork [Fintype ρ] [LinearOrder ρ] [Fintype γ] [LinearOrder γ]
[DecidableEq A]
(labels diagonalLabels : Finset A) (R : Instance (ρ × γ) A)
(cutLabels : ((ρ × ρ) × (γ × γ)) → Finset T)
(top bottom : ((ρ × ρ) × (γ × γ)) → A → A → T → ℤ)
(cap : ((ρ × ρ) × (γ × γ)) → ℕ) (L : ℕ) :
Factored ρ (γ → ρ × γ → A)
((γ → A) × ({k : γ × γ // k ∈ orderedPairs γ} → T)) := by
classical
exact
{ S := fun a => Fintype.piFinset fun i =>
Fintype.piFinset fun w => if w = (a, i) then diagonalLabels else labels
⋯
MathlibExt/Combinatorics/TensorNetwork/GridRows.lean:40
def gridRectangles (ρ γ : Type*) [Fintype ρ] [LinearOrder ρ]
[Fintype γ] [LinearOrder γ] : Finset ((ρ × ρ) × (γ × γ)) :=
orderedPairs ρ ×ˢ orderedPairs γ
MathlibExt/Combinatorics/TensorNetwork/Grid.lean:41
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.