Skip to content

feat: Step 572 — parity transition lemma evenSubgraph_pair_boundary_erase_swap (GJ §18.7) - #1414

Merged
phasetr merged 2 commits into
mainfrom
feat/step572-pair-boundary-dist-le
May 2, 2026
Merged

feat: Step 572 — parity transition lemma evenSubgraph_pair_boundary_erase_swap (GJ §18.7)#1414
phasetr merged 2 commits into
mainfrom
feat/step572-pair-boundary-dist-le

Conversation

@phasetr

@phasetr phasetr commented May 2, 2026

Copy link
Copy Markdown
Owner

Part of #1344

Summary

  • §18.7 graph-distance bound foundation. Adds evenSubgraph_pair_boundary_erase_swap: for ∂X = {i, j}, edge s(i, k) ∈ X with k ∉ {i, j}, erasing the edge moves the boundary to {k, j}.
  • Encodes the parity flip ∂(X.erase s(i, k)) = ∂X △ {i, k} underlying the inductive proof of the graph-distance bound.
  • Also adds import Mathlib.Combinatorics.SimpleGraph.Metric (preparation for the dist bound in Step 573+).

Proof

4-way case analysis on v vs i, j, k:

  • v = i: indicators (1, 1, 0) for ({i,j}, s(i,k), {k,j}). Even(1+a+1) ↔ Even a ↔ Even(0+a). ✓
  • v = j: (1, 0, 1). ✓
  • v = k: (0, 1, 1). ✓
  • v ∉ {i, j, k}: (0, 0, 0). ✓

Test plan

  • lake build clean
  • sorry zero
  • codex cross-check: No concrete issues

@phasetr phasetr changed the title feat: Step 572 — graph-distance bound G.dist i j ≤ |X| for ∂X = {i,j} (GJ §18.7) feat: Step 572 — parity transition lemma evenSubgraph_pair_boundary_erase_swap (GJ §18.7) May 2, 2026
…rase_swap (GJ §18.7)

Adds evenSubgraph_pair_boundary_erase_swap: for X with ∂X = {i, j} (FV
(3.46) numerator filter at A = {i, j}) and an edge s(i, k) ∈ X with
k ≠ i, k ≠ j, erasing the edge yields X.erase s(i, k) with
∂(X.erase s(i, k)) = {k, j}.

Encodes the boundary-flip ∂(X.erase e) = ∂X △ {endpoints of e}: erasing
edge s(i, k) flips parity at both endpoints i and k (Step 570), turning
i's odd degree into even (i leaves boundary) and k's even degree into
odd (k joins boundary). j's parity is preserved.

Proof by 4-way case analysis on v relative to i, j, k:
- v = i: indicators (1, 1, 0) for ({i,j}, s(i,k), {k,j}); parity check
  via Nat.even_add and Even 2.
- v = j: indicators (1, 0, 1); direct.
- v = k: indicators (0, 1, 1); direct.
- v ∉ {i, j, k}: indicators (0, 0, 0); direct.

Also adds `import Mathlib.Combinatorics.SimpleGraph.Metric` to bring
SimpleGraph.dist and Walk into scope for the upcoming Step 573 dist
bound (the inductive capstone using Steps 569+570+571+572).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@phasetr
phasetr marked this pull request as ready for review May 2, 2026 07:02
@phasetr
phasetr merged commit 646a98e into main May 2, 2026
1 check passed
@phasetr
phasetr deleted the feat/step572-pair-boundary-dist-le branch May 2, 2026 07:02
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