Tensor-instance alphabet padding
DefinitionAlphabet padding of a tensor instance#✓fully proved
Rename the active edge alphabet of an instance through dec, returning zero when any
off-diagonal target label is outside D. The diagonal coordinate is replaced by sourceDefault.
def pad [Fintype J] [DecidableEq J] [DecidableEq A'] (R : Instance J A)
(sourceDefault : A) (D : Finset A') (dec : A' → A) : Instance J A' :=
fun v θ =>
if ∀ w, w ≠ v → θ w ∈ D then
R v (fun w => if w = v then sourceDefault else dec (θ w))
else 0
abbrev Instance (J A : Type*) := J → (J → A) → ℤ
MathlibExt/Combinatorics/TensorNetwork/Basic.lean:67
TheoremFactoring and unfactoring a tensor instance gives its padding#✓fully proved
Factoring an instance and converting it back through constant edge names gives its padded version. The decoder must send every admitted target name into the explicit source alphabet.
theorem toInstance_toFactored_eq_pad [Fintype J] [LinearOrder J]
[DecidableEq A] [DecidableEq A'] (R : Instance J A) (sourceLabels : Finset A)
(sourceDefault : A) (D : Finset A') (dec : A' → A)
(hdec : Set.MapsTo dec D sourceLabels) :
(R.toFactored sourceLabels sourceDefault).toInstance (fun _ _ => D) (fun _ _ => dec) =
R.pad sourceDefault D dec
abbrev Instance (J A : Type*) := J → (J → A) → ℤ
MathlibExt/Combinatorics/TensorNetwork/Basic.lean:67
Uses 7 · Used by 2
TheoremFactoring round trip with the full source alphabet#✓fully proved
The source conversion theorem with the full finite source alphabet.
theorem toInstance_toFactored_univ_eq_pad [Fintype J] [LinearOrder J] [Fintype A]
[DecidableEq A] [DecidableEq A'] (R : Instance J A) (sourceDefault : A)
(D : Finset A') (dec : A' → A) :
(R.toFactored univ sourceDefault).toInstance (fun _ _ => D) (fun _ _ => dec) =
R.pad sourceDefault D dec
abbrev Instance (J A : Type*) := J → (J → A) → ℤ
MathlibExt/Combinatorics/TensorNetwork/Basic.lean:67
TheoremBijective alphabet padding preserves instance value#✓fully proved
Padding through a bijective renaming of an explicit source alphabet preserves instance value.
theorem value_pad [Fintype J] [LinearOrder J] [DecidableEq A] [DecidableEq A']
(R : Instance J A) (sourceLabels : Finset A) (sourceDefault : A)
(targetLabels : Finset A') (targetDefault : A') (D : Finset A') (dec : A' → A)
(hD : D ⊆ targetLabels) (hdec : Set.BijOn dec D sourceLabels) :
(R.pad sourceDefault D dec).value targetLabels targetDefault =
R.value sourceLabels sourceDefault
abbrev Instance (J A : Type*) := J → (J → A) → ℤ
MathlibExt/Combinatorics/TensorNetwork/Basic.lean:67
Uses 10
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.