Edwin Brady
55c8b9d6fb
Check locals are usable (with determining args)
2019-05-06 01:06:24 +01:00
Edwin Brady
762f6010dd
Basic TTC saving and loading now works
...
Only save the parts of terms and definitions which are needed for
typechecking and evaluation (so, for example, we don't need types for
machine generated metavariables, don't need types on lambdas, etc).
2019-04-25 14:46:36 +01:00
Edwin Brady
bc26d74f9b
Deal with unresolved constraints
...
Well-typed interpreter example now works (added in samples)
2019-04-20 22:00:58 +01:00
Edwin Brady
63da191e03
FOUR!!!1!!!
...
Er, that is to say, evaluation of a 'main' expression
'plus (S (S Z)) (S (S Z))' is now printing the right answer.
2019-04-20 16:54:09 +01:00
Edwin Brady
c3f36ce484
Add IBindHere for type declarations
...
This means we have unbound implicits in types now
2019-04-18 17:24:56 +01:00
Edwin Brady
c41ab9778f
Progress towards pattern matching
...
Checking IBindVar and IBindHere, and first check of left hand side with
implicitly bound pattern variables.
2019-04-18 14:51:04 +01:00
Edwin Brady
56c0ec5324
Implement inferLambda
...
This checks lambdas where the type isn't immediately a pi binder. First
normalises, if that doesn't work, just guesses and unifies with the
expected type.
2019-04-07 17:16:44 +01:00
Edwin Brady
947e33cc97
Initial implementation of data types
2019-04-06 22:40:15 +01:00
Edwin Brady
10b1b6eb8d
Unifying pi binders, add implicit lambda
2019-04-06 17:37:20 +01:00
Edwin Brady
23051a55de
Add Weaken interface, to start evaluator
2019-03-10 22:00:10 +00:00
Edwin Brady
0f8d337b27
Add a main program which processes a source file
2019-03-10 18:20:26 +00:00