Skip to content

feat: prove confluence for βη-reduction#456

Merged
chenson2018 merged 39 commits intoleanprover:mainfrom
m-ow:beta-eta-confluence
Mar 26, 2026
Merged

feat: prove confluence for βη-reduction#456
chenson2018 merged 39 commits intoleanprover:mainfrom
m-ow:beta-eta-confluence

Conversation

@m-ow
Copy link
Copy Markdown
Contributor

@m-ow m-ow commented Mar 24, 2026

Depends on #455. Adds $\eta$-reduction properties and proves confluence for $\beta \eta$-reduction.

@m-ow m-ow requested a review from chenson2018 as a code owner March 24, 2026 18:46
@m-ow m-ow changed the title feat: prove confluence for $\beta eta$-reduction feat: prove confluence for $\beta \eta$-reduction Mar 24, 2026
@m-ow m-ow changed the title feat: prove confluence for $\beta \eta$-reduction feat: prove confluence for βη-reduction Mar 24, 2026
@m-ow m-ow requested a review from fmontesi as a code owner March 24, 2026 19:21
@chenson2018
Copy link
Copy Markdown
Collaborator

I realized that BaseEta was inconsistent naming with Xi and Beta, so I have changed this. I am working on reviewing the rest currently.

Copy link
Copy Markdown
Collaborator

@chenson2018 chenson2018 left a comment

Choose a reason for hiding this comment

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

It's great to see that the definitions I added about strongly commuting relations are getting some use! Just some style notes, very similar to the previous PRs.

Comment thread Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/FullEta.lean Outdated
Comment thread Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/FullEta.lean Outdated
Comment thread Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/FullEta.lean Outdated
Comment thread Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/FullEta.lean Outdated
Comment thread Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/FullEta.lean Outdated
Comment thread Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/FullBetaEtaConfluence.lean Outdated
Comment thread Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/FullBetaEtaConfluence.lean Outdated
Comment thread Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/FullBetaEtaConfluence.lean Outdated
Comment thread Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/FullBetaEtaConfluence.lean Outdated
Comment thread Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/FullBetaEtaConfluence.lean Outdated

/-- Full βη-reduction. -/
@[reduction_sys "βηᶠ"]
abbrev FullBetaEta : Term Var → Term Var → Prop := FullBeta ⊔ FullEta
Copy link
Copy Markdown
Collaborator

@chenson2018 chenson2018 Mar 25, 2026

Choose a reason for hiding this comment

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

I know in a previous PR I mentioned proving Xi r₁ ⊔ Xi r₂ = Xi (r₁ ⊔ r₂), but is this actually true generally? If so this could be written maybe slightly nicer as Xi (Beta ⊔ Eta), but I got stuck on an abstraction case.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I agree that Xi (Beta ⊔ Eta) is more elegant, but the abstraction case requires some heavy renaming lemmas. To keep this PR focused, I think sticking with FullBeta ⊔ FullEta is best for now. I'd be happy to tackle that refactor in a future PR! Let me know if everything else looks good to merge.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Sound good to me, I've sent to the merge queue. Great to see this complete! Please let me know if there's other work you're considering.

m-ow and others added 3 commits March 25, 2026 14:30
….lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
….lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
….lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
m-ow and others added 16 commits March 25, 2026 14:31
….lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
…aEtaConfluence.lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
…aEtaConfluence.lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
…aEtaConfluence.lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
…aEtaConfluence.lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
…aEtaConfluence.lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
….lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
….lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
….lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
….lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
….lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
….lean

Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
…tion (leanprover#329)

This PR reaches a major milestone by proving that omega-regular
languages are closed under complementation, using W. Thomas's
presentation of R. Büchi's original proof. Most of the groundwork has
been laid in previous PRs and the only nontrivial theorem proved in this
PR is `buchiFamily_cover` in BuchiCongruence.lean, which uses the Ramsey
theorem for infinite graphs.
@chenson2018 chenson2018 added this pull request to the merge queue Mar 26, 2026
Merged via the queue into leanprover:main with commit 225c4b1 Mar 26, 2026
2 checks passed
thomaskwaring pushed a commit to thomaskwaring/cslib_SKI that referenced this pull request Apr 6, 2026
Depends on leanprover#455. Adds $\eta$-reduction properties and proves confluence
for $\beta \eta$-reduction.

---------

Co-authored-by: Chris Henson <chrishenson.net@gmail.com>
Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
Co-authored-by: Ching-Tsun Chou <chingtsun.chou@gmail.com>
@m-ow m-ow deleted the beta-eta-confluence branch April 16, 2026 15:10
tannerduve pushed a commit to tannerduve/cslib that referenced this pull request Apr 22, 2026
Depends on leanprover#455. Adds $\eta$-reduction properties and proves confluence
for $\beta \eta$-reduction.

---------

Co-authored-by: Chris Henson <chrishenson.net@gmail.com>
Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
Co-authored-by: Ching-Tsun Chou <chingtsun.chou@gmail.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.

3 participants