A typechecker for intensional MLTT without elaboration.
Go to file
2022-07-26 23:07:13 +02:00
src definition system, repl 2022-07-26 23:07:13 +02:00
tests definition system, repl 2022-07-26 23:07:13 +02:00
.gitignore initial commit 2022-04-23 15:18:06 +02:00
makefile definition system, repl 2022-07-26 23:07:13 +02:00
pi.ipkg definition system, repl 2022-07-26 23:07:13 +02:00
README.md definition system, repl 2022-07-26 23:07:13 +02:00

pi

A dependently typed system

Implemented

  • A Basic dependent lambda calculus

    • lambda abstractions
    • variables
    • pi types
    • type of types
  • let … in …

  • Unit type

  • Empty type

  • Natural numbers

  • Σ Types

TODO

  • Performence optimisation

    • Parsing !!! (this is like 90% of the time currently lmao)
    • Memoize normalisation and conversion somehow?
  • Repl

  • Universes

  • Implicit arguments

  • (indexed) inductive datatypes

  • Write down the rules (Ill not get this far)

  • Compile to scheme

References

Some of the material I found helpful in groking dependent type checking: