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