Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
eb6faed
feat(PEPS): dispatch empty-bond vacuous case of two-injective comparison
Jun 6, 2026
f671539
feat(PEPS): open-leg matrix-unit insertion extraction
Jun 6, 2026
ca7e826
feat(PEPS): one-leg-open equality from per-bond insertions
Jun 6, 2026
0bae9be
doc(PEPS): record committed reductions and remaining inversion gap
Jun 6, 2026
f4743cd
feat(PEPS): add inversion helpers for two-injective comparison
Jun 6, 2026
a588210
feat(PEPS): close operator-Schmidt bond-gauge lemma (#1361)
Jun 6, 2026
dbfc0b9
feat(PEPS): close two_injective_tensor_insertion_comparison (#1361)
Jun 6, 2026
12948a3
feat(PEPS): close bond-dimension equality (#874) via edge-blocked alg…
Jun 6, 2026
1ed7f22
feat(PEPS): global open form of inserted-edge coefficient
Jun 6, 2026
3964188
feat(PEPS): local-configuration form of inserted-edge coefficient
Jun 6, 2026
cb42110
feat(PEPS): open-edge gauge sum cancellation
Jun 6, 2026
76c8a8e
feat(PEPS): edgeInsertedCoeff_applyGauge (open-edge gauge cancellation)
Jun 6, 2026
4e4fb2a
doc(PEPS): record edgeInsertedCoeff_applyGauge linchpin in #1364
Jun 6, 2026
04324a1
feat(PEPS): add GL-transpose and reindex-transpose helpers
Jun 6, 2026
bd7b76d
feat(PEPS): close post_absorption_edge_insertion_equality (#1364)
Jun 6, 2026
7371c1a
feat(PEPS): one-vertex two-block tensor wrapping + injectivity
Jun 6, 2026
86189ff
doc(PEPS): record precise gaugeConsistency translation gap
Jun 6, 2026
6f29c9a
feat(PEPS): vertex-complement region tensor definitions
Jun 6, 2026
77057e2
feat(PEPS): vertex-complement kernel-descent scaffolding
Jun 6, 2026
11fd24c
feat(PEPS): vertex-complement kernel-condition erase-vertex step
Jun 6, 2026
91ea165
feat(PEPS): vertex-complement terminal kernel relation
Jun 6, 2026
730f1ee
feat(PEPS): vertex-complement tensor family is linearly independent
Jun 6, 2026
112bfd5
feat(PEPS): vertex-complement two-block injectivity
Jun 6, 2026
da5c79b
doc(PEPS): record vertex-complement injectivity closure
Jun 6, 2026
2e6f2bf
feat(PEPS): vertex injectivity of the absorbed tensor family
Jun 6, 2026
526c584
doc(peps): add vertex two-block blueprint entries
Jun 6, 2026
9dff417
feat(PEPS): two-block coefficient as a global virtual-configuration sum
Jun 6, 2026
1786f6a
refactor(peps): split oversized comparison files
Jun 6, 2026
6c70038
feat(PEPS): collapse the constrained v-star sum and split global configs
Jun 6, 2026
0934857
fix(peps): address two-injective comparison review
Jun 6, 2026
cdca143
feat(PEPS): two-block coefficient identity for both edge orientations
Jun 6, 2026
c6b774e
doc(peps): address blueprint prose review
Jun 6, 2026
926de51
refactor(peps): split one-vertex comparison module
Jun 6, 2026
e79b74c
feat(PEPS): unified two-block coefficient identity over incident edges
Jun 6, 2026
9852a53
style(peps): finish two-injective comparison review fixes
Jun 6, 2026
8e5c425
feat(PEPS): SameTwoBlockInsertions from the edge-insertion equality
Jun 6, 2026
6013f40
fix(peps): move comparison imports to one-vertex module
Jun 6, 2026
1a8d4f3
doc(PEPS): note algebra relocation for Schmidt lemmas
Jun 6, 2026
d11d25d
doc(peps): record connectivity gap refuting gauge consistency
Jun 6, 2026
db5b4e5
feat(PEPS): machine-check gaugeConsistency connectivity counterexample
Jun 6, 2026
4f0180c
fix(PEPS): add connectivity hypothesis to gaugeConsistency and PEPS FT
Jun 6, 2026
6e519cf
fix(PEPS): import GaugeAction not the orphan capstone in connectivity…
Jun 6, 2026
2405b9a
doc(peps): avoid proof-token words in connectivity note
Jun 6, 2026
1f50dcc
doc(peps): address complement-block blueprint review
Jun 6, 2026
2ea9239
doc(peps): address gauge-action prose review
Jun 6, 2026
ea7f42d
feat(PEPS): oriented edge-scalar incidence and product-one necessity
Jun 6, 2026
bd45a96
feat(PEPS): edge transfer for vertex deletion in edge-scalar solve
Jun 6, 2026
a754389
feat(PEPS): spanning-tree edge-scalar existence on a connected graph
Jun 6, 2026
bf7ba99
feat(PEPS): per-vertex scalar and reindex injectivity for gaugeConsis…
Jun 6, 2026
32842d2
doc(PEPS): record precise remaining gaugeConsistency obligations
Jun 6, 2026
27ce9cc
doc(peps): document vertex-complement indicator split
Jun 6, 2026
ac021b8
doc(peps): document gauge-action helper lemmas
Jun 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions TNLean.lean
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,8 @@ import TNLean.PEPS.VirtualInsertion
import TNLean.PEPS.SingletonRegion
import TNLean.PEPS.Blocking
import TNLean.PEPS.EdgeMiddlePhysical
import TNLean.PEPS.VertexComplement.Basic
import TNLean.PEPS.VertexComplement.KernelDescent
import TNLean.PEPS.NormalEdgeBlockingData
import TNLean.PEPS.NormalBlocking
import TNLean.PEPS.SquareLatticeGraph
Expand All @@ -389,5 +391,7 @@ import TNLean.PEPS.TensorFactorScalar
import TNLean.PEPS.EdgeGaugeExtraction
import TNLean.PEPS.EdgeGaugeFamily
import TNLean.PEPS.TwoInjectiveComparison
import TNLean.PEPS.EdgeScalarSolve
import TNLean.PEPS.GaugeConsistencyConnectivityCounterexample
-- The PEPS fundamental theorem is an exploratory capstone with recorded
-- paper-alignment gaps; it is deliberately not part of the default root.
35 changes: 35 additions & 0 deletions TNLean/PEPS/EdgeGaugeFamily.lean
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,48 @@
rfl

/-- Reindexing back and forth across an index-size equality is the identity. -/
theorem reindexAlgEquiv_finCongr_symm_round {m n : ℕ} (h h' : m = n)

Check warning on line 49 in TNLean/PEPS/EdgeGaugeFamily.lean

View workflow job for this annotation

GitHub Actions / Check blueprint compiles without errors

Blueprint update suggested

TNLean.PEPS.reindexAlgEquiv_finCongr_symm_round is changed in this PR but has no corresponding \lean{} tag in blueprint/src/chapter.
(N : Matrix (Fin n) (Fin n) ℂ) :
Matrix.reindexAlgEquiv ℂ ℂ (finCongr h)
(Matrix.reindexAlgEquiv ℂ ℂ (finCongr h'.symm) N) = N := by
subst h
simp

/-- The transpose of an invertible matrix, packaged as an invertible matrix. The
inverse is the transpose of the inverse, since transposition is an
anti-homomorphism. -/
def glTranspose {m : ℕ} (X : GL (Fin m) ℂ) : GL (Fin m) ℂ where

Check warning on line 59 in TNLean/PEPS/EdgeGaugeFamily.lean

View workflow job for this annotation

GitHub Actions / Check blueprint compiles without errors

Blueprint update suggested

TNLean.PEPS.glTranspose is changed in this PR but has no corresponding \lean{} tag in blueprint/src/chapter.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ Advisory (Modularity / upstreaming). glTranspose (transpose of an element of GL (Fin m) ℂ, packaged as a unit) is stated only for Fin m over , but the construction is field- and index-agnostic: it works verbatim for GL n R with [CommRing R] [Fintype n] [DecidableEq n], since the two cancellation obligations go through Matrix.transpose_mul and Matrix.transpose_one unchanged. Mathlib has no general GeneralLinearGroup.transpose (only an inline mk''-with-transpose in GeneralLinearGroup/Card.lean), so a general version here would be a clean upstreaming candidate and avoids re-statement when glTranspose_inv_coe is needed elsewhere. Not a blocker.

val := (↑X : Matrix (Fin m) (Fin m) ℂ)ᵀ
inv := (↑X⁻¹ : Matrix (Fin m) (Fin m) ℂ)ᵀ
val_inv := by
rw [← Matrix.transpose_mul, ← Units.val_mul, inv_mul_cancel, Units.val_one,
Matrix.transpose_one]
inv_val := by
rw [← Matrix.transpose_mul, ← Units.val_mul, mul_inv_cancel, Units.val_one,
Matrix.transpose_one]

/-- The matrix of `glTranspose X` is the transpose of the matrix of `X`. -/
theorem glTranspose_coe {m : ℕ} (X : GL (Fin m) ℂ) :

Check warning on line 70 in TNLean/PEPS/EdgeGaugeFamily.lean

View workflow job for this annotation

GitHub Actions / Check blueprint compiles without errors

Blueprint update suggested

TNLean.PEPS.glTranspose_coe is changed in this PR but has no corresponding \lean{} tag in blueprint/src/chapter.
(↑(glTranspose X) : Matrix (Fin m) (Fin m) ℂ) =
(↑X : Matrix (Fin m) (Fin m) ℂ)ᵀ :=
rfl

/-- The matrix of `(glTranspose X)⁻¹` is the transpose of the inverse of `X`. -/
theorem glTranspose_inv_coe {m : ℕ} (X : GL (Fin m) ℂ) :

Check warning on line 76 in TNLean/PEPS/EdgeGaugeFamily.lean

View workflow job for this annotation

GitHub Actions / Check blueprint compiles without errors

Blueprint update suggested

TNLean.PEPS.glTranspose_inv_coe is changed in this PR but has no corresponding \lean{} tag in blueprint/src/chapter.
(↑(glTranspose X)⁻¹ : Matrix (Fin m) (Fin m) ℂ) =
(↑X⁻¹ : Matrix (Fin m) (Fin m) ℂ)ᵀ := by
rw [Matrix.GeneralLinearGroup.coe_inv, glTranspose_coe,
← Matrix.transpose_nonsing_inv, Matrix.GeneralLinearGroup.coe_inv]

/-- Reindexing commutes with transposition: `reindexAlgEquiv` along a single index
equivalence sends a transpose to the transpose of the reindexed matrix. -/
theorem reindexAlgEquiv_transpose {m n : ℕ} (h : m = n)

Check warning on line 84 in TNLean/PEPS/EdgeGaugeFamily.lean

View workflow job for this annotation

GitHub Actions / Check blueprint compiles without errors

Blueprint update suggested

TNLean.PEPS.reindexAlgEquiv_transpose is changed in this PR but has no corresponding \lean{} tag in blueprint/src/chapter.
(N : Matrix (Fin m) (Fin m) ℂ) :
Matrix.reindexAlgEquiv ℂ ℂ (finCongr h) Nᵀ =
(Matrix.reindexAlgEquiv ℂ ℂ (finCongr h) N)ᵀ := by
simp only [Matrix.reindexAlgEquiv_apply, Matrix.reindex_apply,
Matrix.transpose_submatrix]

/-- **Per-edge gauge family from the edge-blocked insertion algebra
isomorphisms.**

Expand Down
503 changes: 503 additions & 0 deletions TNLean/PEPS/EdgeScalarSolve.lean

Large diffs are not rendered by default.

Loading
Loading