theory Enigme predicate a predicate b predicate c predicate da = b /\ (not c) predicate db = a -> c predicate dc = (not c) /\ ( a \/ b ) goal Q1: not (da /\ db /\ dc) (* on demande ensuite un contre exemple *) goal Q2c: da /\ db -> dc (* vrai *) goal Q2b: dc /\ da -> db (* faux *) goal Q2a: db /\ dc -> da (* vrai *) goal Q3a: (not a) /\ (not b) /\ (not c) -> da (* faux, a ment *) goal Q3b: (not a) /\ (not b) /\ (not c) -> db (* b dit la vérité *) goal Q3c: (not a) /\ (not b) /\ (not c) -> dc (* faux, c ment *) goal Q4a: da /\ db /\ dc -> a (* faux, a innocent *) goal Q4b: da /\ db /\ dc -> b (* b coupable *) goal Q4c: da /\ db /\ dc -> c (* faux, c innocent *) goal Q5: not ( (a -> (not da)) /\ (b -> (not db)) /\ (c -> (not dc)) ) (* on demande ensuite un contre exemple *) end