Alloy is an increasingly popular lightweight specification language based on relational logic. Alloy models can be automatically verified within a bounded scope using off-the-shelf SAT solvers. Since false assertions can usually be disproved using small counter-examples, this approach suffices for most applications. Unfortunately, it can sometimes lead to a false sense of security, and in critical applications a more traditional unbounded proof may be required. The automatic theorem prover Prover9 has been shown to be particularly effective for proving theorems of relation algebras [7], a quantifier-free (or point-free) axiomatization of a fragment of relational logic. In this paper we propose a translation from Alloy specifications to fork algebras (an extension of relation algebras with the same expressive power as relational logic) which enables their unbounded verification in Prover9. This translation covers not only logic assertions, but also the structural aspects (namely type declarations), and was successfully implemented and applied to several examples.
Using Prover9 to verify relational models was already proposed in @cite_0 . However, since they use only RA, their expressiveness power is limited to a 3 variable fragment of RL. A significant difference occurs in the way the types are represented. While they use to represent sets, and thus types, we use coreflexives. This change is motivated by our belief that coreflexives are more amenable to calculation. They also did not propose a translation from Alloy to RA and assume the model is already defined in this formalism.
@cite_0
2786407357
A camera film advancing apparatus is disclosed which is improved in respect of reliability of engagement between the pawl of the film advancing sprocket and the perforation of the film to simplify the operation necessary for film charging.