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