Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rybla/lingua
Implementations of and reasonings about a variety of simple functional languages, in Agda.
https://github.com/rybla/lingua
Last synced: 4 days ago
JSON representation
Implementations of and reasonings about a variety of simple functional languages, in Agda.
- Host: GitHub
- URL: https://github.com/rybla/lingua
- Owner: rybla
- Created: 2020-12-01T17:54:11.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2020-12-18T03:11:30.000Z (about 4 years ago)
- Last Synced: 2024-11-07T11:13:45.088Z (about 2 months ago)
- Language: Agda
- Homepage:
- Size: 35.2 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# README
Implementations of and reasonings about the following languages:
| name | description | common parlence | resources |
| --- | --- | --- | --- |
| [λ][λ] | simply-typed λ-calculus | STλC |
| [λ2][λ2] | λ with type polymorphism | System F |
| [λω][λω] | λ2 with type constructors | System Fω |
| [λΠ][λΠ] | λ with dependent types | |
| [λΠω][λΠω] | λΠ with type constructors | Calculus of Constructions | _Calculus of Constructions_ [[wiki](https://en.wikipedia.org/wiki/Calculus_of_constructions)]
| [λS][λS] | λΠω with self types | System S | _Self Types for Dependently Typed Lambda Encodings_ [[paper](https://fermat.github.io/document/papers/rta-tlca.pdf)]
| [λID][λID] | λΠω with inductive datatypes | Calculus of Inductive Constructions |
| [λCD][λCD] | λΠω with coinductive datatypes | Calculus of Coinductive Constructions |
| [λPID][λPID] | predicative λΠω with inductive datatypes | Predicative Calculus of Coinductive Constructions |## λ
**λ: Simply-typed λ-calculus.**
`Language/Lambda/` contains an intrinsically-typed implementation. Based on [_Programming Language Foundations in Agda –– DeBruijn: Intrinsically-typed de Bruijn representation_](https://plfa.github.io/DeBruijn/).
_Tasks._
- [x] Grammar
- [x] Typing
- [x] Reducing
- [ ] Examples
- [x] simples
- [ ] Church numerals## λ2
**λ2: λ with type polymorphism (System F).**
`Lambda/Lambda2/` contain an intrinsically-typed implementation. Based on [_System F in Agda for Fun and Profit_](https://github.com/input-output-hk/plutus/tree/master/papers/system-f-in-agda).
_Tasks._
- [ ] Kinding
- [ ] properties of `_≅ₛ_`
- [ ] properties of `rename-⊨`
- [ ] properties of `reflect`
- [ ] properties of `reify`
- [ ] interactions between `rename`, `substitute`, `extend`, `evaluate`, `reflect`, `reify`, and `_≅ₛ_`
- [ ] properties of `_≅ₛ_`
- [ ] properties of `_≅ₑ_`
- [ ] completeness
- [ ] stability
- [ ] interactions between `rename`, `substitute`, weakenings, and single substitutions
- [x] Typing
- [ ] Normal Typing
- [ ] normalization lemmas
- [ ] `normalize-Type` cases:
- [ ] ``` `fold```
- [ ] ``` `unfold```
- [ ] `progress` cases:
- [ ] ```_`∙♯_```
- [ ] ``` `unfold```
- [ ] Type Erasure
- [ ] `erase-normalize-Type-≡`
- [ ] erase-substitution lemmas## λω
TODO
## λΠ
TODO
## λΠω
TODO
## λS
TODO
## λID
TODO
## λCID
TODO
## λPID
TODO
[λ]: #λ
[λ2]: #λ2
[λω]: #λω
[λΠ]: #λΠ
[λΠω]: #λΠω
[λS]: #λS
[λID]: #λID
[λCD]: #λCD
[λPID]: #λPID