-
Notifications
You must be signed in to change notification settings - Fork 0
feat(peps): per-edge gauge family from the insertion isomorphism (toward gaugeConsistency) #2403
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
9f07962
994a2ec
2c483ab
a7ff86e
f2502a4
bc0350d
ed3018b
35b843d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,140 @@ | ||
| import TNLean.PEPS.Blocking | ||
| import TNLean.PEPS.InsertionAlgebra | ||
| import TNLean.PEPS.EdgeGaugeExtraction | ||
| import TNLean.PEPS.EdgeMiddlePhysical | ||
| import Mathlib.LinearAlgebra.Matrix.GeneralLinearGroup.Defs | ||
|
|
||
| /-! | ||
| # Per-edge gauge family for injective PEPS | ||
|
|
||
| This file records the per-edge content of the injective PEPS Fundamental | ||
| Theorem (arXiv:1804.04964, Section 3) into one global gauge family. | ||
|
|
||
| For each edge `e`, blocking a vertex-injective PEPS around `e` gives a three-site | ||
| injective chain. Comparing two PEPS that generate the same state then yields, via | ||
| `isEdgeBlockedInsertionAlgebraIsomorphism` (#1367), an algebra isomorphism `Φ_e` | ||
| between the two bond matrix algebras whose inserted edge coefficients agree. | ||
| Skolem--Noether (`edgeGaugeFromInsertionAlgebraIsomorphism`) realizes each `Φ_e` | ||
| as conjugation by an invertible bond matrix. Transporting these matrices back to | ||
| the first tensor's bonds across the bond-dimension equality gives a single | ||
| gauge family `X` and records, edgewise, both the inserted-coefficient identity | ||
| and the conjugation form of `Φ_e`. | ||
|
|
||
| This is the construction used in the gauge-consistency theorem; the remaining | ||
| cross-edge passage to the per-vertex gauge formula is recorded in | ||
| the fundamental-theorem module and in | ||
| `docs/paper-gaps/peps_injective_ft_section3_route.tex`. | ||
| -/ | ||
|
|
||
| open scoped BigOperators Matrix | ||
|
|
||
| namespace TNLean | ||
| namespace PEPS | ||
|
|
||
| variable {V : Type*} [Fintype V] [LinearOrder V] | ||
| variable {G : SimpleGraph V} [DecidableRel G.Adj] {d : ℕ} | ||
|
|
||
| /-- Transport an invertible matrix across an equality of finite index sizes. -/ | ||
| noncomputable def glReindex {m n : ℕ} (h : m = n) : | ||
| GL (Fin m) ℂ ≃* GL (Fin n) ℂ := | ||
| Units.mapEquiv (Matrix.reindexAlgEquiv ℂ ℂ (finCongr h)).toRingEquiv.toMulEquiv | ||
|
|
||
| /-- The matrix of a transported invertible matrix is the reindexed matrix. -/ | ||
| theorem glReindex_coe {m n : ℕ} (h : m = n) (Z : GL (Fin m) ℂ) : | ||
| (↑(glReindex h Z) : Matrix (Fin n) (Fin n) ℂ) = | ||
| Matrix.reindexAlgEquiv ℂ ℂ (finCongr h) (↑Z : Matrix (Fin m) (Fin m) ℂ) := | ||
| 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
|
||
| (N : Matrix (Fin n) (Fin n) ℂ) : | ||
| Matrix.reindexAlgEquiv ℂ ℂ (finCongr h) | ||
| (Matrix.reindexAlgEquiv ℂ ℂ (finCongr h'.symm) N) = N := by | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ℹ️ Advisory (modularity). |
||
| subst h | ||
| simp | ||
|
|
||
| /-- **Per-edge gauge family from the edge-blocked insertion algebra | ||
| isomorphisms.** | ||
|
|
||
| For each edge `e`, blocking `A` and `B` around `e` gives three-site injective | ||
| chains (`IsVertexInjective.edgeBlockedThreeSiteInjective`, using the positive | ||
| bond dimensions), and `isEdgeBlockedInsertionAlgebraIsomorphism` (#1367) supplies | ||
| an algebra isomorphism `Φ_e` between the bond matrix algebras whose inserted | ||
| coefficients match. The finite-dimensional algebra step | ||
| `edgeGaugeFromInsertionAlgebraIsomorphism` (Skolem--Noether) realizes each `Φ_e` | ||
| as conjugation by an invertible bond matrix on the `B`-side. Transporting those | ||
| matrices back to the \(A\)-side bonds across the bond-dimension equality gives | ||
| a single global gauge family, and records, edgewise, both the inserted-coefficient identity and | ||
| that `Φ_e` is conjugation by `X_e`. | ||
|
|
||
| This records the per-edge content of the source proof up to the point where the | ||
| edge gauges are produced. The remaining work in gauge consistency is the | ||
| cross-edge passage to the per-vertex formula \(B_v = X\cdot A_v\), which | ||
| the source obtains from the post-absorption insertion identity | ||
| (`eq:inj_equal_edge`) and the one-vertex-versus-complement comparison; both of | ||
| those steps are tracked separately (see | ||
| `docs/paper-gaps/peps_injective_ft_section3_route.tex`). | ||
|
|
||
| Source: arXiv:1804.04964, Section 3, lines 560--586. -/ | ||
| theorem exists_edgeGaugeFamily (A B : Tensor G d) | ||
| (hA : IsVertexInjective A) (hB : IsVertexInjective B) | ||
| (hAB : SameState A B) | ||
| (hDim : A.bondDim = B.bondDim) | ||
| (hpos : ∀ e : Edge G, 0 < A.bondDim e) : | ||
|
claude[bot] marked this conversation as resolved.
|
||
| ∃ X : (e : Edge G) → GL (Fin (A.bondDim e)) ℂ, | ||
| ∀ e : Edge G, | ||
| ∃ Φ : | ||
| Matrix (Fin (A.bondDim e)) (Fin (A.bondDim e)) ℂ ≃ₐ[ℂ] | ||
| Matrix (Fin (B.bondDim e)) (Fin (B.bondDim e)) ℂ, | ||
| (∀ (σ : V → Fin d) | ||
| (M : Matrix (Fin (A.bondDim e)) (Fin (A.bondDim e)) ℂ), | ||
| edgeInsertedCoeff (G := G) A e σ M = | ||
| edgeInsertedCoeff (G := G) B e σ (Φ M)) ∧ | ||
| ∀ M : Matrix (Fin (A.bondDim e)) (Fin (A.bondDim e)) ℂ, | ||
| Φ M = | ||
| Matrix.reindexAlgEquiv ℂ ℂ (finCongr (congr_fun hDim e)) | ||
| ((↑(X e) : Matrix (Fin (A.bondDim e)) (Fin (A.bondDim e)) ℂ) * M * | ||
| (↑(X e)⁻¹ : Matrix (Fin (A.bondDim e)) (Fin (A.bondDim e)) ℂ)) := by | ||
| classical | ||
| have hposB : ∀ e : Edge G, 0 < B.bondDim e := by | ||
| intro e; rw [← congr_fun hDim e]; exact hpos e | ||
| have hAblk : ∀ e : Edge G, EdgeBlockedThreeSiteInjective (G := G) A e := | ||
| fun e => hA.edgeBlockedThreeSiteInjective hpos e | ||
| have hBblk : ∀ e : Edge G, EdgeBlockedThreeSiteInjective (G := G) B e := | ||
| fun e => hB.edgeBlockedThreeSiteInjective hposB e | ||
| have hiso : ∀ e : Edge G, IsEdgeBlockedInsertionAlgebraIsomorphism (G := G) A B e := | ||
| fun e => | ||
| isEdgeBlockedInsertionAlgebraIsomorphism A B e (hAblk e) (hBblk e) hAB hpos hposB | ||
| choose Φ hΦcoeff using fun e => (hiso e) | ||
| -- Skolem--Noether: each edge algebra equivalence is conjugation by an | ||
| -- invertible matrix on the second tensor's bond. | ||
| choose hEdge Z hZ using | ||
| fun e => edgeGaugeFromInsertionAlgebraIsomorphism A B e (Φ e) | ||
| -- Transport each edge gauge back to the first tensor's bond. | ||
| refine ⟨fun e => glReindex (hEdge e).symm (Z e), fun e => ⟨Φ e, hΦcoeff e, ?_⟩⟩ | ||
| intro M | ||
| rw [hZ e] | ||
| -- Both sides reindex the inserted matrix from the first bond to the second | ||
| -- bond, conjugated by the edge gauge. | ||
| have hXcoe : | ||
| (↑(glReindex (hEdge e).symm (Z e)) : | ||
| Matrix (Fin (A.bondDim e)) (Fin (A.bondDim e)) ℂ) = | ||
| Matrix.reindexAlgEquiv ℂ ℂ (finCongr (hEdge e).symm) | ||
| (↑(Z e) : Matrix (Fin (B.bondDim e)) (Fin (B.bondDim e)) ℂ) := | ||
| glReindex_coe (hEdge e).symm (Z e) | ||
| have hXinvcoe : | ||
| (↑(glReindex (hEdge e).symm (Z e))⁻¹ : | ||
| Matrix (Fin (A.bondDim e)) (Fin (A.bondDim e)) ℂ) = | ||
| Matrix.reindexAlgEquiv ℂ ℂ (finCongr (hEdge e).symm) | ||
| (↑(Z e)⁻¹ : Matrix (Fin (B.bondDim e)) (Fin (B.bondDim e)) ℂ) := by | ||
| rw [← map_inv, glReindex_coe] | ||
| rw [hXcoe, hXinvcoe] | ||
| have hProofEq : congr_fun hDim e = hEdge e := Subsingleton.elim _ _ | ||
| rw [hProofEq] | ||
| -- The reindexing equivalence is multiplicative; push it through products, and | ||
| -- the inverse-index transport cancels against the outer reindex. | ||
| simp only [map_mul, | ||
|
claude[bot] marked this conversation as resolved.
|
||
| reindexAlgEquiv_finCongr_symm_round (hEdge e) (hEdge e)] | ||
|
|
||
| end PEPS | ||
| end TNLean | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -548,50 +548,36 @@ | |
|
|
||
| /-- Post-absorption edge insertion equality from arXiv:1804.04964, Section 3, | ||
| lines 1037--1065. Assuming the separately tracked bond-dimension equality | ||
| `hDim` (#874), the edge gauges obtained from the three-site comparison can be | ||
| absorbed into `B` so that every edge insertion in `A` agrees with the transported | ||
| edge insertion in the absorbed tensor family. The remaining proof is #1364. -/ | ||
| (\#874), the edge gauges obtained from the three-site comparison can be absorbed | ||
| into the second tensor family so that every edge insertion in \(A\) agrees with | ||
| the transported edge insertion in the absorbed tensor family. The remaining | ||
| proof is #1364. -/ | ||
| theorem post_absorption_edge_insertion_equality (A B : Tensor G d) | ||
| (hA : IsVertexInjective A) (hB : IsVertexInjective B) (hAB : SameState A B) | ||
| (hDim : A.bondDim = B.bondDim) : | ||
| ∃ Z, PostAbsorptionEdgeInsertionEquality A (absorbEdgeGauges B Z) := by | ||
| sorry | ||
|
|
||
| /-- Edge gauges obtained from the three-site reductions give one global gauge | ||
| family. | ||
| family. Source: arXiv:1804.04964, Section 3, from `eq:TN_5_particle_eq` through | ||
| `eq:inj_equal_edge`. | ||
|
|
||
| Source: arXiv:1804.04964, Section 3, after the equation labelled | ||
| `eq:TN_5_particle_eq`: for each edge, block all other vertices into the middle | ||
| site of a three-site injective MPS and apply Lemma `inj_isomorph`. After the | ||
| resulting edge gauges are absorbed into `B`, the source proves the insertion | ||
| identity labelled `eq:inj_equal_edge`. | ||
|
|
||
| This theorem records the global-gauge conclusion needed by the injective PEPS | ||
| Fundamental Theorem under the already separated bond-dimension equality | ||
| hypothesis. | ||
|
|
||
| **Proof status:** The statement is still open. The edge-blocked route and the | ||
| remaining insertion-to-gauge obligations are recorded in | ||
| `docs/paper-gaps/peps_injective_ft_section3_route.tex`, Section "Remaining | ||
| mathematical obligations". -/ | ||
| **Proof status:** The edge-blocked route and remaining insertion-to-gauge | ||
| obligations are recorded in | ||
| `docs/paper-gaps/peps_injective_ft_section3_route.tex`. -/ | ||
| theorem gaugeConsistency (A B : Tensor G d) | ||
| (hA : IsVertexInjective A) (hB : IsVertexInjective B) | ||
| (hAB : SameState A B) | ||
| (hDim : A.bondDim = B.bondDim) : | ||
| (hDim : A.bondDim = B.bondDim) | ||
| (hpos : ∀ e : Edge G, 0 < A.bondDim e) : | ||
|
claude[bot] marked this conversation as resolved.
|
||
| ∃ (X : (e : Edge G) → GL (Fin (A.bondDim e)) ℂ), | ||
| ∀ (v : V) (η : (ie : IncidentEdge G v) → Fin (A.bondDim ie.1)) (σ : Fin d), | ||
| B.component v (fun ie => Fin.cast (congr_fun hDim ie.1) (η ie)) σ = | ||
| gaugeVertex A X v η σ := by | ||
| -- Derive `BlockedMiddleGaugeFormula A B hA hDim v` from `SameState` at each | ||
| -- vertex by comparing the edge-blocked coefficient from `PEPS/Blocking` with | ||
| -- the three-site MPS reduction, then use | ||
| -- `hasFactorizedLocalGauge_of_blockedMiddleGaugeFormula` to obtain the local | ||
| -- gauges. | ||
| -- The key remaining consistency step is: for each edge e = (u,v), the gauges | ||
| -- extracted from u and v must agree as inverse-transposes, with the | ||
| -- orientation convention in `edgeGaugeAt`. | ||
| -- The current status is recorded in | ||
| -- `docs/paper-gaps/peps_injective_ft_section3_route.tex`. | ||
| -- `exists_edgeGaugeFamily` supplies the per-edge gauges. It remains to prove | ||
| -- post-absorption insertion equality (#1364) and the one-vertex complement | ||
| -- comparison through the two-injective theorem (#1361), then convert the | ||
| -- resulting `BlockedMiddleGaugeFormula` to the local gauge relation. | ||
| sorry | ||
|
|
||
| /-! ### Main theorem -/ | ||
|
|
@@ -601,17 +587,21 @@ | |
|
|
||
| If the bond spaces of `A` and `B` are already identified, equality of their PEPS | ||
| states and vertex injectivity imply the gauge formula | ||
| `B_v = gaugeVertex A X v` for one invertible matrix `X_e` on each edge. | ||
| `B_v = gaugeVertex A X v` for one invertible matrix `X_e` on each edge, under | ||
| the explicit assumption that every virtual bond of `A` has positive dimension. | ||
| Via the bond-dimension equality this is also the corresponding positivity | ||
| assumption for `B`. | ||
|
|
||
| **Proof status:** This theorem is proved from the conditional global-gauge | ||
| statement above. The remaining difference from the source theorem is recorded | ||
| in `docs/paper-gaps/peps_injective_ft_section3_route.tex`, Section "Remaining | ||
| mathematical obligations". -/ | ||
| theorem fundamentalTheorem_PEPS_of_bondDim (A B : Tensor G d) | ||
| (hA : IsVertexInjective A) (hB : IsVertexInjective B) | ||
| (hAB : SameState A B) (hDim : A.bondDim = B.bondDim) : | ||
| (hAB : SameState A B) (hDim : A.bondDim = B.bondDim) | ||
| (hpos : ∀ e : Edge G, 0 < A.bondDim e) : | ||
|
claude[bot] marked this conversation as resolved.
claude[bot] marked this conversation as resolved.
|
||
| GaugeEquiv A B := by | ||
| rcases gaugeConsistency A B hA hB hAB hDim with ⟨X, hX⟩ | ||
| rcases gaugeConsistency A B hA hB hAB hDim hpos with ⟨X, hX⟩ | ||
| exact ⟨hDim, X, hX⟩ | ||
|
|
||
| /-- **Fundamental Theorem for injective PEPS** (arXiv:1804.04964, Theorem 2). | ||
|
|
@@ -621,13 +611,26 @@ | |
| `X_e` such that, at every vertex, `B_v` is obtained from `A_v` by the oriented | ||
| endpoint action of the matrices `X_e` on the incident virtual legs. | ||
|
|
||
| **Proof status:** The theorem is stated with the source's hypothesis set. The | ||
| remaining bond-dimension and edge-centred gauge obligations are recorded in | ||
| **Positive-bond hypothesis (faithfulness fix).** Without the positivity conditions the | ||
| theorem is false: a zero-dimensional edge makes the virtual configuration empty, | ||
| so both state coefficients vanish and `SameState` holds vacuously without | ||
| relating the two tensors, while the gauge-equivalence conclusion stays a genuine | ||
| constraint that fails. The hypotheses (every bond dimension positive) are the | ||
| source's standing assumption that injective PEPS have nonzero virtual bond | ||
| spaces; the same defect was corrected for the edge-blocked three-site | ||
| injectivity (#1366) and the physical-to-virtual recovery (#1370), and is | ||
| recorded in `docs/paper-gaps/peps_injective_ft_section3_route.tex`. | ||
|
|
||
| **Proof status:** The conclusion is the source gauge-equivalence conclusion, with | ||
| positive bond dimension made explicit to exclude the zero-bond vacuous-state | ||
| case above. The remaining bond-dimension and edge-centred gauge obligations are recorded in | ||
| `docs/paper-gaps/peps_injective_ft_section3_route.tex`, Section "Remaining | ||
| mathematical obligations". -/ | ||
| theorem fundamentalTheorem_PEPS (A B : Tensor G d) | ||
| (hA : IsVertexInjective A) (hB : IsVertexInjective B) | ||
| (hAB : SameState A B) : | ||
| (hAB : SameState A B) | ||
| (hposA : ∀ e : Edge G, 0 < A.bondDim e) | ||
| (hposB : ∀ e : Edge G, 0 < B.bondDim e) : | ||
|
claude[bot] marked this conversation as resolved.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ℹ️ Advisory. |
||
| GaugeEquiv A B := by | ||
| -- Bond-dimension equality should follow from the full family of boundary | ||
| -- insertions. Linear independence at each vertex (`IsVertexInjective`) gives | ||
|
|
@@ -637,8 +640,8 @@ | |
| -- `docs/paper-gaps/peps_injective_ft_section3_route.tex`. | ||
| have hDim : A.bondDim = B.bondDim := by | ||
| sorry | ||
| -- With matching bond dimensions, `gaugeConsistency` supplies the global gauges. | ||
| exact fundamentalTheorem_PEPS_of_bondDim A B hA hB hAB hDim | ||
| -- With matching bond dimensions, gauge consistency supplies the global gauges. | ||
| exact fundamentalTheorem_PEPS_of_bondDim A B hA hB hAB hDim hposA | ||
|
|
||
| /-! ### Balanced edge scalars -/ | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
B §1 — "fundamental-theorem module" is organizational/implementation language.
Line 25 of the module docstring reads:
"Module" here refers to the Lean source file
TNLean/PEPS/FundamentalTheorem.lean— an organizational unit of the Lean build system, not a mathematical object. Per §1 ofdocs/prose_style.md, implementation language ("module", "file", Lean namespace paths) should not appear in docstrings; the mathematical content should be named instead.Suggested replacement (one possibility):
("the proof of the fundamental theorem" names the mathematical content without naming the Lean module.)