The Axiomatization of Override and Update

J. Berendsen, D. Jansen, J. Schmaltz, and F.W. Vaandrager. The Axiomatization of Override and Update. Journal of Applied Logic 8:141-150, 2010. ISSN 1570-8683, DOI: 10.1016/j.jal.2009.11.001.

Abstract

There are only very few natural ways in which arbitrary functions can be combined. One composition operator is override: for arbitrary functions f and g, f ▻ g is the function with domain dom(f) ∪ dom(g) that behaves like f on dom(f) and like g on dom(g) \ dom(f). Another composition operator is update: f[g] has the same domain as f, behaves like f on dom(f) \ dom(g), and like g on dom(f) ∩ dom(g). These operators are fundamental and widely used, especially within computer science, where for instance f[g] may denote the new state that results when in state f the updates given as g are applied. It is therefore surprising that thus far no axiomatization of these operators has been proposed in the literature. As an auxiliary operator we consider the minus operator: f – g is the restriction of f to the domain dom(f) \ dom(g). The update operator is then defined in terms of override and minus. We present five equations that together constitute a sound and complete axiomatization of override and minus. As part of our completeness proof, we infer a large number of useful derived laws using the proof assistent Isabelle. With the help of the SMT solver Yices, we establish independence of the axioms. Thus, our axiomatization is also minimal. Finally, we establish that override and minus are functionally complete in the sense that any operation on general functions that corresponds to a valid colouring of a Venn diagram can be described using just these two operations.