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