You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: thin exists_perm_extending_strictMono via mathlib API (−46 lines) (#18)
* refactor: thin exists_perm_extending_strictMono via mathlib API
Reduces the local proof from 58 lines of hand-built subtype
equivalences + `Equiv.extendSubtype` to a 13-line wrapper around
`Equiv.Perm.exists_extending_pair` (landed in mathlib via PR
#34599) plus `Fin.castLE` / `Fin.castLE_injective` for the
initial-segment inclusion.
Statement is unchanged; only the proof body is touched. The
single call site (`contractable_of_exchangeable`) is unaffected.
- Exchangeability/Contractability.lean: -44 net lines.
* docs: update Contractability docstrings to match refactored proof
Two docstrings still described the old subtype-equivalence
construction, which no longer matches the refactored proof body.
- Module header (lines 55-58): "uses `Equiv.extendSubtype` to
extend a bijection between subtypes" -> "thin wrapper around
mathlib's `Equiv.Perm.exists_extending_pair`".
- `exists_perm_extending_strictMono` docstring: 4-step
"Construction outline" describing domain/codomain partition +
manual `extendSubtype` -> short note pointing at
`Equiv.Perm.exists_extending_pair` with the choice of `f` and
`g`.
Statement, signature, and behavior are unchanged.
0 commit comments