The axiomatization of override and update
There are only very few natural ways in which arbitrary functions can be combined. One composition operator is oveMde: for arbitrary functions f and g, f (sic) g is the function with domain dom(f) U dom(g) that behaves like f on dom(f) and like g on dom(g)\dom(f). Another 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) boolean AND dom(g). These operators are 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 can be 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 assistant 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 coloring of a Venn diagram can be described using just these two operations. (C) 2009 Elsevier B.V. All rights reserved.
overriding completeness smt solvers function algebra equational logic automated deduction