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.