Charlie is furry. Dave is furry. If something is red then it is green. Big things are red. If Charlie is furry then Charlie is big. All blue things are big. Green, red things are blue. If something is red and cold then it is green. If Charlie is cold and Charlie is blue then Charlie is furry. If something is cold then it is red.
Charlie is furry.
("Charlie" "is" "furry" "+")
Dave is furry.
("Dave" "is" "furry" "+")
If something is red then it is green.
((("something" "is" "red" "+")) -> ("something" "is" "green" "+"))
Big things are red.
((("something" "is" "big" "+")) -> ("something" "is" "red" "+"))
If Charlie is furry then Charlie is big.
((("Charlie" "is" "furry" "+")) -> ("Charlie" "is" "big" "+"))
All blue things are big.
((("something" "is" "blue" "+")) -> ("something" "is" "big" "+"))
Green, red things are blue.
((("something" "is" "green" "+") ("something" "is" "red" "+")) -> ("something" "is" "blue" "+"))
If something is red and cold then it is green.
((("something" "is" "red" "+") ("something" "is" "cold" "+")) -> ("something" "is" "green" "+"))
If Charlie is cold and Charlie is blue then Charlie is furry.
((("Charlie" "is" "cold" "+") ("Charlie" "is" "blue" "+")) -> ("Charlie" "is" "furry" "+"))
If something is cold then it is red.
((("something" "is" "cold" "+")) -> ("something" "is" "red" "+"))
Charlie is furry.
True
1
proof
[(triple1)]
("Charlie" "is" "furry" "+")
triple1
Dave is not furry.
False
1
inv-proof
[(triple2)]
("Dave" "is" "furry" "-")
triple2
Charlie is big.
True
2
proof
[(((triple1) -> rule3))]
("Charlie" "is" "big" "+")
((triple1) -> (rule3 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is not big.
False
2
inv-proof
[(((triple1) -> rule3))]
("Charlie" "is" "big" "-")
((triple1) -> (rule3 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is red.
True
3
proof
[(((((triple1) -> rule3)) -> rule2))]
("Charlie" "is" "red" "+")
((((triple1) -> (rule3 % int2))) -> (rule2 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is not red.
False
3
inv-proof
[(((((triple1) -> rule3)) -> rule2))]
("Charlie" "is" "red" "-")
((((triple1) -> (rule3 % int2))) -> (rule2 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is green.
True
4
proof
[(((((((triple1) -> rule3)) -> rule2)) -> rule1))]
("Charlie" "is" "green" "+")
((((((triple1) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is not green.
False
4
inv-proof
[(((((((triple1) -> rule3)) -> rule2)) -> rule1))]
("Charlie" "is" "green" "-")
((((((triple1) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Dave is not blue.
Unknown
inv-rconc
[@3: Dave is blue.[CWA. Example of deepest failure = (rule5 <- rule2 <- rule4 <- FAIL)]]
("Dave" "is" "blue" "-")
Dave is red.
Unknown
rconc
[@4: Dave is red.[CWA. Example of deepest failure = (rule2 <- rule4 <- rule5 <- rule8 <- FAIL)]]
("Dave" "is" "red" "+")
Dave is not green.
Unknown
inv-rconc
[@5: Dave is green.[CWA. Example of deepest failure = (rule1 <- rule2 <- rule4 <- rule5 <- rule6 <- FAIL)]]
("Dave" "is" "green" "-")
Dave is big.
Unknown
rconc
[@3: Dave is big.[CWA. Example of deepest failure = (rule4 <- rule5 <- rule2 <- FAIL)]]
("Dave" "is" "big" "+")
Charlie is not cold.
Unknown
inv-random
[@0: Charlie is cold.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "cold" "-")
Charlie is rough.
Unknown
random
[@0: Charlie is rough.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "rough" "+")
Dave is not cold.
Unknown
inv-random
[@0: Dave is cold.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "cold" "-")
Dave is rough.
Unknown
random
[@0: Dave is rough.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "rough" "+")
@0: Charlie is furry.[(triple1)] Dave is furry.[(triple2)] @1: Charlie is big.[(((triple1) -> rule3))] @2: Charlie is red.[(((((triple1) -> rule3)) -> rule2))] @3: Charlie is green.[(((((((triple1) -> rule3)) -> rule2)) -> rule1))] @4: Charlie is blue.[(((((((((triple1) -> rule3)) -> rule2)) -> rule1) ((((triple1) -> rule3)) -> rule2)) -> rule5))]
Charlie is furry.
("Charlie" "is" "furry" "+")
triple1
Dave is furry.
("Dave" "is" "furry" "+")
triple2
Charlie is big.
("Charlie" "is" "big" "+")
((triple1) -> (rule3 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
((((triple1) -> (rule3 % int2))) -> (rule2 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is green.
("Charlie" "is" "green" "+")
((((((triple1) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
((((((((triple1) -> (rule3 % int4))) -> (rule2 % int3))) -> (rule1 % int2)) ((((triple1) -> (rule3 % int4))) -> (rule2 % int3))) -> (rule5 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is green.
("Charlie" "is" "green" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
Charlie is big.
("Charlie" "is" "big" "+")
int4