Short-circuit logic
| Authors | |
|---|---|
| Publication date | 2010 |
| Number of pages | 25 |
| Publisher | Ithaca, NY: ArXiv |
| Organisations |
|
| Abstract |
Short-circuit evaluation denotes the semantics of propositional connectives in which the second argument is only evaluated if the first argument does not suffice to determine the value of the expression. In programming, short-circuit evaluation is widely used.
A short-circuit logic is a variant of propositional logic (PL) that can be defined by short-circuit evaluation and implies the set of consequences defined by a module SCL. The module SCL is defined using Hoare's conditional, a ternary connective comparable to if-then-else, and implies all identities that follow from four basic axioms for the conditional and can be expressed in PL (e.g., axioms for associativity of conjunction and double negation shift.) In the absence of side-effects, short-circuit evaluation characterizes PL. However, short-circuit logic admits the possibility to model side-effects. We use sequential conjunction as a primitive connective because it immediately relates to short-circuit evaluation. Sequential conjunction gives rise to many different short-circuit logics. The first extreme case is FSCL (free short-circuit logic), which characterizes the setting in which evaluation of each atom (propositional variable) can yield a side-effect. The other extreme case is MSCL (memorizing short-circuit logic), the strongest (most identifying) variant we distinguish below PL. In MSCL, only static side-effects can be modelled, while sequential conjunction is non-commutative. We provide sets of equations for FSCL and MSCL, and for MSCL we have a completeness result. Extending MSCL with one simple axiom yields SSCL (static short-circuit logic, or sequential PL), for which we also provide a completeness result. We briefly discuss two variants in between FSCL and MSCL, among which a logic that admits the contraction of atoms and of their negations (i.e., x^x contracts to x and ¬x ^ ¬x contracts to ¬x if x is a propositional variable). |
| Document type | Report |
| Language | English |
| Published at | http://arxiv.org/abs/1010.3674 |
| Downloads |
Pre-print - version 2.0
(Submitted manuscript)
|
| Permalink to this page | |
