feat: nested-induce correlation transport (whnf wall bypassed) — #2965#2991
Merged
Conversation
Add correlation_inducedGraph_induce_preimage: correlation companion of inducedGraph_induce_preimage_map_eq (#2990): correlation ((inducedGraph G T).induce {x | x.val ∈ S}) p (A.map nestedSubtypeEquiv.symm) = correlation (inducedGraph G S) p A. The earlier whnf wall (correlation_map_equiv on the nested-subtype graph) is bypassed by applying correlation_map_equiv to the DIRECT graph inducedGraph G S with the inverse relabeling nestedSubtypeEquiv.symm — so the heavy nested-subtype graph appears only as the map RESULT, never as the graph correlation_map_equiv operates on — then bridging via correlation_congr_all and the graph equality #2990. This is the c_k-side identity for the cubic-exhaustion per-stage increment: correlation on inducedGraph (box_k inside box_{k+1}) = correlation on the direct inducedGraph box_k. Part of #2965 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…w done) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
phasetr
added a commit
that referenced
this pull request
May 27, 2026
…#2992) * 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #2965 (cubic-exhaustion connection — correlation level).
Adds
correlation_inducedGraph_induce_preimage(InducedUnion.lean), the correlation companion ofinducedGraph_induce_preimage_map_eq(#2990):correlation ((inducedGraph G T).induce {x | x.val ∈ S}) p (A.map nestedSubtypeEquiv.symm) = correlation (inducedGraph G S) p A.The earlier
whnfwall is bypassed: instead of applyingcorrelation_map_equivto the nested-subtype graph (heavy), apply it to the directinducedGraph G Swith the inverse relabelingnestedSubtypeEquiv.symm— so the heavy nested-subtype graph appears only as the map result, never as the graphcorrelation_map_equivoperates on. Then bridge viacorrelation_congr_all+ the graph equality #2990.This is the
c_k-side identity for the cubic-exhaustion per-stage increment. Combined with #2989 (the abstract per-stage increment), the cubic-exhaustion instantiationc_{k+1}−c_k ≤ derivBound(shell)is now within reach.lake build IsingModel.AmbientLatticeSum.InducedUniongreen, sorry 0, file linter-clean, tex compiles.🤖 Generated with Claude Code