Skip to content

feat(LambdaCalculus/Named/Untyped): Alpha equivalence equalities - #741

Open
chris-anto-froeschl wants to merge 12 commits into
leanprover:mainfrom
chris-anto-froeschl:alpha-equivalence-equalities
Open

feat(LambdaCalculus/Named/Untyped): Alpha equivalence equalities#741
chris-anto-froeschl wants to merge 12 commits into
leanprover:mainfrom
chris-anto-froeschl:alpha-equivalence-equalities

Conversation

@chris-anto-froeschl

Copy link
Copy Markdown
Contributor

Formalizes the definitions and proofs from Roy L. Crole's paper Alpha equivalence equalities.

This PR currently contains the formalization of Theorem 4.1 and its prerequisites to keep the review manageable. The remaining results are intended as follow-up PRs.

Status: blocked-by-other-PR. This PR depends on the open Basics of named representation PR and currently targets an intermediate revision that will need rebasing once that PR is merged.

The overall structure closely follows the original paper to simplify cross-referencing between the formalization and the published proofs. Feedback on the organization of the files and the placement of helper definitions (e.g. swap and permute) is welcome.

Files

AlphaEquivDefs.lean

Defines the α-equivalence relations studied in the paper. The definition corresponding to Definition 3.1 reuses the α-equivalence relation introduced in #458 (Basic.lean).

AlphaEquivEquiv.lean

Formalizes the main equivalence results between the different α-equivalence definitions.

SwapProperties.lean

Contains helper lemmas about swaps and permutations used throughout the proofs.

Notes

Early development used a custom implementation of swap. This has since been replaced by Equiv.swap from Mathlib.Logic.Equiv.Basic. I think the current version should be preferred.

AI usage

Aristotle was used during exploration of alternative definitions and auxiliary swap lemmas. The final proofs were substantially rewritten, manually verified, and checked against the original paper.

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.

2 participants