Anne is big. Anne is cold. Anne is furry. Anne is red. Anne is rough. Anne is young. Bob is big. Bob is blue. Bob is not cold. Bob is furry. Bob is red. Bob is not rough. If someone is young and cold then they are big. If Anne is rough and Anne is red then Anne is blue. If Bob is cold and Bob is furry then Bob is rough. If Bob is cold then Bob is furry. All cold, furry people are blue. All rough people are cold.
Anne is big.
("Anne" "is" "big" "+")
Anne is cold.
("Anne" "is" "cold" "+")
Anne is furry.
("Anne" "is" "furry" "+")
Anne is red.
("Anne" "is" "red" "+")
Anne is rough.
("Anne" "is" "rough" "+")
Anne is young.
("Anne" "is" "young" "+")
Bob is big.
("Bob" "is" "big" "+")
Bob is blue.
("Bob" "is" "blue" "+")
Bob is not cold.
("Bob" "is" "cold" "-")
Bob is furry.
("Bob" "is" "furry" "+")
Bob is red.
("Bob" "is" "red" "+")
Bob is not rough.
("Bob" "is" "rough" "-")
If someone is young and cold then they are big.
((("someone" "is" "young" "+") ("someone" "is" "cold" "+")) -> ("someone" "is" "big" "+"))
If Anne is rough and Anne is red then Anne is blue.
((("Anne" "is" "rough" "+") ("Anne" "is" "red" "+")) -> ("Anne" "is" "blue" "+"))
If Bob is cold and Bob is furry then Bob is rough.
((("Bob" "is" "cold" "+") ("Bob" "is" "furry" "+")) -> ("Bob" "is" "rough" "+"))
If Bob is cold then Bob is furry.
((("Bob" "is" "cold" "+")) -> ("Bob" "is" "furry" "+"))
All cold, furry people are blue.
((("someone" "is" "cold" "+") ("someone" "is" "furry" "+")) -> ("someone" "is" "blue" "+"))
All rough people are cold.
((("someone" "is" "rough" "+")) -> ("someone" "is" "cold" "+"))
Anne is cold.
True
1
proof
[(triple2 OR ((triple5) -> rule6))]
("Anne" "is" "cold" "+")
triple2
((triple5) -> (rule6 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
Anne is not young.
False
1
inv-proof
[(triple6)]
("Anne" "is" "young" "-")
triple6
@0: Anne is big.[(triple1 OR ((triple6 triple2) -> rule1) OR ((triple6 ((triple5) -> rule6)) -> rule1))] Anne is cold.[(triple2 OR ((triple5) -> rule6))] Anne is furry.[(triple3)] Anne is red.[(triple4)] Anne is rough.[(triple5)] Anne is young.[(triple6)] Bob is big.[(triple7)] Bob is blue.[(triple8)] Bob is furry.[(triple10)] Bob is not cold.[(triple9)] Bob is not rough.[(triple12)] Bob is red.[(triple11)] @1: Anne is blue.[(((triple2 triple3) -> rule5) OR ((triple5 triple4) -> rule2) OR ((((triple5) -> rule6) triple3) -> rule5))]
Anne is big.
("Anne" "is" "big" "+")
triple1
((triple6 triple2) -> (rule1 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
((triple6 ((triple5) -> (rule6 % int2))) -> (rule1 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is cold.
("Anne" "is" "cold" "+")
int2
Anne is cold.
("Anne" "is" "cold" "+")
triple2
((triple5) -> (rule6 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
triple3
Anne is red.
("Anne" "is" "red" "+")
triple4
Anne is rough.
("Anne" "is" "rough" "+")
triple5
Anne is young.
("Anne" "is" "young" "+")
triple6
Bob is big.
("Bob" "is" "big" "+")
triple7
Bob is blue.
("Bob" "is" "blue" "+")
triple8
Bob is furry.
("Bob" "is" "furry" "+")
triple10
Bob is not cold.
("Bob" "is" "cold" "-")
triple9
Bob is not rough.
("Bob" "is" "rough" "-")
triple12
Bob is red.
("Bob" "is" "red" "+")
triple11
Anne is blue.
("Anne" "is" "blue" "+")
((triple2 triple3) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((triple5 triple4) -> (rule2 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((((triple5) -> (rule6 % int2)) triple3) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is cold.
("Anne" "is" "cold" "+")
int2