=========
Summary
=========

------------------------
Specification Language
------------------------

* Rich **specification language** in SPARK

  - Conditional expressions
  - Quantified expressions
  - New forms of aggregates
  - Structuring expressions

* Expression functions are handled **specially** in proof

  - Implicit postcondition given by their expression

* Expression functions define **queries** on private types

  - Function spec declared in the visible part
  - Expression function given in the private part
  - Preserves abstraction for user
  - Gives enough details for proof
