Data types
Preconditions
Files: [Slides] [Code examples]
Postconditions
Files: [Slides with solutions] [Code examples with solutions]
What you should have learned after completing chapter 5:
- We can add new datatypes and operations to our verifier by adding custom axiomatizations, which correspond to domains in Viper.
- Verification tools often already provide various built-in axiomatizations for common mathematical types like sets and sequences.
- Verification often requires defining a suitable mathematical vocabulary first. It is often convenient to define such vocabulary as functional programs - a shortcut for specific axiomatizations based on the definitional axiom of a function.