Bob is furry. Charlie is rough. Red, young things are furry. If something is smart then it is red. Furry things are red. If Charlie is rough then Charlie is cold. Smart, rough things are cold. If something is smart and not red then it is cold.
Bob is furry.
("Bob" "is" "furry" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Red, young things are furry.
((("something" "is" "red" "+") ("something" "is" "young" "+")) -> ("something" "is" "furry" "+"))
If something is smart then it is red.
((("something" "is" "smart" "+")) -> ("something" "is" "red" "+"))
Furry things are red.
((("something" "is" "furry" "+")) -> ("something" "is" "red" "+"))
If Charlie is rough then Charlie is cold.
((("Charlie" "is" "rough" "+")) -> ("Charlie" "is" "cold" "+"))
Smart, rough things are cold.
((("something" "is" "smart" "+") ("something" "is" "rough" "+")) -> ("something" "is" "cold" "+"))
If something is smart and not red then it is cold.
((("something" "is" "smart" "+") ("something" "is" "red" "~")) -> ("something" "is" "cold" "+"))
Charlie is rough.
True
1
proof
[(triple2)]
("Charlie" "is" "rough" "+")
triple2
Charlie is not rough.
False
1
inv-proof
[(triple2)]
("Charlie" "is" "rough" "-")
triple2
Charlie is cold.
True
2
proof
[(((triple2) -> rule4))]
("Charlie" "is" "cold" "+")
((triple2) -> (rule4 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Bob is not red.
False
2
inv-proof
[(((triple1) -> rule3))]
("Bob" "is" "red" "-")
((triple1) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Charlie is not red.
Unknown
inv-rconc
[@2: Charlie is red.[CWA. Example of deepest failure = (rule3 <- rule1 <- FAIL)]]
("Charlie" "is" "red" "-")
Bob is cold.
Unknown
rconc
[@1: Bob is cold.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Bob" "is" "cold" "+")
Bob is not young.
Unknown
inv-random
[@0: Bob is young.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "young" "-")
Charlie is big.
Unknown
random
[@0: Charlie is big.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "big" "+")
@0: Bob is furry.[(triple1)] Charlie is rough.[(triple2)] @1: Bob is red.[(((triple1) -> rule3))] Charlie is cold.[(((triple2) -> rule4))]
Bob is furry.
("Bob" "is" "furry" "+")
triple1
Charlie is rough.
("Charlie" "is" "rough" "+")
triple2
Bob is red.
("Bob" "is" "red" "+")
((triple1) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
((triple2) -> (rule4 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1