Unifying heterogeneous state-spaces with lenses
This is the web page supporting our ICTAC 2016 submission. All definition, theorems, and proofs can be located in our repository on GitHub. This page gives details of the theorem locations in those files relative to the repository.
Syntactic conventions
For technical and stylistic reasons, in the paper the lens operators have slightly different syntax to the Isabelle theories. We thus list these difference for convenience.
- Lens composition. Paper: ⨾. Isabelle: ;L
- Unit lens. Paper: 0. Isabelle: 0L
- Identity lens. Paper: 1. Isabelle: 1L or Σ (the latter is used when referring to the alphabet)
- Sublens. Paper: ≼. Isabelle: ⊆L
- Summation. Paper: ⊕. Isabelle: +L
Theorem locations
Lenses
The lens theorems are all located in utils/Lenses.thy
3.1 Lens laws
3.2 Concrete lenses
- Theorem 1 (Function lens is very well-behaved)
- Theorem 2 (Map lens is mainly well-behaved)
3.3 Lens algebraic operators
Unifying state-space abstractions
UTP definitions and theorems are located under utp/.
4.1 Alphabetised predicate calculus
4.2 Meta-logical operators
4.3 Relational laws of programming
- Definition 13 (Relational variables)
- Definition 14 (Relational operators)
- Theorem 15 (Unital quantale)
- Theorem 16 (Assignment laws)
4.4 Parallel-by-merge