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