Duplicate theorem dedup: mayerExpansionTerm_eq_zero_of_no_polymers
Background
Following refactor campaign cycles 1-7 (PR #4536–#4554, cycles completed 2026-07-17, main=7447d9e1),
umbrella-detached module wiring (cycle 7, #4553) exposed a genuine duplicate declaration during build:
mayerExpansionTerm_eq_zero_of_no_polymers exists in two locations.
Duplicate locations
- MayerCore (weaker, n≥1):
IsingModel/ClusterExpansion/MayerCore/Truncations.lean:84
- CycleSeven (general, supersedes):
IsingModel/ClusterExpansion/StrictPositivity/CycleSeven.lean:47
The CycleSeven version is reachable and general; the MayerCore version is detached and restricted.
User decision (2026-07-17)
Delete one twin, wire survivor into umbrella. Survivor selection (which theorem to keep) is TBD pending dev-design independent judgment.
Acceptance criteria
- Lake build: zero warnings
audit_gate.py V1–V3: all PASS
#print axioms: [propext, Classical.choice, Quot.sound] only (axiom-free)
- No sorry / admit / native_decide
- Survivor theorem referenced from single location (no duplicate paths)
Authorization basis
Gate (a) explicit user instruction (refactor campaign cycle 8, 2026-07-17).
See handoff: .self-local/reports/handoff-session-refactor-2026-07-17.md § "Open user-decision items" item 1.
Duplicate theorem dedup: mayerExpansionTerm_eq_zero_of_no_polymers
Background
Following refactor campaign cycles 1-7 (PR #4536–#4554, cycles completed 2026-07-17, main=7447d9e1),
umbrella-detached module wiring (cycle 7, #4553) exposed a genuine duplicate declaration during build:
mayerExpansionTerm_eq_zero_of_no_polymersexists in two locations.Duplicate locations
IsingModel/ClusterExpansion/MayerCore/Truncations.lean:84IsingModel/ClusterExpansion/StrictPositivity/CycleSeven.lean:47The CycleSeven version is reachable and general; the MayerCore version is detached and restricted.
User decision (2026-07-17)
Delete one twin, wire survivor into umbrella. Survivor selection (which theorem to keep) is TBD pending dev-design independent judgment.
Acceptance criteria
audit_gate.pyV1–V3: all PASS#print axioms: [propext, Classical.choice, Quot.sound] only (axiom-free)Authorization basis
Gate (a) explicit user instruction (refactor campaign cycle 8, 2026-07-17).
See handoff:
.self-local/reports/handoff-session-refactor-2026-07-17.md§ "Open user-decision items" item 1.