Skip to content

Commit c758342

Browse files
phasetrclaude
andauthored
feat: generalize induce-univ correlation to any full set — #2965 (#2985)
* feat: generalize induce-univ correlation to any full set (Part of #2965) * feat: generalize induce-univ correlation to any full set Add correlation_induce_of_forall_mem: if s contains every vertex (∀ x, x ∈ s), then correlation (G.induce s) p A = correlation G p (A.map (subtypeUnivEquiv hs)), since G.induce s ≃g G. Generalizes correlation_induce_univ from Set.univ to any full set. Applies to s = ↑(S ∪ Sᶜ) (full by Finset.union_compl), letting the Phase A capstone's inducedGraph _ (S ∪ Sᶜ) left side connect to the raw bond-deleted graph WITHOUT forcing the propositional Finset equality S ∪ Sᶜ = univ at the type level — the clean route through the per-stage-increment type-transport. 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 3099aa4 commit c758342

3 files changed

Lines changed: 43 additions & 0 deletions

File tree

IsingModel/AmbientLatticeSum/InducedUnion.lean

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,4 +398,33 @@ theorem correlation_induce_univ [Fintype V] (G : SimpleGraph V)
398398
exact (correlation_map_equiv (Equiv.Set.univ V) (G.induce (Set.univ : Set V)) params A).symm.trans
399399
(correlation_congr_of_eq hmap params (A.map (Equiv.Set.univ V).toEmbedding))
400400

401+
set_option linter.unusedFintypeInType false in
402+
/-- **Correlation on an induced subgraph over a full set equals correlation on
403+
the graph itself**: if `s : Set V` contains every vertex (`hs : ∀ x, x ∈ s`),
404+
then `G.induce s ≃g G` via `Equiv.subtypeUnivEquiv hs`, so pushing an observable
405+
along that relabeling preserves the correlation. Generalizes
406+
`correlation_induce_univ` from `Set.univ` to any full set — in particular to
407+
`↑(S ∪ Sᶜ)` (full by `Finset.union_compl`), which lets the component-factorization
408+
capstone's `inducedGraph _ (S ∪ Sᶜ)` left side connect to the raw bond-deleted
409+
graph without forcing the propositional Finset equality `S ∪ Sᶜ = univ` at the
410+
type level (Issue #2965, Phase A per-stage increment assembly). -/
411+
theorem correlation_induce_of_forall_mem [Fintype V] (G : SimpleGraph V)
412+
(s : Set V) (hs : ∀ x, x ∈ s) [Fintype s]
413+
[Fintype (G.induce s).edgeSet] [Fintype G.edgeSet]
414+
(params : IsingParams ℝ) (A : Finset ↥s) :
415+
correlation (G.induce s) params A
416+
= correlation G params (A.map (Equiv.subtypeUnivEquiv hs).toEmbedding) := by
417+
have hmap : (G.induce s).map (Equiv.subtypeUnivEquiv hs).toEmbedding = G := by
418+
ext x y
419+
rw [SimpleGraph.map_adj]
420+
constructor
421+
· rintro ⟨a, b, hab, rfl, rfl⟩
422+
exact hab
423+
· intro h
424+
exact ⟨⟨x, hs x⟩, ⟨y, hs y⟩, by simpa using h, rfl, rfl⟩
425+
haveI : Fintype ((G.induce s).map (Equiv.subtypeUnivEquiv hs).toEmbedding).edgeSet :=
426+
hmap.symm ▸ (inferInstance : Fintype G.edgeSet)
427+
exact (correlation_map_equiv (Equiv.subtypeUnivEquiv hs) (G.induce s) params A).symm.trans
428+
(correlation_congr_of_eq hmap params (A.map (Equiv.subtypeUnivEquiv hs).toEmbedding))
429+
401430
end IsingModel

docs/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,7 @@ Named specializations at `A = {i}`:
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) |
372372
| `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) |
373+
| `correlation_induce_of_forall_mem` | `(∀ x, x ∈ s) ⇒ correlation (G.induce s) p A = correlation G p (A.map (Equiv.subtypeUnivEquiv hs))` — generalizes `correlation_induce_univ` from `Set.univ` to any full set `s` (via `G.induce s ≃g G`). Applies to `s = ↑(S ∪ Sᶜ)` (full by `Finset.union_compl`), letting the capstone's `inducedGraph _ (S ∪ Sᶜ)` left side connect to the raw bond-deleted graph **without** forcing the propositional `S ∪ Sᶜ = univ` at the type level — the clean route through the per-stage-increment type-transport (Issue #2965, Phase A) | `InducedUnion.lean` | Component split (Issue #2965) |
373374
| `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) |
374375
| `partitionFunction_ge_one_of_ferromagnetic` / `log_partitionFunction_nonneg_of_ferromagnetic` | `Z_G ≥ 1` (ferromagnetic), log form | `FreeEnergy.lean` | Step 5/Fekete infra |
375376
| `{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: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12633,6 +12633,19 @@ \subsection{Super-additivity on Finset disjoint union
1263312633
\texttt{correlation\_map\_equiv} with \texttt{correlation\_congr\_of\_eq}.
1263412634
\end{proof}
1263512635

12636+
\begin{proposition}[\texttt{IsingModel.correlation\_induce\_of\_forall\_mem}]
12637+
If $s$ contains every vertex ($\forall x,\ x\in s$), then
12638+
$\langle\sigma^{A}\rangle_{G.\mathrm{induce}\,s}
12639+
= \langle\sigma^{A.\mathrm{map}\,e}\rangle_{G}$ with
12640+
$e=\texttt{Equiv.subtypeUnivEquiv}$. Generalizes the previous proposition from
12641+
$\mathrm{univ}$ to any full set, in particular $s=\uparrow(S\cup S^{c})$ (full by
12642+
\texttt{Finset.union\_compl}); this avoids forcing the propositional Finset
12643+
equality $S\cup S^{c}=\mathrm{univ}$ at the type level when connecting the
12644+
capstone's $\mathrm{inducedGraph}\,\_\,(S\cup S^{c})$ side to the raw bond-deleted
12645+
graph in the per-stage-increment assembly. Same proof scheme as
12646+
\texttt{correlation\_induce\_univ}.
12647+
\end{proposition}
12648+
1263612649
\begin{theorem}[\texttt{IsingModel.correlation\_inducedGraph\_deleteEdges\_union\_inl}
1263712650
(Phase A component-factorization capstone, Finset route)]
1263812651
For a region $S\subseteq W$, deleting the cut edges between $S$ and its complement

0 commit comments

Comments
 (0)