Anne is furry. Harry is blue. Round things are kind. If something is blue then it is round. All kind things are not red. If something is round and not red then it is not furry. If something is round then it is nice. If something is furry and not young then it is not nice.
Anne is furry.
("Anne" "is" "furry" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Round things are kind.
((("something" "is" "round" "+")) -> ("something" "is" "kind" "+"))
If something is blue then it is round.
((("something" "is" "blue" "+")) -> ("something" "is" "round" "+"))
All kind things are not red.
((("something" "is" "kind" "+")) -> ("something" "is" "red" "-"))
If something is round and not red then it is not furry.
((("something" "is" "round" "+") ("something" "is" "red" "~")) -> ("something" "is" "furry" "-"))
If something is round then it is nice.
((("something" "is" "round" "+")) -> ("something" "is" "nice" "+"))
If something is furry and not young then it is not nice.
((("something" "is" "furry" "+") ("something" "is" "young" "~")) -> ("something" "is" "nice" "-"))
Harry is blue.
True
1
proof
[(triple2)]
("Harry" "is" "blue" "+")
triple2
Anne is not furry.
False
1
inv-proof
[(triple1)]
("Anne" "is" "furry" "-")
triple1
Harry is round.
True
2
proof
[(((triple2) -> rule2))]
("Harry" "is" "round" "+")
((triple2) -> (rule2 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is not round.
False
2
inv-proof
[(((triple2) -> rule2))]
("Harry" "is" "round" "-")
((triple2) -> (rule2 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is nice.
True
3
proof
[(((((triple2) -> rule2)) -> rule5))]
("Harry" "is" "nice" "+")
((((triple2) -> (rule2 % int2))) -> (rule5 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is not kind.
False
3
inv-proof
[(((((triple2) -> rule2)) -> rule1))]
("Harry" "is" "kind" "-")
((((triple2) -> (rule2 % int2))) -> (rule1 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is not red.
True
4
proof
[(((((((triple2) -> rule2)) -> rule1)) -> rule3))]
("Harry" "is" "red" "-")
((((((triple2) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is not red.
("Harry" "is" "red" "-")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Harry is red.
False
4
inv-proof
[(((((((triple2) -> rule2)) -> rule1)) -> rule3))]
("Harry" "is" "red" "+")
((((((triple2) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is not red.
("Harry" "is" "red" "-")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Anne is not nice.
Unknown
inv-rconc
[@2: Anne is nice.[CWA. Example of deepest failure = (rule5 <- rule2 <- FAIL)]]
("Anne" "is" "nice" "-")
Anne is round.
Unknown
rconc
[@1: Anne is round.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Anne" "is" "round" "+")
Anne is not kind.
Unknown
inv-rconc
[@2: Anne is kind.[CWA. Example of deepest failure = (rule1 <- rule2 <- FAIL)]]
("Anne" "is" "kind" "-")
Anne is blue.
Unknown
random
[@0: Anne is blue.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "blue" "+")
Anne is not young.
Unknown
inv-random
[@0: Anne is young.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "young" "-")
Anne is red.
Unknown
random
[@0: Anne is red.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "red" "+")
@0: Anne is furry.[(triple1)] Harry is blue.[(triple2)] @1: Harry is round.[(((triple2) -> rule2))] @2: Harry is kind.[(((((triple2) -> rule2)) -> rule1))] Harry is nice.[(((((triple2) -> rule2)) -> rule5))] @3: Harry is not red.[(((((((triple2) -> rule2)) -> rule1)) -> rule3))] @4: Harry is not furry.[(((((triple2) -> rule2) ((((((triple2) -> rule2)) -> rule1)) -> rule3)) -> rule4))]
Anne is furry.
("Anne" "is" "furry" "+")
triple1
Harry is blue.
("Harry" "is" "blue" "+")
triple2
Harry is round.
("Harry" "is" "round" "+")
((triple2) -> (rule2 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
((((triple2) -> (rule2 % int2))) -> (rule1 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
((((triple2) -> (rule2 % int2))) -> (rule5 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is not red.
("Harry" "is" "red" "-")
((((((triple2) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is not red.
("Harry" "is" "red" "-")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Harry is not furry.
("Harry" "is" "furry" "-")
((((triple2) -> (rule2 % int4)) ((((((triple2) -> (rule2 % int4))) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Harry is not furry.
("Harry" "is" "furry" "-")
int1
Harry is not red.
("Harry" "is" "red" "-")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4