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