-
Notifications
You must be signed in to change notification settings - Fork 41
Constraint based Invariant Synthesis
SMT-LIB is a standard that defines how to work with SMT formulas on a computer.
Ex 1.1: Download and run an SMT solver, e.g., Z3 https://github.com/Z3Prover/z3
In principle you could also use the web interface of Z3, but I presume it is more convenient to have something that runs on your machine.
Ex 1.2 Write a bunch of SMT scripts that contain the check-sat command. Writing SMT scripts is not easy. Start with the scripts from the Z3 web interface and modify them. Use some formulas from you logics lecture. Use the get-model or the get-value command to get a satisfying assignment. Note that you will not get a response if your formulas become difficult. Formulas with quantifiers are typically difficult.
Boogie is a language that is like programming languages suitable for writing down algorithms in a machine readable from. However, Boogie is typically not used by programmers to write code. It is typically used to model computer programs written in other programming languages.
- Boogie specification This is Boogie 2
- Microsoft's tool for Boogie verificationBoogie @ rise4fun
- A Boogie interpreter Boogaloo
- Verification of safety properties in Ultimate
- Termination analysis in Ultimate (link currently not working, problem with umlauts)
- Synthesis of ranking functions and nontermination arguments in Ultimate
Ex 2.1 Write some (small) Boogie program that is correct.
Ex 2.2 Write some (small) Boogie program that not correct.
Ex 2.3 Write some (small) Boogie program where Ultimate is unable to decide correctness.
Ex 2.4 Write some (small) Boogie program that is nonterminating.
Ex 2.5 Write some (small) Boogie program that is terminating.
- Home
- Ultimate Development
- Ultimate Build System
- Documentation
- Project Topics