Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The basic idea behind this evalutor is to use "normalization by evaluation" techniques to perform principled term reduction using the same simulator infrastructure we already have. The main difference from the concrete simulator is that syntax of terms may also appear among the value forms in the simulator. When these unevaluated "neutral" terms appear, the simulator will reconstruct syntax around them corresponding to the constructs it is attempting to evaluate. The result should be a syntactic term that is evaluated "as far as possible" until it gets stuck on some external variable, opaque term, or other term that is (for whatever reason) not in canonical form.
- Loading branch information