Skip to content

feat: nested induced-subgraph graph equality — #2965#2990

Merged
phasetr merged 2 commits into
mainfrom
feat/nested-induce-graph-eq-2965
May 26, 2026
Merged

feat: nested induced-subgraph graph equality — #2965#2990
phasetr merged 2 commits into
mainfrom
feat/nested-induce-graph-eq-2965

Conversation

@phasetr
Copy link
Copy Markdown
Owner

@phasetr phasetr commented May 26, 2026

Part of #2965 (cubic-exhaustion connection, graph-level foundation).

Adds nestedSubtypeEquiv and inducedGraph_induce_preimage_map_eq (InducedUnion.lean): for S ⊆ T,
((inducedGraph G T).induce {x : ↥T | x.val ∈ S}).map nestedSubtypeEquiv = inducedGraph G S.

Inducing 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. Proved by adjacency: an edge survives iff its deep endpoints are G-adjacent and both in S.

Graph-level foundation for instantiating the per-stage increment (#2989) on cubic exhaustion stages. The correlation-level transport across this iso is a documented follow-up (it hits a whnf elaboration wall in correlation_map_equiv on the nested-subtype graph; needs a lighter sum-level encoding — see #2965).

lake build IsingModel.AmbientLatticeSum.InducedUnion green, sorry 0, file linter-clean, tex compiles.

🤖 Generated with Claude Code

phasetr and others added 2 commits May 27, 2026 07:58
Add nestedSubtypeEquiv and inducedGraph_induce_preimage_map_eq: for S ⊆ T,
((inducedGraph G T).induce {x : ↥T | x.val ∈ S}).map nestedSubtypeEquiv =
inducedGraph G S — inducing 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. An edge survives iff its deep endpoints are G-adjacent and both
in S.

Graph-level foundation for instantiating the per-stage increment
(correlation_pair_sub_inducedGraph_le_derivBound, #2989) on cubic exhaustion
stages box_k ⊆ box_{k+1}. The correlation-level transport across this iso is a
follow-up (it currently hits a whnf elaboration wall in correlation_map_equiv on
the nested-subtype graph, needing a lighter sum-level encoding).

Part of #2965

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@phasetr phasetr merged commit bb467d2 into main May 26, 2026
1 check passed
phasetr added a commit that referenced this pull request May 27, 2026
#2991)

* feat: nested-induce correlation transport (Part of #2965)

* feat: nested-induce correlation transport (whnf wall bypassed)

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>

* docs: fix stale follow-up comment per codex (correlation transport now done)

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