Skip to content

Commit

Permalink
Implement a "term model" evaluator.
Browse files Browse the repository at this point in the history
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
robdockins committed Jun 17, 2021
1 parent e870373 commit 9065e59
Show file tree
Hide file tree
Showing 2 changed files with 1,063 additions and 0 deletions.
1 change: 1 addition & 0 deletions saw-core/saw-core.cabal
Expand Up @@ -76,6 +76,7 @@ library
Verifier.SAW.SCTypeCheck
Verifier.SAW.Simulator
Verifier.SAW.Simulator.Concrete
Verifier.SAW.Simulator.TermModel
Verifier.SAW.Simulator.MonadLazy
Verifier.SAW.Simulator.Prims
Verifier.SAW.Simulator.RME
Expand Down

0 comments on commit 9065e59

Please sign in to comment.