Closed jonnybest closed 12 years ago
this is probably how it should look:
(assert
(forall ((a0 Atom)(a1 Atom)(a2 Atom)(r Rel3)) (=>
(in_3 a0 a1 a2 r)
(in_2 a0 a1 (join_3x1
r
(a2r_1 a2)
))))
)
(assert
(forall ((a0 Atom)(a1 Atom)(a2 Atom)(r Rel3)) (=>
(in_2 a0 a1 (join_3x1
r
(a2r_1 a2)))
(in_3 a0 a1 a2 r)))
)
There is a simple way around this:
I did not examine this generation or the resulting lemmas for their practicality. this is just the way to create similar, valid lemmas for each possible join expression.
also crashes with Exception if left hand side is of greater arity than the right hand side
edu.kit.asa.alloy2key.key.ModelException: Something went wrong creating a call. Parameters cannot be null. at edu.kit.asa.alloy2key.key.Term.call(Term.java:230) at edu.kit.asa.alloy2key.key.KeYFile.assertLemmasJoin(KeYFile.java:427) at edu.kit.asa.alloy2key.key.KeYFile.declareJoin(KeYFile.java:419) at edu.kit.asa.alloy2key.Translator$ThisJoin.alter(Translator.java:1608) at edu.kit.asa.alloy2key.Translator.translateDecl(Translator.java:721) at edu.kit.asa.alloy2key.Translator.translateDecl(Translator.java:755) at edu.kit.asa.alloy2key.Translator.translateSigDecls(Translator.java:546) at edu.kit.asa.alloy2key.Translator.translate(Translator.java:119) at edu.kit.asa.alloy2key.Main.translate(Main.java:123) at edu.kit.asa.alloy2key.Main.doIt(Main.java:96) at edu.kit.asa.alloy2key.Main.main(Main.java:33)