Commit Graph

255 Commits

Author SHA1 Message Date
Edwin Brady
547eea953c A bit of reorganisation
Better to have the elaborator across multiple files, for ease of
navigation. Also abandon the idea of local unification variables -
we'll keep them global, and try let binding them on leaving a scope.
2019-03-18 16:25:53 +00:00
Edwin Brady
7d672407c8 Start on UnifyState
Also removed 'MV' as a special name type, and added a Meta constructor
in TT which is applied to exactly the right number of arguments for the
environment the meta was constructed in.

It's possible the local unification UCtxt may be more trouble than it's
worth! Instead perhaps we can try let binding unification solutions where
possible on leaving the scope in which they're introduced.
2019-03-17 20:43:51 +00:00
Edwin Brady
57f1fb77c3 Added 'quick' unify
Unification based only on constructor arguments and matching - anything
else fails. Idea is to solve 'easy' local unification problems quickly,
without having to create a global metavar applied to the current context.
2019-03-17 13:34:22 +00:00
Edwin Brady
0f8d337b27 Add a main program which processes a source file 2019-03-10 18:20:26 +00:00
Edwin Brady
992d8dd0f9 Added parser for most basic terms
Just variables, binders, applications, and basic declarations (data,
type and function definitions)
2019-03-10 17:56:08 +00:00