-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proof development primitives #1637
Commits on Aug 8, 2022
-
Reimplement the
TopLevel
monad based on theStateContT transformer, which gives us the ability to capture continuations. This allows us to implement `callcc` as a saw-script command. Additionally, implement a "checkpoint" command that will capture the TopLevel monad state and allow it to be restored later. Also, rework some aspects of error handling. The previous method no longer worked properly with a continuation-based TopLevel monad.
Configuration menu - View commit details
-
Copy full SHA for aade958 - Browse repository at this point
Copy the full SHA aade958View commit details -
Implement a "subshell" command.
When invoked from a batch file (or from an ongoing REPL session) starts a "subshell" REPL session. The intent here is to allow for exploration and experimentation in the middle of a larger run. For now, subshells are not very useful, as there isn't a good way to expose the local SAW environment to the shell.
Configuration menu - View commit details
-
Copy full SHA for 8f37eeb - Browse repository at this point
Copy the full SHA 8f37eebView commit details -
Push the SAW script "local environment" into the read-only section
of the TopLevel monad. This allows it to interact with primitive operations; in particular, we can start a subshell with local SAW script bindings in scope.
Configuration menu - View commit details
-
Copy full SHA for 7a305d7 - Browse repository at this point
Copy the full SHA 7a305d7View commit details -
Prevent the REPL from grabbing and printing exceptions it should
be leaving alone (async and exit exceptions).
Configuration menu - View commit details
-
Copy full SHA for dbe32ba - Browse repository at this point
Copy the full SHA dbe32baView commit details -
Configuration menu - View commit details
-
Copy full SHA for d9f6ba0 - Browse repository at this point
Copy the full SHA d9f6ba0View commit details -
Make
checkpoint
somewhat less broken. This change causes the`NameSeeds` value used internally by Cryptol to be carried forward across checkpoints. This prevents internal nonce values from being reused, which, in turn, avoids errors about registering duplicate names. It is unclear if this is the correct long-term fix, but it allows checkpoint to work more reliably when importing Cryptol modules or using `let {{ ... }}` constructs.
Configuration menu - View commit details
-
Copy full SHA for e85d331 - Browse repository at this point
Copy the full SHA e85d331View commit details -
Move the
SharedContext
andTheoremDB
objects into themutable state part of the TopLevel monad. This allows them to participate in the checkpoint/restore mechanism.
Configuration menu - View commit details
-
Copy full SHA for 8bb8cae - Browse repository at this point
Copy the full SHA 8bb8caeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8780ee2 - Browse repository at this point
Copy the full SHA 8780ee2View commit details -
Configuration menu - View commit details
-
Copy full SHA for d942988 - Browse repository at this point
Copy the full SHA d942988View commit details -
Add a
saw_assert
override function with the following signature:``` void saw_assert( uint32_t ); ``` This allows the program source to directly assert a proposition inline which is then assumed as part of the path condition. This can sometimes help the path sat checker by stating helpful lemmas whose proof can be deferred to the VC-checking phase. It can also be helpful for program/proof exploration, allowing the user to directly state inline hypotheses about program behavior, and then attempt to prove them.
Configuration menu - View commit details
-
Copy full SHA for bbb8055 - Browse repository at this point
Copy the full SHA bbb8055View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4101e38 - Browse repository at this point
Copy the full SHA 4101e38View commit details -
Configuration menu - View commit details
-
Copy full SHA for eef3bb4 - Browse repository at this point
Copy the full SHA eef3bb4View commit details -
Configuration menu - View commit details
-
Copy full SHA for b8d17bc - Browse repository at this point
Copy the full SHA b8d17bcView commit details -
Add a
proof_checkpoint
command that captures andallows the user to restore proof states.
Configuration menu - View commit details
-
Copy full SHA for 6952456 - Browse repository at this point
Copy the full SHA 6952456View commit details