Anne is furry. Anne is kind. Anne is nice. Anne is smart. Fiona is blue. Fiona is furry. Gary is smart. If Fiona is smart and Fiona is furry then Fiona is white. Kind people are nice. If someone is nice then they are blue. All nice, white people are young. White people are kind. If someone is nice then they are blue. If someone is young and nice then they are white. If someone is smart and furry then they are young.
Anne is furry.
("Anne" "is" "furry" "+")
Anne is kind.
("Anne" "is" "kind" "+")
Anne is nice.
("Anne" "is" "nice" "+")
Anne is smart.
("Anne" "is" "smart" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Gary is smart.
("Gary" "is" "smart" "+")
If Fiona is smart and Fiona is furry then Fiona is white.
((("Fiona" "is" "smart" "+") ("Fiona" "is" "furry" "+")) -> ("Fiona" "is" "white" "+"))
Kind people are nice.
((("someone" "is" "kind" "+")) -> ("someone" "is" "nice" "+"))
If someone is nice then they are blue.
((("someone" "is" "nice" "+")) -> ("someone" "is" "blue" "+"))
All nice, white people are young.
((("someone" "is" "nice" "+") ("someone" "is" "white" "+")) -> ("someone" "is" "young" "+"))
White people are kind.
((("someone" "is" "white" "+")) -> ("someone" "is" "kind" "+"))
If someone is nice then they are blue.
((("someone" "is" "nice" "+")) -> ("someone" "is" "blue" "+"))
If someone is young and nice then they are white.
((("someone" "is" "young" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "white" "+"))
If someone is smart and furry then they are young.
((("someone" "is" "smart" "+") ("someone" "is" "furry" "+")) -> ("someone" "is" "young" "+"))
Anne is smart.
True
1
proof
[(triple4)]
("Anne" "is" "smart" "+")
triple4
Gary is not smart.
False
1
inv-proof
[(triple7)]
("Gary" "is" "smart" "-")
triple7
Anne is blue.
True
2
proof
[(((triple3) -> rule3) OR ((triple3) -> rule6) OR ((((triple2) -> rule2)) -> rule3) OR ((((triple2) -> rule2)) -> rule6))]
("Anne" "is" "blue" "+")
((triple3) -> (rule3 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((triple3) -> (rule6 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((((triple2) -> (rule2 % int2))) -> (rule3 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
((((triple2) -> (rule2 % int2))) -> (rule6 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is not blue.
False
2
inv-proof
[(((triple3) -> rule3) OR ((triple3) -> rule6) OR ((((triple2) -> rule2)) -> rule3) OR ((((triple2) -> rule2)) -> rule6))]
("Anne" "is" "blue" "-")
((triple3) -> (rule3 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((triple3) -> (rule6 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((((triple2) -> (rule2 % int2))) -> (rule3 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
((((triple2) -> (rule2 % int2))) -> (rule6 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is white.
True
5
proof
[(((((triple4 triple1) -> rule8) triple3) -> rule7) OR ((((triple4 triple1) -> rule8) ((triple2) -> rule2)) -> rule7))]
("Anne" "is" "white" "+")
((((triple4 triple1) -> (rule8 % int2)) triple3) -> (rule7 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is young.
("Anne" "is" "young" "+")
int2
((((triple4 triple1) -> (rule8 % int3)) ((triple2) -> (rule2 % int2))) -> (rule7 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is young.
("Anne" "is" "young" "+")
int3
Anne is not white.
False
5
inv-proof
[(((((triple4 triple1) -> rule8) triple3) -> rule7) OR ((((triple4 triple1) -> rule8) ((triple2) -> rule2)) -> rule7))]
("Anne" "is" "white" "-")
((((triple4 triple1) -> (rule8 % int2)) triple3) -> (rule7 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is young.
("Anne" "is" "young" "+")
int2
((((triple4 triple1) -> (rule8 % int3)) ((triple2) -> (rule2 % int2))) -> (rule7 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is young.
("Anne" "is" "young" "+")
int3
Gary is not nice.
Unknown
inv-rconc
[@3: Gary is nice.[CWA. Example of deepest failure = (rule2 <- rule5 <- rule7 <- FAIL)]]
("Gary" "is" "nice" "-")
Fiona is young.
Unknown
rconc
[@3: Fiona is young.[CWA. Example of deepest failure = (rule4 <- rule7 <- rule8 <- FAIL)]]
("Fiona" "is" "young" "+")
Gary is not kind.
Unknown
inv-rconc
[@3: Gary is kind.[CWA. Example of deepest failure = (rule5 <- rule7 <- rule4 <- FAIL)]]
("Gary" "is" "kind" "-")
Fiona is smart.
Unknown
random
[@0: Fiona is smart.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "smart" "+")
@0: Anne is furry.[(triple1)] Anne is kind.[(triple2 OR ((((((triple4 triple1) -> rule8) triple3) -> rule7)) -> rule5))] Anne is nice.[(triple3 OR ((triple2) -> rule2))] Anne is smart.[(triple4)] Fiona is blue.[(triple5)] Fiona is furry.[(triple6)] Gary is smart.[(triple7)] @1: Anne is blue.[(((triple3) -> rule3) OR ((triple3) -> rule6) OR ((((triple2) -> rule2)) -> rule3) OR ((((triple2) -> rule2)) -> rule6))] Anne is young.[(((triple4 triple1) -> rule8))] @2: Anne is white.[(((((triple4 triple1) -> rule8) triple3) -> rule7) OR ((((triple4 triple1) -> rule8) ((triple2) -> rule2)) -> rule7))]
Anne is furry.
("Anne" "is" "furry" "+")
triple1
Anne is kind.
("Anne" "is" "kind" "+")
triple2
((((((triple4 triple1) -> (rule8 % int3)) triple3) -> (rule7 % int2))) -> (rule5 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is white.
("Anne" "is" "white" "+")
int2
Anne is young.
("Anne" "is" "young" "+")
int3
Anne is nice.
("Anne" "is" "nice" "+")
triple3
((triple2) -> (rule2 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Anne is smart.
("Anne" "is" "smart" "+")
triple4
Fiona is blue.
("Fiona" "is" "blue" "+")
triple5
Fiona is furry.
("Fiona" "is" "furry" "+")
triple6
Gary is smart.
("Gary" "is" "smart" "+")
triple7
Anne is blue.
("Anne" "is" "blue" "+")
((triple3) -> (rule3 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((triple3) -> (rule6 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((((triple2) -> (rule2 % int2))) -> (rule3 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
((((triple2) -> (rule2 % int2))) -> (rule6 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is young.
("Anne" "is" "young" "+")
((triple4 triple1) -> (rule8 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is white.
("Anne" "is" "white" "+")
((((triple4 triple1) -> (rule8 % int2)) triple3) -> (rule7 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is young.
("Anne" "is" "young" "+")
int2
((((triple4 triple1) -> (rule8 % int3)) ((triple2) -> (rule2 % int2))) -> (rule7 % int1))
Anne is white.
("Anne" "is" "white" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is young.
("Anne" "is" "young" "+")
int3