Skip to content
/ Lam Public

A formally verified interpreter for Lambda Calculus.

License

Notifications You must be signed in to change notification settings

tomaz1502/Lam

Repository files navigation

Lam

A formally verified interpreter for Lambda Calculus.

Dependencies: agda2hs version 1.2.

Build with the build.sh script.

Roadmap

Infrastructure

  • Lexer
  • Parser
  • Tests
    • Parser
    • Evaluator
  • De Bruijn Indices
  • Basic formalization
    • Type checker
    • Evaluator

Features

  • Simple Types
  • Extensions (TaPL ch 11)
    • Uninterpreted (opaque) Types
    • Numbers, booleans, ITE
    • Equality, Strings
    • Pairs
    • Sums
    • General recursion
    • Pattern Matching
  • Polymorphism
  • Verify properties using Agda (Progress/Preservation)
  • Library of examples

Usability

  • Code Generation
  • Support for commentary
  • Error messages
  • Commands
    • Eval
    • Define
    • Load
    • Typedef

Future Work

  • DAG instead of AST
  • System F omega
  • Type Inference
  • Type Classes
  • Dependent Types

About

A formally verified interpreter for Lambda Calculus.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published