Anne is furry. Anne is green. Anne is quiet. Anne is red. Anne is rough. Anne is smart. Charlie is furry. Charlie is green. Charlie is red. Charlie is rough. Charlie is smart. Charlie is white. If something is furry and white then it is green. Smart things are red. Quiet, red things are white. If something is furry then it is rough. All rough things are green. If Charlie is white then Charlie is smart.
Anne is furry.
("Anne" "is" "furry" "+")
Anne is green.
("Anne" "is" "green" "+")
Anne is quiet.
("Anne" "is" "quiet" "+")
Anne is red.
("Anne" "is" "red" "+")
Anne is rough.
("Anne" "is" "rough" "+")
Anne is smart.
("Anne" "is" "smart" "+")
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is green.
("Charlie" "is" "green" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Charlie is white.
("Charlie" "is" "white" "+")
If something is furry and white then it is green.
((("something" "is" "furry" "+") ("something" "is" "white" "+")) -> ("something" "is" "green" "+"))
Smart things are red.
((("something" "is" "smart" "+")) -> ("something" "is" "red" "+"))
Quiet, red things are white.
((("something" "is" "quiet" "+") ("something" "is" "red" "+")) -> ("something" "is" "white" "+"))
If something is furry then it is rough.
((("something" "is" "furry" "+")) -> ("something" "is" "rough" "+"))
All rough things are green.
((("something" "is" "rough" "+")) -> ("something" "is" "green" "+"))
If Charlie is white then Charlie is smart.
((("Charlie" "is" "white" "+")) -> ("Charlie" "is" "smart" "+"))
Charlie is smart.
True
1
proof
[(triple11 OR ((triple12) -> rule6))]
("Charlie" "is" "smart" "+")
triple11
((triple12) -> (rule6 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is not furry.
False
1
inv-proof
[(triple7)]
("Charlie" "is" "furry" "-")
triple7
Anne is white.
True
3
proof
[(((triple3 triple4) -> rule3) OR ((triple3 ((triple6) -> rule2)) -> rule3))]
("Anne" "is" "white" "+")
((triple3 triple4) -> (rule3 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
((triple3 ((triple6) -> (rule2 % int2))) -> (rule3 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2
Anne is not white.
False
3
inv-proof
[(((triple3 triple4) -> rule3) OR ((triple3 ((triple6) -> rule2)) -> rule3))]
("Anne" "is" "white" "-")
((triple3 triple4) -> (rule3 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
((triple3 ((triple6) -> (rule2 % int2))) -> (rule3 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2
@0: Anne is furry.[(triple1)] Anne is green.[(triple2 OR ((triple5) -> rule5) OR ((((triple1) -> rule4)) -> rule5) OR ((triple1 ((triple3 triple4) -> rule3)) -> rule1) OR ((triple1 ((triple3 ((triple6) -> rule2)) -> rule3)) -> rule1))] Anne is quiet.[(triple3)] Anne is red.[(triple4 OR ((triple6) -> rule2))] Anne is rough.[(triple5 OR ((triple1) -> rule4))] Anne is smart.[(triple6)] Charlie is furry.[(triple7)] Charlie is green.[(triple8 OR ((triple10) -> rule5) OR ((triple7 triple12) -> rule1) OR ((((triple7) -> rule4)) -> rule5))] Charlie is red.[(triple9 OR ((triple11) -> rule2) OR ((((triple12) -> rule6)) -> rule2))] Charlie is rough.[(triple10 OR ((triple7) -> rule4))] Charlie is smart.[(triple11 OR ((triple12) -> rule6))] Charlie is white.[(triple12)] @1: Anne is white.[(((triple3 triple4) -> rule3) OR ((triple3 ((triple6) -> rule2)) -> rule3))]
Anne is furry.
("Anne" "is" "furry" "+")
triple1
Anne is green.
("Anne" "is" "green" "+")
triple2
((triple5) -> (rule5 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
((((triple1) -> (rule4 % int2))) -> (rule5 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
((triple1 ((triple3 triple4) -> (rule3 % int2))) -> (rule1 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is white.
("Anne" "is" "white" "+")
int2
((triple1 ((triple3 ((triple6) -> (rule2 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is white.
("Anne" "is" "white" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
int3
Anne is quiet.
("Anne" "is" "quiet" "+")
triple3
Anne is red.
("Anne" "is" "red" "+")
triple4
((triple6) -> (rule2 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
triple5
((triple1) -> (rule4 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is smart.
("Anne" "is" "smart" "+")
triple6
Charlie is furry.
("Charlie" "is" "furry" "+")
triple7
Charlie is green.
("Charlie" "is" "green" "+")
triple8
((triple10) -> (rule5 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
((triple7 triple12) -> (rule1 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
((((triple7) -> (rule4 % int2))) -> (rule5 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
triple9
((triple11) -> (rule2 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
((((triple12) -> (rule6 % int2))) -> (rule2 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
triple10
((triple7) -> (rule4 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
triple11
((triple12) -> (rule6 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
triple12
Anne is white.
("Anne" "is" "white" "+")
((triple3 triple4) -> (rule3 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
((triple3 ((triple6) -> (rule2 % int2))) -> (rule3 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2