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