Bob is cold. Bob is quiet. Bob is red. Bob is not smart. Charlie is blue. Charlie is cold. Charlie is nice. Charlie is quiet. Charlie is red. Charlie is round. Charlie is smart. Gary is blue. Gary is nice. Gary is quiet. Gary is red. Gary is smart. Quiet things are round. If something is cold then it is round. If something is smart then it is cold. Smart, red things are blue. If something is blue and not quiet then it is not red. If something is round and smart then it is red. If Bob is quiet then Bob is blue. If something is round then it is nice.
Bob is cold.
("Bob" "is" "cold" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Bob is red.
("Bob" "is" "red" "+")
Bob is not smart.
("Bob" "is" "smart" "-")
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is quiet.
("Charlie" "is" "quiet" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Charlie is round.
("Charlie" "is" "round" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Gary is blue.
("Gary" "is" "blue" "+")
Gary is nice.
("Gary" "is" "nice" "+")
Gary is quiet.
("Gary" "is" "quiet" "+")
Gary is red.
("Gary" "is" "red" "+")
Gary is smart.
("Gary" "is" "smart" "+")
Quiet things are round.
((("something" "is" "quiet" "+")) -> ("something" "is" "round" "+"))
If something is cold then it is round.
((("something" "is" "cold" "+")) -> ("something" "is" "round" "+"))
If something is smart then it is cold.
((("something" "is" "smart" "+")) -> ("something" "is" "cold" "+"))
Smart, red things are blue.
((("something" "is" "smart" "+") ("something" "is" "red" "+")) -> ("something" "is" "blue" "+"))
If something is blue and not quiet then it is not red.
((("something" "is" "blue" "+") ("something" "is" "quiet" "~")) -> ("something" "is" "red" "-"))
If something is round and smart then it is red.
((("something" "is" "round" "+") ("something" "is" "smart" "+")) -> ("something" "is" "red" "+"))
If Bob is quiet then Bob is blue.
((("Bob" "is" "quiet" "+")) -> ("Bob" "is" "blue" "+"))
If something is round then it is nice.
((("something" "is" "round" "+")) -> ("something" "is" "nice" "+"))
Gary is red.
True
1
proof
[(triple15 OR ((((triple14) -> rule1) triple16) -> rule6) OR ((((((triple16) -> rule3)) -> rule2) triple16) -> rule6))]
("Gary" "is" "red" "+")
triple15
((((triple14) -> (rule1 % int2)) triple16) -> (rule6 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
((((((triple16) -> (rule3 % int3))) -> (rule2 % int2)) triple16) -> (rule6 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is cold.
("Gary" "is" "cold" "+")
int3
Bob is not red.
False
1
inv-proof
[(triple3)]
("Bob" "is" "red" "-")
triple3
Gary is round.
True
2
proof
[(((triple14) -> rule1) OR ((((triple16) -> rule3)) -> rule2))]
("Gary" "is" "round" "+")
((triple14) -> (rule1 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
((((triple16) -> (rule3 % int2))) -> (rule2 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
Gary is not cold.
False
2
inv-proof
[(((triple16) -> rule3))]
("Gary" "is" "cold" "-")
((triple16) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Bob is nice.
True
3
proof
[(((((triple1) -> rule2)) -> rule8) OR ((((triple2) -> rule1)) -> rule8))]
("Bob" "is" "nice" "+")
((((triple1) -> (rule2 % int2))) -> (rule8 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
((((triple2) -> (rule1 % int2))) -> (rule8 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is not nice.
False
3
inv-proof
[(((((triple1) -> rule2)) -> rule8) OR ((((triple2) -> rule1)) -> rule8))]
("Bob" "is" "nice" "-")
((((triple1) -> (rule2 % int2))) -> (rule8 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
((((triple2) -> (rule1 % int2))) -> (rule8 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
@0: Bob is cold.[(triple1)] Bob is not smart.[(triple4)] Bob is quiet.[(triple2)] Bob is red.[(triple3)] Charlie is blue.[(triple5 OR ((triple11 triple9) -> rule4) OR ((triple11 ((triple10 triple11) -> rule6)) -> rule4) OR ((triple11 ((((triple6) -> rule2) triple11) -> rule6)) -> rule4) OR ((triple11 ((((triple8) -> rule1) triple11) -> rule6)) -> rule4) OR ((triple11 ((((((triple11) -> rule3)) -> rule2) triple11) -> rule6)) -> rule4))] Charlie is cold.[(triple6 OR ((triple11) -> rule3))] Charlie is nice.[(triple7 OR ((triple10) -> rule8) OR ((((triple6) -> rule2)) -> rule8) OR ((((triple8) -> rule1)) -> rule8) OR ((((((triple11) -> rule3)) -> rule2)) -> rule8))] Charlie is quiet.[(triple8)] Charlie is red.[(triple9 OR ((triple10 triple11) -> rule6) OR ((((triple6) -> rule2) triple11) -> rule6) OR ((((triple8) -> rule1) triple11) -> rule6) OR ((((((triple11) -> rule3)) -> rule2) triple11) -> rule6))] Charlie is round.[(triple10 OR ((triple6) -> rule2) OR ((triple8) -> rule1) OR ((((triple11) -> rule3)) -> rule2))] Charlie is smart.[(triple11)] Gary is blue.[(triple12 OR ((triple16 triple15) -> rule4) OR ((triple16 ((((triple14) -> rule1) triple16) -> rule6)) -> rule4) OR ((triple16 ((((((triple16) -> rule3)) -> rule2) triple16) -> rule6)) -> rule4))] Gary is nice.[(triple13 OR ((((triple14) -> rule1)) -> rule8) OR ((((((triple16) -> rule3)) -> rule2)) -> rule8))] Gary is quiet.[(triple14)] Gary is red.[(triple15 OR ((((triple14) -> rule1) triple16) -> rule6) OR ((((((triple16) -> rule3)) -> rule2) triple16) -> rule6))] Gary is smart.[(triple16)] @1: Bob is blue.[(((triple2) -> rule7))] Bob is round.[(((triple1) -> rule2) OR ((triple2) -> rule1))] Gary is cold.[(((triple16) -> rule3))] Gary is round.[(((triple14) -> rule1) OR ((((triple16) -> rule3)) -> rule2))] @2: Bob is nice.[(((((triple1) -> rule2)) -> rule8) OR ((((triple2) -> rule1)) -> rule8))]
Bob is cold.
("Bob" "is" "cold" "+")
triple1
Bob is not smart.
("Bob" "is" "smart" "-")
triple4
Bob is quiet.
("Bob" "is" "quiet" "+")
triple2
Bob is red.
("Bob" "is" "red" "+")
triple3
Charlie is blue.
("Charlie" "is" "blue" "+")
triple5
((triple11 triple9) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
((triple11 ((triple10 triple11) -> (rule6 % int2))) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
((triple11 ((((triple6) -> (rule2 % int3)) triple11) -> (rule6 % int2))) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
((triple11 ((((triple8) -> (rule1 % int3)) triple11) -> (rule6 % int2))) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
((triple11 ((((((triple11) -> (rule3 % int4))) -> (rule2 % int3)) triple11) -> (rule6 % int2))) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
int4
Charlie is cold.
("Charlie" "is" "cold" "+")
triple6
((triple11) -> (rule3 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
triple7
((triple10) -> (rule8 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((((triple6) -> (rule2 % int2))) -> (rule8 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((triple8) -> (rule1 % int2))) -> (rule8 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((((triple11) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule8 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is cold.
("Charlie" "is" "cold" "+")
int3
Charlie is quiet.
("Charlie" "is" "quiet" "+")
triple8
Charlie is red.
("Charlie" "is" "red" "+")
triple9
((triple10 triple11) -> (rule6 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
((((triple6) -> (rule2 % int2)) triple11) -> (rule6 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((triple8) -> (rule1 % int2)) triple11) -> (rule6 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((((triple11) -> (rule3 % int3))) -> (rule2 % int2)) triple11) -> (rule6 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is cold.
("Charlie" "is" "cold" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
triple10
((triple6) -> (rule2 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
((triple8) -> (rule1 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
((((triple11) -> (rule3 % int2))) -> (rule2 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
Charlie is smart.
("Charlie" "is" "smart" "+")
triple11
Gary is blue.
("Gary" "is" "blue" "+")
triple12
((triple16 triple15) -> (rule4 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
((triple16 ((((triple14) -> (rule1 % int3)) triple16) -> (rule6 % int2))) -> (rule4 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
((triple16 ((((((triple16) -> (rule3 % int4))) -> (rule2 % int3)) triple16) -> (rule6 % int2))) -> (rule4 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
Gary is cold.
("Gary" "is" "cold" "+")
int4
Gary is nice.
("Gary" "is" "nice" "+")
triple13
((((triple14) -> (rule1 % int2))) -> (rule8 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
((((((triple16) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule8 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is cold.
("Gary" "is" "cold" "+")
int3
Gary is quiet.
("Gary" "is" "quiet" "+")
triple14
Gary is red.
("Gary" "is" "red" "+")
triple15
((((triple14) -> (rule1 % int2)) triple16) -> (rule6 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
((((((triple16) -> (rule3 % int3))) -> (rule2 % int2)) triple16) -> (rule6 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is cold.
("Gary" "is" "cold" "+")
int3
Gary is smart.
("Gary" "is" "smart" "+")
triple16
Bob is blue.
("Bob" "is" "blue" "+")
((triple2) -> (rule7 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
((triple1) -> (rule2 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
((triple2) -> (rule1 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
((triple16) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
((triple14) -> (rule1 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
((((triple16) -> (rule3 % int2))) -> (rule2 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
((((triple1) -> (rule2 % int2))) -> (rule8 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
((((triple2) -> (rule1 % int2))) -> (rule8 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2