You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat: two-box per-stage increment (Part of #2965)
* Build two-box per-stage increment for cubic exhaustion stages
Add `correlation_pair_two_box_le_derivBound`: for nested finsets T₁ ⊆ T₂
and a pair r,s interior to T₁, the pair correlation on the larger box
exceeds the one on the smaller box by at most the ball-boundary
`derivBound` over the cut edges of the T₁-slice. This is the form
instantiated on cubic exhaustion stages box_k ⊆ box_{k+1} to bound the
per-stage difference c_{k+1} − c_k (Issue #2965, Phase A).
Supporting declarations:
- `nestedFinsetEquiv`: the double-subtype relabeling
↥(T₁.subtype (· ∈ T₂)) ≃ ↥T₁.
- `correlation_inducedGraph_nested_finset`: concrete-layer companion of
`correlation_inducedGraph_induce_preimage` (#2991) using the
`Finset.subtype` slice instead of a `Set`-predicate, so it matches the
`S : Finset ↥T₂` region of the single-box increment directly and avoids
the ↥S vs {x // x.val ∈ T₁} subtype-type mismatch.
Composes the single-box increment `correlation_pair_sub_inducedGraph_le_derivBound`
(#2989) on G' = inducedGraph G T₂ with the double-induce identification,
recovering inducedGraph G T₁ on the inner box.
Docs and proof-guide synced.
Part of #2965
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* Update module doc Main declarations list (codex cross-check)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/index.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -378,6 +378,8 @@ Named specializations at `A = {i}`:
378
378
| `correlation_pair_sub_inducedGraph_le_derivBound` | **Numeric per-stage correlation increment (Phase A).** For `r,s ∈ S`, `r ≠ s`, ferromagnetic, `h=0`, and `r,s` not on any cut (straddle) edge: `correlation G p {r,s} − correlation (inducedGraph G S) p {⟨r,_⟩,⟨s,_⟩} ≤ derivBound G (G.edgeFinset.filter straddle) p r s`. Composes the ball-boundary bond-deletion increment `correlation_sub_deleteEdges_le_derivBound` (#2974) with the component-factorization bridge `correlation_deleteEdges_straddle_eq_inducedGraph` (#2986) via `deleteEdges_filter_edgeFinset_eq` (#2987) + `correlation_congr_all` + `triple_map_subtypeUnivEquiv_eq` (#2988). The full-model pair correlation exceeds the isolated induced-subgraph pair correlation by at most the boundary `derivBound` over the cut edges | `PerStageIncrement.lean` | Per-stage increment (Issue #2965) |
379
379
| `nestedSubtypeEquiv` / `inducedGraph_induce_preimage_map_eq` | For `S ⊆ T`, `((inducedGraph G T).induce {x : ↥T \| x.val ∈ S}).map nestedSubtypeEquiv = inducedGraph G S` — the nested induced subgraph (induce `box_k` inside `inducedGraph G box_{k+1}`) equals, up to the nested-subtype relabeling `{x : ↥T // x.val ∈ S} ≃ ↥S`, the direct induced subgraph on `S`. Graph-level foundation for instantiating the per-stage increment on cubic exhaustion stages `box_k ⊆ box_{k+1}` | `InducedUnion.lean` | Nested induce (Issue #2965) |
380
380
| `correlation_inducedGraph_induce_preimage` | Correlation companion of the above: `correlation ((inducedGraph G T).induce {x \| x.val ∈ S}) p (A.map nestedSubtypeEquiv.symm) = correlation (inducedGraph G S) p A`. Proved by applying `correlation_map_equiv` to the *direct* `inducedGraph G S` with `nestedSubtypeEquiv.symm` (so the heavy nested-subtype graph is only the map *result*, never the graph `correlation_map_equiv` operates on — bypassing the `whnf` wall), then bridging via `correlation_congr_all` + the graph equality. The `c_k`-side identity for the cubic-exhaustion per-stage increment (Issue #2965) | `InducedUnion.lean` | Nested induce (Issue #2965) |
381
+
| `nestedFinsetEquiv` / `correlation_inducedGraph_nested_finset` | **Double-induce correlation identification (Finset route).** For `T₁ ⊆ T₂`, `correlation (inducedGraph (inducedGraph G T₂) (T₁.subtype (· ∈ T₂))) p (A.map nestedFinsetEquiv.symm) = correlation (inducedGraph G T₁) p A`, where `nestedFinsetEquiv : ↥(T₁.subtype (· ∈ T₂)) ≃ ↥T₁`. The concrete-layer companion of `correlation_inducedGraph_induce_preimage` (#2991), using the `Finset.subtype` slice instead of a `Set`-predicate so it matches the `S : Finset ↥T₂` of the single-box increment directly (avoiding the `↥S` vs `{x // x.val ∈ T₁}` type mismatch). Same `correlation_map_equiv`-on-the-direct-graph proof scheme | `PerStageIncrement.lean` | Nested induce (Issue #2965) |
382
+
| `correlation_pair_two_box_le_derivBound` | **Two-box per-stage correlation increment (Phase A).** For nested finsets `T₁ ⊆ T₂`, `r,s ∈ T₁`, `r ≠ s`, ferromagnetic, `h=0`, and `r,s` not on any cut edge of the `T₁`-slice: `correlation (inducedGraph G T₂) p {⟨r,_⟩,⟨s,_⟩} − correlation (inducedGraph G T₁) p {⟨r,_⟩,⟨s,_⟩} ≤ derivBound (inducedGraph G T₂) (filter straddle) p ⟨r,_⟩ ⟨s,_⟩`. Composes the single-box increment `correlation_pair_sub_inducedGraph_le_derivBound` (#2989) on `G' = inducedGraph G T₂` with the double-induce identification `correlation_inducedGraph_nested_finset`, recovering `inducedGraph G T₁` on the inner box. The form instantiated on cubic exhaustion stages `box_k ⊆ box_{k+1}` to bound `c_{k+1} − c_k` | `PerStageIncrement.lean` | Per-stage increment (Issue #2965) |
381
383
| `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) |
382
384
| `partitionFunction_ge_one_of_ferromagnetic` / `log_partitionFunction_nonneg_of_ferromagnetic` | `Z_G ≥ 1` (ferromagnetic), log form | `FreeEnergy.lean` | Step 5/Fekete infra |
383
385
| `{log_,}partitionFunction{,Λ}_inducedGraph_le_of_disjoint_union` | `Disjoint Λ₁ Λ₂ ⇒ Z_{Λ₁} ≤ Z_{Λ₁∪Λ₂}` (ferromagnetic), log / multiplicative and generic / `Λ`-wrapped forms | `AmbientLatticeSum.lean` | Monotonicity step toward Fekete |
0 commit comments