Internship Objectives - shaolintl/fstar-type-checker GitHub Wiki
Roadmap for an F* type checker in lambda-prolog
Target
Create an external type checker for the F* language.
Benefits
- Increased confidence in F*
- Better understanding of its type system
- A reference implementation of F* type inference algorithm
Optional Benefits
- Logical specification of a future new F* type inference algorithm
- Establish new development approach in functional programming languages (LSDP - Logical specification driven programming)
Members
- Tomer Libal
- Keith Cannon
Method
Incrementally create different type systems and type checking algorithms in lambda-prolog in order to cover bigger and bigger subsets of F
- Use testing extensively
- Use documentation extensively
- document everything in the wiki
- Use ELPI for the implementation
- Follow closely the techniques used in the development of the CIC type system on the ELPI cic branch
Timeframe
During the internship of Keith Cannon in the Prosecco team of Inria, Paris. 1/4/2017-30/9/2017
Roadmap
- Programming in ELPI of STLC (simply typed lambda calculus) and a type checking algorithm for it
- learn ELPI
- understand CIC code
- establish testing/documentation skills
- document progress and required resources/papers in this wiki
- replace ground terms with variables and check possibility of type inference
- Programming in ELPI of a simple Hoare logic
- understand the type system
- implement it in ELPI
- further reading here
- use it to type check/infer examples (check with Catalin?)
- Extend with dependent types, sub-types, etc.