Skip to content

Build two-box per-stage increment for cubic exhaustion stages — #2965#2992

Merged
phasetr merged 3 commits into
mainfrom
feat/two-box-increment-2965
May 27, 2026
Merged

Build two-box per-stage increment for cubic exhaustion stages — #2965#2992
phasetr merged 3 commits into
mainfrom
feat/two-box-increment-2965

Conversation

@phasetr
Copy link
Copy Markdown
Owner

@phasetr phasetr commented May 27, 2026

Part of #2965

Summary

Builds the two-box per-stage correlation increment correlation_pair_two_box_le_derivBound, the form directly 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).

For nested finsets T₁ ⊆ T₂, a pair r, s ∈ T₁ (r ≠ s), ferromagnetic at h = 0, with r, s on no 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,_⟩

Declarations

  • nestedFinsetEquiv — the double-subtype relabeling ↥(T₁.subtype (· ∈ T₂)) ≃ ↥T₁.
  • correlation_inducedGraph_nested_finset — concrete-layer companion of correlation_inducedGraph_induce_preimage (feat: nested-induce correlation transport (whnf wall bypassed) — #2965 #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 (avoiding the ↥S vs {x // x.val ∈ T₁} subtype-type mismatch). Same correlation_map_equiv-on-the-direct-graph proof scheme.
  • correlation_pair_two_box_le_derivBound — composes the single-box increment correlation_pair_sub_inducedGraph_le_derivBound (feat: numeric per-stage correlation increment (Phase A) — #2965 #2989) on G' = inducedGraph G T₂ with the double-induce identification, recovering inducedGraph G T₁ on the inner box.

Verification

  • lake build IsingModel.AmbientLatticeSum.PerStageIncrement — green, zero linter warnings.
  • grep sorry — zero.
  • docs/index.md + tex/proof-guide.tex synced; proof-guide compiles (no new overfull/undefined); no Japanese.

🤖 Generated with Claude Code

phasetr and others added 3 commits May 27, 2026 10:34
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>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@phasetr phasetr merged commit 4108742 into main May 27, 2026
1 check passed
@phasetr phasetr deleted the feat/two-box-increment-2965 branch May 27, 2026 01:57
phasetr added a commit that referenced this pull request May 27, 2026
Add `correlationAlongExhaustion_cubic_succ_sub_le_derivBound`: for the cubic
exhaustion of `latticeGraph d` and a pair r,s interior to box_k (no cut edge
of the box_k-slice),

  c_{k+1} − c_k ≤ derivBound (inducedGraph (latticeGraph d) box_{k+1}) (filter straddle) r s,

where c_n = correlationAlongExhaustion (latticeGraph d) (cubicExhaustion d) p {r,s} n.
This is the per-stage difference bound feeding the volume-convergence rate of
GJ Lemma 17.5.2 (Issue #2965, Phase A).

Instantiates the abstract two-box increment `correlation_pair_two_box_le_derivBound`
(#2992) with T₁ = box_k ⊆ T₂ = box_{k+1} (cubicBox_mono), unfolding
`correlationAlongExhaustion` on both stages (both observable subsets hold by
cubicBox_mono) and matching lifted observables via the new `liftFinset_pair`.
Edge-set Fintype hypotheses are discharged from finiteness of the box subtype.

Supporting changes:
- `liftFinset_pair` (Exhaustion.lean): liftFinset of a pair equals the explicit
  subtype pair {⟨r,_⟩,⟨s,_⟩}.
- `straddlePred` (PerStageIncrement.lean): de-privatized so the two-box
  increment's conclusion is nameable downstream.

Docs and proof-guide synced.

Part of #2965

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
phasetr added a commit that referenced this pull request May 27, 2026
…2993)

* feat: exhaustion-level per-stage increment (Part of #2965)

* Instantiate per-stage increment on cubic exhaustion stages

Add `correlationAlongExhaustion_cubic_succ_sub_le_derivBound`: for the cubic
exhaustion of `latticeGraph d` and a pair r,s interior to box_k (no cut edge
of the box_k-slice),

  c_{k+1} − c_k ≤ derivBound (inducedGraph (latticeGraph d) box_{k+1}) (filter straddle) r s,

where c_n = correlationAlongExhaustion (latticeGraph d) (cubicExhaustion d) p {r,s} n.
This is the per-stage difference bound feeding the volume-convergence rate of
GJ Lemma 17.5.2 (Issue #2965, Phase A).

Instantiates the abstract two-box increment `correlation_pair_two_box_le_derivBound`
(#2992) with T₁ = box_k ⊆ T₂ = box_{k+1} (cubicBox_mono), unfolding
`correlationAlongExhaustion` on both stages (both observable subsets hold by
cubicBox_mono) and matching lifted observables via the new `liftFinset_pair`.
Edge-set Fintype hypotheses are discharged from finiteness of the box subtype.

Supporting changes:
- `liftFinset_pair` (Exhaustion.lean): liftFinset of a pair equals the explicit
  subtype pair {⟨r,_⟩,⟨s,_⟩}.
- `straddlePred` (PerStageIncrement.lean): de-privatized so the two-box
  increment's conclusion is nameable downstream.

Docs and proof-guide synced.

Part of #2965

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Weaken Lemma 17.5.2 phrasing to correlation-side input (codex cross-check)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
phasetr added a commit that referenced this pull request May 27, 2026
The weak derivBound carries a diagonal term ⟨σ_rσ_s⟩⟨σ_kσ_l⟩ whose shell
sum is ⟨σ_rσ_s⟩·O(|∂box_k|), which diverges with shell size and cannot
prove convergence of c_k. Re-derive the entire per-stage increment chain
with the tight ball-boundary Simon-Lieb bound derivBoundTight (cross
products only, via cor_4_3_3_scaled):

- Tight.lean: scaledCorrelation_one_sub_zero_le_derivBoundTight,
  correlation_sub_deleteEdges_le_derivBoundTight,
  derivBoundTight_le_of_correlation_le.
- PerStageIncrement.lean: correlation_pair_sub_inducedGraph_le_derivBoundTight,
  correlation_pair_two_box_le_derivBoundTight.
- CubicPerStageIncrement.lean:
  correlationAlongExhaustion_cubic_succ_sub_le_derivBoundTight.
- CubicShellInfiniteVolumeBound.lean:
  derivBoundTight_inducedGraph_cubic_le_infiniteVolume_sum.

Net diagonal-free bound:
  c_{k+1} − c_k ≤ β·J·∑_{⟨a,b⟩∈shell}[g{r,a}g{s,b} + g{r,b}g{s,a}]
(g = infinite-volume correlation), the summable form on which Phase B
spatial decay yields a geometric rate.

Each tight lemma mirrors its weak counterpart (#2972/#2974/#2989/#2992/
#2993/#2994/#2995); the component-factorization and observable-matching
infrastructure is bound-independent and reused unchanged.

Docs and proof-guide synced.

Part of #2965

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
phasetr added a commit that referenced this pull request May 27, 2026
* feat: tight bond-deletion increment (Part of #2965)

* Build tight (diagonal-free) per-stage increment chain

The weak derivBound carries a diagonal term ⟨σ_rσ_s⟩⟨σ_kσ_l⟩ whose shell
sum is ⟨σ_rσ_s⟩·O(|∂box_k|), which diverges with shell size and cannot
prove convergence of c_k. Re-derive the entire per-stage increment chain
with the tight ball-boundary Simon-Lieb bound derivBoundTight (cross
products only, via cor_4_3_3_scaled):

- Tight.lean: scaledCorrelation_one_sub_zero_le_derivBoundTight,
  correlation_sub_deleteEdges_le_derivBoundTight,
  derivBoundTight_le_of_correlation_le.
- PerStageIncrement.lean: correlation_pair_sub_inducedGraph_le_derivBoundTight,
  correlation_pair_two_box_le_derivBoundTight.
- CubicPerStageIncrement.lean:
  correlationAlongExhaustion_cubic_succ_sub_le_derivBoundTight.
- CubicShellInfiniteVolumeBound.lean:
  derivBoundTight_inducedGraph_cubic_le_infiniteVolume_sum.

Net diagonal-free bound:
  c_{k+1} − c_k ≤ β·J·∑_{⟨a,b⟩∈shell}[g{r,a}g{s,b} + g{r,b}g{s,a}]
(g = infinite-volume correlation), the summable form on which Phase B
spatial decay yields a geometric rate.

Each tight lemma mirrors its weak counterpart (#2972/#2974/#2989/#2992/
#2993/#2994/#2995); the component-factorization and observable-matching
infrastructure is bound-independent and reused unchanged.

Docs and proof-guide synced.

Part of #2965

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Weaken convergence wording to convergence-rate bound (codex cross-check)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant