Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rami3l/plfl

Learn Lean 4 with PLFA proofs.
https://github.com/rami3l/plfl

lean lean4 plfa programming-language-foundations software-foundations

Last synced: 18 days ago
JSON representation

Learn Lean 4 with PLFA proofs.

Awesome Lists containing this project

README

        

# plfl

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