A typechecker for intensional MLTT without elaboration.
Go to file
2022-07-28 04:47:54 +02:00
src removed backtracking behaviour of tarr, parser is ~400x faster now 2022-07-28 04:24:48 +02:00
tests removed backtracking behaviour of tarr, parser is ~400x faster now 2022-07-28 04:24:48 +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 updated readme 2022-07-28 04:47:54 +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

  • Martin-Löf Identity types

TODO

  • Universes

  • Elaboration

    • Implicit arguments
    • Universe family application
  • Inductives

    • Indexed inductives

Things that could be fun to do sometime eventually

  • Pattern matching in elaborator

  • Write down the rules

  • Performence optimisation?

  • Compile to scheme

References

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