| Age | Commit message (Collapse) | Author |
|
|
|
unknown conditions.
Does not merge if one path has resulted in an exit
|
|
|
|
being very power-specific.
Note: slight interface change to instruction_extractor
|
|
Fix up parsing on 2** precedence
Fix errors on type variables in function definition
|
|
|
|
Still to do: type rules for register aliases and relation for overloading selection
|
|
overloading resolution not modelled
|
|
|
|
range<'N,'N>)
Non-sugar syntax is -- forall Nat 'N. atom<'N>
Sugar syntax is -- [: 'N :]
Also begin adding pp support for generating ocaml from ast types.
|
|
|
|
|
|
|
|
interpreter.
An alias can be read within the interpreter, but not written to. Exits aren't yet taken in the interpreter.
|
|
Short version of below; ready to hook interp_exhaustive up to something to test, but haven't yet.
If an unknown value influences a pattern match within an expression, each passing pattern is found and the bodies strung together into a block with let expressions to bind the variables.
In a function call, the cases are all collected but the support is not in place at the moment to evaluate them.
If an unknown is the result of the cond expression in an if, the then and else case become a block.
Unknowns within the interpreter propagate to more Unknowns; also for some but not all library functions yet.
|
|
to support 2**64.
Note: now nat (short hand for range<0,infinity>) should only be used if you really mean a nat instead of a bounded number (i.e. range<0,2**32>)
|
|
constraints. Clean up Lem output a little for readability while debugging.
|
|
available for field lookups of registers; this feature still not fully working.
|
|
ast, and extending the interpreter to expect annotations.
Annotations and locations are still not used by the interpreter.
|