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