https://github.com/rami3l/PLFaLean
Learn Lean 4 with PLFA proofs.
https://github.com/rami3l/PLFaLean
lean lean4 plfa programming-language-foundations software-foundations
Last synced: 9 months ago
JSON representation
Learn Lean 4 with PLFA proofs.
- Host: GitHub
- URL: https://github.com/rami3l/PLFaLean
- Owner: rami3l
- License: mit
- Created: 2023-04-19T01:34:33.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-04-08T15:41:05.000Z (9 months ago)
- Last Synced: 2025-04-08T16:36:39.641Z (9 months ago)
- Topics: lean, lean4, plfa, programming-language-foundations, software-foundations
- Language: Lean
- Homepage:
- Size: 254 KB
- Stars: 62
- Watchers: 4
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PLFaLean
My journey of learning Lean 4 by implementing proofs from the wonderful book [_Programming Language Foundations in Agda_](https://plfa.github.io).
## Table of Contents
### Volume 2
- [x] 1. [Lambda](Plfl/Lambda.lean): Introduction to Lambda Calculus
- [x] 2. [Properties](Plfl/Lambda/Properties.lean): Progress and Preservation
- [x] 3. [DeBruijn](Plfl/DeBruijn.lean): Intrinsically-typed de Bruijn representation
- [x] 4. [More](Plfl/More.lean): Additional constructs of simply-typed lambda calculus
- [x] 5. [Bisimulation](Plfl/More/Bisimulation.lean): Relating reduction systems
- [x] 6. [Inference](Plfl/More/Inference.lean): Bidirectional type inference
- [x] 7. [Untyped](Plfl/Untyped.lean): Untyped lambda calculus with full normalisation
- [x] 8. [Confluence](Plfl/Untyped/Confluence.lean): Confluence of untyped lambda calculus
- [x] 9. [BigStep](Plfl/Untyped/BigStep.lean): Big-step semantics of untyped lambda calculus
### Volume 3
- [x] 1. [Denotational](Plfl/Untyped/Denotational.lean): Denotational semantics of untyped lambda calculus
- [x] 2. [Compositional](Plfl/Untyped/Denotational/Compositional.lean): The denotational semantics is compositional
- [x] 3. [Soundness](Plfl/Untyped/Denotational/Soundness.lean): Soundness of reduction with respect to denotational semantics
- [x] 4. [Adequacy](Plfl/Untyped/Denotational/Adequacy.lean): Adequacy of denotational semantics with respect to operational semantics
- [x] 5. [ContextualEquivalence](Plfl/Untyped/Denotational/ContextualEquivalence.lean): Denotational equality implies contextual equivalence
### Appendix
- [x] 1. [Substitution](Plfl/Untyped/Substitution.lean): Substitution in the untyped lambda calculus