Skip to content

refactor: remove funext dependency from Classical.em, drop Quot.sound#14420

Closed
tchaumeny wants to merge 4 commits into
leanprover:masterfrom
tchaumeny:diaconescu_rework
Closed

refactor: remove funext dependency from Classical.em, drop Quot.sound#14420
tchaumeny wants to merge 4 commits into
leanprover:masterfrom
tchaumeny:diaconescu_rework

Conversation

@tchaumeny

@tchaumeny tchaumeny commented Jul 16, 2026

Copy link
Copy Markdown

This PR removes the usage of funext in the proof of excluded-middle (Diaconescu's theorem). As a result, the dependency on the axiom Quot.sound disappears from em.

This small refactoring is inspired by this MO question by Jean Abou Samra.

It also makes the proof substantially simpler while keeping the original structure.

Before

#print axioms em
'Classical.em' depends on axioms: [propext, choice, Quot.sound]

After

#print axioms em
'Classical.em' depends on axioms: [propext, choice]

@tchaumeny tchaumeny changed the title refactor: remove funext dependency from Classical.em, drop Quot.sound… refactor: remove funext dependency from Classical.em, drop Quot.sound Jul 16, 2026
Comment thread src/Init/Classical.lean Outdated
Comment thread src/Init/Classical.lean Outdated
Comment thread src/Init/Classical.lean Outdated
@github-actions github-actions Bot added the toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN label Jul 16, 2026
@mathlib-lean-pr-testing

Copy link
Copy Markdown

Mathlib CI status (docs):

  • ❗ Batteries/Mathlib CI will not be attempted unless your PR branches off the nightly-with-mathlib branch. Try git rebase 52edefc40e92425b6bb2671c01420b7f76fb6caf --onto a4b639c5a1e545677b36b09a4770b7b559df805b. You can force Mathlib CI using the force-mathlib-ci label. (2026-07-16 18:49:29)

@leanprover-bot

Copy link
Copy Markdown
Collaborator

Reference manual CI status:

  • ❗ Reference manual CI will not be attempted unless your PR branches off the nightly-with-manual branch. Try git rebase 52edefc40e92425b6bb2671c01420b7f76fb6caf --onto a4b639c5a1e545677b36b09a4770b7b559df805b. You can force reference manual CI using the force-manual-ci label. (2026-07-16 18:49:31)

Comment thread src/Init/Classical.lean Outdated
Comment thread src/Init/Classical.lean Outdated
Comment thread src/Init/Classical.lean Outdated
@tchaumeny
tchaumeny requested a review from SnirBroshi July 16, 2026 20:54

@SnirBroshi SnirBroshi left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool!

Comment thread src/Init/Classical.lean Outdated
Co-authored-by: Snir Broshi <26556598+SnirBroshi@users.noreply.github.com>
@TwoFX

TwoFX commented Jul 20, 2026

Copy link
Copy Markdown
Member

As discussed, reducing axioms beyond the three standard axioms is not a goal of the Lean standard library, and neither is the proofs being useful pedagogically. So I'm closing this PR.

@TwoFX TwoFX closed this Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants