Dave is big. Dave is blue. Dave is nice. Dave is quiet. Dave is rough. Fiona is big. Fiona is blue. Fiona is nice. Fiona is quiet. Fiona is red. Fiona is rough. Fiona is round. If someone is quiet then they are red. All rough people are round. All rough people are round. If someone is rough and nice then they are round. All quiet people are big. If someone is rough then they are nice. If someone is big then they are rough. If someone is round then they are rough.
Dave is big.
("Dave" "is" "big" "+")
Dave is blue.
("Dave" "is" "blue" "+")
Dave is nice.
("Dave" "is" "nice" "+")
Dave is quiet.
("Dave" "is" "quiet" "+")
Dave is rough.
("Dave" "is" "rough" "+")
Fiona is big.
("Fiona" "is" "big" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Fiona is quiet.
("Fiona" "is" "quiet" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Fiona is round.
("Fiona" "is" "round" "+")
If someone is quiet then they are red.
((("someone" "is" "quiet" "+")) -> ("someone" "is" "red" "+"))
All rough people are round.
((("someone" "is" "rough" "+")) -> ("someone" "is" "round" "+"))
All rough people are round.
((("someone" "is" "rough" "+")) -> ("someone" "is" "round" "+"))
If someone is rough and nice then they are round.
((("someone" "is" "rough" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "round" "+"))
All quiet people are big.
((("someone" "is" "quiet" "+")) -> ("someone" "is" "big" "+"))
If someone is rough then they are nice.
((("someone" "is" "rough" "+")) -> ("someone" "is" "nice" "+"))
If someone is big then they are rough.
((("someone" "is" "big" "+")) -> ("someone" "is" "rough" "+"))
If someone is round then they are rough.
((("someone" "is" "round" "+")) -> ("someone" "is" "rough" "+"))
Fiona is rough.
True
1
proof
[(triple11 OR ((triple12) -> rule8) OR ((triple6) -> rule7) OR ((((triple9) -> rule5)) -> rule7))]
("Fiona" "is" "rough" "+")
triple11
((triple12) -> (rule8 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
((triple6) -> (rule7 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
((((triple9) -> (rule5 % int2))) -> (rule7 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
int2
Dave is not rough.
False
1
inv-proof
[(triple5 OR ((triple1) -> rule7) OR ((((triple4) -> rule5)) -> rule7))]
("Dave" "is" "rough" "-")
triple5
((triple1) -> (rule7 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
((((triple4) -> (rule5 % int2))) -> (rule7 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
@0: Dave is big.[(triple1 OR ((triple4) -> rule5))] Dave is blue.[(triple2)] Dave is nice.[(triple3 OR ((triple5) -> rule6) OR ((((triple1) -> rule7)) -> rule6) OR ((((((triple4) -> rule5)) -> rule7)) -> rule6))] Dave is quiet.[(triple4)] Dave is rough.[(triple5 OR ((triple1) -> rule7) OR ((((triple4) -> rule5)) -> rule7))] Fiona is big.[(triple6 OR ((triple9) -> rule5))] Fiona is blue.[(triple7)] Fiona is nice.[(triple8 OR ((triple11) -> rule6) OR ((((triple12) -> rule8)) -> rule6) OR ((((triple6) -> rule7)) -> rule6) OR ((((((triple9) -> rule5)) -> rule7)) -> rule6))] Fiona is quiet.[(triple9)] Fiona is red.[(triple10 OR ((triple9) -> rule1))] Fiona is rough.[(triple11 OR ((triple12) -> rule8) OR ((triple6) -> rule7) OR ((((triple9) -> rule5)) -> rule7))] Fiona is round.[(triple12 OR ((triple11) -> rule2) OR ((triple11) -> rule3) OR ((triple11 triple8) -> rule4) OR ((((triple6) -> rule7)) -> rule2) OR ((((triple6) -> rule7)) -> rule3) OR ((triple11 ((triple11) -> rule6)) -> rule4) OR ((((triple6) -> rule7) triple8) -> rule4) OR ((((triple6) -> rule7) ((triple11) -> rule6)) -> rule4) OR ((((((triple9) -> rule5)) -> rule7)) -> rule2) OR ((((((triple9) -> rule5)) -> rule7)) -> rule3) OR ((triple11 ((((triple6) -> rule7)) -> rule6)) -> rule4) OR ((((((triple9) -> rule5)) -> rule7) triple8) -> rule4) OR ((((triple6) -> rule7) ((((triple6) -> rule7)) -> rule6)) -> rule4) OR ((((((triple9) -> rule5)) -> rule7) ((triple11) -> rule6)) -> rule4) OR ((((((triple9) -> rule5)) -> rule7) ((((triple6) -> rule7)) -> rule6)) -> rule4) OR ((triple11 ((((((triple9) -> rule5)) -> rule7)) -> rule6)) -> rule4) OR ((((triple6) -> rule7) ((((((triple9) -> rule5)) -> rule7)) -> rule6)) -> rule4) OR ((((((triple9) -> rule5)) -> rule7) ((((((triple9) -> rule5)) -> rule7)) -> rule6)) -> rule4))] @1: Dave is red.[(((triple4) -> rule1))] Dave is round.[(((triple5) -> rule2) OR ((triple5) -> rule3) OR ((triple5 triple3) -> rule4) OR ((((triple1) -> rule7)) -> rule2) OR ((((triple1) -> rule7)) -> rule3) OR ((triple5 ((triple5) -> rule6)) -> rule4) OR ((((triple1) -> rule7) triple3) -> rule4) OR ((((triple1) -> rule7) ((triple5) -> rule6)) -> rule4) OR ((((((triple4) -> rule5)) -> rule7)) -> rule2) OR ((((((triple4) -> rule5)) -> rule7)) -> rule3) OR ((triple5 ((((triple1) -> rule7)) -> rule6)) -> rule4) OR ((((((triple4) -> rule5)) -> rule7) triple3) -> rule4) OR ((((triple1) -> rule7) ((((triple1) -> rule7)) -> rule6)) -> rule4) OR ((((((triple4) -> rule5)) -> rule7) ((triple5) -> rule6)) -> rule4) OR ((((((triple4) -> rule5)) -> rule7) ((((triple1) -> rule7)) -> rule6)) -> rule4) OR ((triple5 ((((((triple4) -> rule5)) -> rule7)) -> rule6)) -> rule4) OR ((((triple1) -> rule7) ((((((triple4) -> rule5)) -> rule7)) -> rule6)) -> rule4) OR ((((((triple4) -> rule5)) -> rule7) ((((((triple4) -> rule5)) -> rule7)) -> rule6)) -> rule4))]
Dave is big.
("Dave" "is" "big" "+")
triple1
((triple4) -> (rule5 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
triple2
Dave is nice.
("Dave" "is" "nice" "+")
triple3
((triple5) -> (rule6 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((((triple1) -> (rule7 % int2))) -> (rule6 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
((((((triple4) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
int3
Dave is quiet.
("Dave" "is" "quiet" "+")
triple4
Dave is rough.
("Dave" "is" "rough" "+")
triple5
((triple1) -> (rule7 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
((((triple4) -> (rule5 % int2))) -> (rule7 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
triple6
((triple9) -> (rule5 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
triple7
Fiona is nice.
("Fiona" "is" "nice" "+")
triple8
((triple11) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
((((triple12) -> (rule8 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
((((triple6) -> (rule7 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
((((((triple9) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
int3
Fiona is quiet.
("Fiona" "is" "quiet" "+")
triple9
Fiona is red.
("Fiona" "is" "red" "+")
triple10
((triple9) -> (rule1 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
triple11
((triple12) -> (rule8 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
((triple6) -> (rule7 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
((((triple9) -> (rule5 % int2))) -> (rule7 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
triple12
((triple11) -> (rule2 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((triple11) -> (rule3 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((triple11 triple8) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((((triple6) -> (rule7 % int2))) -> (rule2 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
((((triple6) -> (rule7 % int2))) -> (rule3 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
((triple11 ((triple11) -> (rule6 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
((((triple6) -> (rule7 % int2)) triple8) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
((((triple6) -> (rule7 % int3)) ((triple11) -> (rule6 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((triple9) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule2 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
int3
((((((triple9) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule3 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
int3
((triple11 ((((triple6) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((triple9) -> (rule5 % int3))) -> (rule7 % int2)) triple8) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
int3
((((triple6) -> (rule7 % int3)) ((((triple6) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((((triple9) -> (rule5 % int4))) -> (rule7 % int3)) ((triple11) -> (rule6 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is big.
("Fiona" "is" "big" "+")
int4
((((((triple9) -> (rule5 % int4))) -> (rule7 % int3)) ((((triple6) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is big.
("Fiona" "is" "big" "+")
int4
((triple11 ((((((triple9) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is big.
("Fiona" "is" "big" "+")
int4
((((triple6) -> (rule7 % int4)) ((((((triple9) -> (rule5 % int3))) -> (rule7 % int4))) -> (rule6 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
int3
Fiona is rough.
("Fiona" "is" "rough" "+")
int4
((((((triple9) -> (rule5 % int4))) -> (rule7 % int3)) ((((((triple9) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is big.
("Fiona" "is" "big" "+")
int4
Dave is red.
("Dave" "is" "red" "+")
((triple4) -> (rule1 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
((triple5) -> (rule2 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
((triple5) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
((triple5 triple3) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
((((triple1) -> (rule7 % int2))) -> (rule2 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
((((triple1) -> (rule7 % int2))) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
((triple5 ((triple5) -> (rule6 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((triple1) -> (rule7 % int2)) triple3) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
((((triple1) -> (rule7 % int3)) ((triple5) -> (rule6 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is rough.
("Dave" "is" "rough" "+")
int3
((((((triple4) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule2 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
int3
((((((triple4) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
int3
((triple5 ((((triple1) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is rough.
("Dave" "is" "rough" "+")
int3
((((((triple4) -> (rule5 % int3))) -> (rule7 % int2)) triple3) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
int3
((((triple1) -> (rule7 % int3)) ((((triple1) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is rough.
("Dave" "is" "rough" "+")
int3
((((((triple4) -> (rule5 % int4))) -> (rule7 % int3)) ((triple5) -> (rule6 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is rough.
("Dave" "is" "rough" "+")
int3
Dave is big.
("Dave" "is" "big" "+")
int4
((((((triple4) -> (rule5 % int4))) -> (rule7 % int3)) ((((triple1) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is rough.
("Dave" "is" "rough" "+")
int3
Dave is big.
("Dave" "is" "big" "+")
int4
((triple5 ((((((triple4) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is rough.
("Dave" "is" "rough" "+")
int3
Dave is big.
("Dave" "is" "big" "+")
int4
((((triple1) -> (rule7 % int4)) ((((((triple4) -> (rule5 % int3))) -> (rule7 % int4))) -> (rule6 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
int3
Dave is rough.
("Dave" "is" "rough" "+")
int4
((((((triple4) -> (rule5 % int4))) -> (rule7 % int3)) ((((((triple4) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is rough.
("Dave" "is" "rough" "+")
int3
Dave is big.
("Dave" "is" "big" "+")
int4