Skip to content

Commit 3099aa4

Browse files
phasetrclaude
andauthored
feat: correlation on induce-univ equals correlation on G — #2965 (#2984)
* feat: correlation on induce-univ equals correlation on G (Part of #2965) * feat: correlation on induce-univ equals correlation on G Add correlation_induce_univ: correlation (G.induce Set.univ) p A = correlation G p (A.map (Equiv.Set.univ V)). Since G.induce Set.univ ≃g G (mathlib induceUnivIso), pushing the observable along the relabeling preserves the correlation; proved via the graph equality (G.induce univ).map e = G composed through correlation_map_equiv and correlation_congr_of_eq. Connects inducedGraph _ univ statements (the left side of the Phase A capstone correlation_inducedGraph_deleteEdges_union_inl) back to the raw graph G (the form of the ball-boundary increment correlation_sub_deleteEdges_le_derivBound), for the per-stage exhaustion increment assembly. Part of #2965 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 9f2aa40 commit 3099aa4

3 files changed

Lines changed: 48 additions & 0 deletions

File tree

IsingModel/AmbientLatticeSum/InducedUnion.lean

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,4 +370,32 @@ theorem correlation_inducedGraph_deleteEdges_union_inl [Fintype V] (G : SimpleGr
370370
(correlation_congr_of_eq
371371
(inducedGraph_deleteEdges_eq_of_not_internal G _ S hD) params A)
372372

373+
set_option linter.unusedFintypeInType false in
374+
/-- **Correlation on the full-vertex induced subgraph equals correlation on the
375+
graph itself**: since `G.induce Set.univ ≃g G` (mathlib `induceUnivIso`, via
376+
`Equiv.Set.univ`), pushing an observable forward along that relabeling leaves the
377+
correlation unchanged. This connects `inducedGraph`-based statements (e.g. the
378+
component-factorization capstone `correlation_inducedGraph_deleteEdges_union_inl`,
379+
whose left side lives on `inducedGraph _ univ`) back to the raw graph `G` (e.g.
380+
the ball-boundary increment `correlation_sub_deleteEdges_le_derivBound`)
381+
(Issue #2965, Phase A). -/
382+
theorem correlation_induce_univ [Fintype V] (G : SimpleGraph V)
383+
[Fintype (G.induce (Set.univ : Set V)).edgeSet] [Fintype G.edgeSet]
384+
(params : IsingParams ℝ) (A : Finset ↥(Set.univ : Set V)) :
385+
correlation (G.induce (Set.univ : Set V)) params A
386+
= correlation G params (A.map (Equiv.Set.univ V).toEmbedding) := by
387+
have hmap : (G.induce (Set.univ : Set V)).map (Equiv.Set.univ V).toEmbedding = G := by
388+
ext x y
389+
rw [SimpleGraph.map_adj]
390+
constructor
391+
· rintro ⟨a, b, hab, rfl, rfl⟩
392+
exact hab
393+
· intro h
394+
exact ⟨(Equiv.Set.univ V).symm x, (Equiv.Set.univ V).symm y, by simpa using h,
395+
by simp, by simp⟩
396+
haveI : Fintype ((G.induce (Set.univ : Set V)).map
397+
(Equiv.Set.univ V).toEmbedding).edgeSet := hmap.symm ▸ (inferInstance : Fintype G.edgeSet)
398+
exact (correlation_map_equiv (Equiv.Set.univ V) (G.induce (Set.univ : Set V)) params A).symm.trans
399+
(correlation_congr_of_eq hmap params (A.map (Equiv.Set.univ V).toEmbedding))
400+
373401
end IsingModel

docs/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@ Named specializations at `A = {i}`:
369369
| `correlation_congr_of_eq` | `G₁ = G₂ ⇒ correlation G₁ p A = correlation G₂ p A` (correlation is invariant under graph equality even across different `Fintype edgeSet` instances; via `edgeFinset = edgeSet` coercion). Bridges propositional graph equalities without `rw`'s motive obstruction | `InducedUnion.lean` | Component split (Issue #2965) |
370370
| `correlation_inducedGraph_union_inl_of_no_cross` | `Disjoint Λ₁ Λ₂` + no cross edge ⇒ `correlation (inducedGraph (Λ₁ ∪ Λ₂)) p ((A.map inl).map union) = correlation (inducedGraph Λ₁) p A` (the component-factorization bridge directly on `inducedGraph (Λ₁ ∪ Λ₂)`, via `inducedGraph_sum_map_eq_union_of_no_cross` + `correlation_congr_of_eq` + `correlation_inducedGraph_sum_map_inl`) — the form usable for exhaustion stages | `InducedUnion.lean` | Component split (Issue #2965) |
371371
| `inducedGraph_deleteEdges_eq_of_not_internal` | If no edge of the deleted set `D` has both endpoints in `S`, then `inducedGraph (G.deleteEdges D) S = inducedGraph G S` (deleting cut/cross edges leaves the within-`S` induced subgraph unchanged). Lets the bond-deleted model's induced subgraph on `S` be identified with the original's, so `correlation_inducedGraph_union_inl_of_no_cross` applies to `G.deleteEdges (cross edges)` (whose cut edges are gone, hence no-cross holds) — the Finset route to the bond-deletion → isolated-component bridge (Issue #2965, Phase A) | `InducedUnion.lean` | Component split (Issue #2965) |
372+
| `correlation_induce_univ` | `correlation (G.induce Set.univ) p A = correlation G p (A.map (Equiv.Set.univ V))` — since `G.induce Set.univ ≃g G` (mathlib `induceUnivIso`), pushing the observable along the relabeling preserves the correlation. Connects `inducedGraph _ univ` statements (the left side of `correlation_inducedGraph_deleteEdges_union_inl`) back to the raw graph `G` (the form of `correlation_sub_deleteEdges_le_derivBound`) for the per-stage increment assembly (Issue #2965, Phase A) | `InducedUnion.lean` | Component split (Issue #2965) |
372373
| `correlation_inducedGraph_deleteEdges_union_inl` | **Phase A component-factorization capstone (Finset route).** For `S ⊆ W`, deleting the cut edges between `S` and `Sᶜ` gives `correlation (inducedGraph (G.deleteEdges {straddle S}) (S ∪ Sᶜ)) p ((A.map inl).map union) = correlation (inducedGraph G S) p A` — the bond-deleted model's correlation of an `S`-supported observable equals the correlation in the isolated induced subgraph on `S` of the original model. Assembled from `correlation_inducedGraph_union_inl_of_no_cross` ∘ `correlation_congr_of_eq (inducedGraph_deleteEdges_eq_of_not_internal)`, with the no-cross/not-internal hypotheses discharged by `deleteEdges_straddle_no_cross`/`straddle_not_mem_of_same_side`. Sidesteps the `Equiv.sumCompl` instance pathology (Issue #2980) entirely | `InducedUnion.lean` | Component split (Issue #2965) |
373374
| `partitionFunction_ge_one_of_ferromagnetic` / `log_partitionFunction_nonneg_of_ferromagnetic` | `Z_G ≥ 1` (ferromagnetic), log form | `FreeEnergy.lean` | Step 5/Fekete infra |
374375
| `{log_,}partitionFunction{,Λ}_inducedGraph_le_of_disjoint_union` | `Disjoint Λ₁ Λ₂ ⇒ Z_{Λ₁} ≤ Z_{Λ₁∪Λ₂}` (ferromagnetic), log / multiplicative and generic / `Λ`-wrapped forms | `AmbientLatticeSum.lean` | Monotonicity step toward Fekete |

tex/proof-guide.tex

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12614,6 +12614,25 @@ \subsection{Super-additivity on Finset disjoint union
1261412614
\texttt{correlation\_inducedGraph\_union\_inl\_of\_no\_cross} applies to it.
1261512615
\end{proof}
1261612616

12617+
\begin{proposition}[\texttt{IsingModel.correlation\_induce\_univ}]
12618+
Since $G.\mathrm{induce}\,\mathrm{univ}\simeq_g G$ (mathlib \texttt{induceUnivIso},
12619+
via \texttt{Equiv.Set.univ}), pushing an observable along that relabeling
12620+
preserves the correlation:
12621+
\[
12622+
\langle\sigma^{A}\rangle_{G.\mathrm{induce}\,\mathrm{univ}}
12623+
= \langle\sigma^{A.\mathrm{map}\,e}\rangle_{G},\qquad e=\texttt{Equiv.Set.univ}.
12624+
\]
12625+
This connects the $\mathrm{inducedGraph}\,\_\,\mathrm{univ}$ left side of the
12626+
capstone below back to the raw graph $G$ (the form of the ball-boundary
12627+
increment), for the per-stage increment assembly.
12628+
\end{proposition}
12629+
12630+
\begin{proof}
12631+
The graph equality $(G.\mathrm{induce}\,\mathrm{univ}).\mathrm{map}\,e = G$ holds
12632+
by edge extensionality (the iso adjacency); then compose
12633+
\texttt{correlation\_map\_equiv} with \texttt{correlation\_congr\_of\_eq}.
12634+
\end{proof}
12635+
1261712636
\begin{theorem}[\texttt{IsingModel.correlation\_inducedGraph\_deleteEdges\_union\_inl}
1261812637
(Phase A component-factorization capstone, Finset route)]
1261912638
For a region $S\subseteq W$, deleting the cut edges between $S$ and its complement

0 commit comments

Comments
 (0)