Charlie is green. Charlie is white. Dave is blue. Dave is green. Dave is round. Fiona is blue. Harry is round. All furry people are blue. Green, round people are kind. Green people are red. All red people are furry. If Dave is blue and Dave is kind then Dave is red. If Harry is red then Harry is furry. Kind people are round. If someone is blue and green then they are round. If Dave is round then Dave is kind.
Charlie is green.
("Charlie" "is" "green" "+")
Charlie is white.
("Charlie" "is" "white" "+")
Dave is blue.
("Dave" "is" "blue" "+")
Dave is green.
("Dave" "is" "green" "+")
Dave is round.
("Dave" "is" "round" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Harry is round.
("Harry" "is" "round" "+")
All furry people are blue.
((("someone" "is" "furry" "+")) -> ("someone" "is" "blue" "+"))
Green, round people are kind.
((("someone" "is" "green" "+") ("someone" "is" "round" "+")) -> ("someone" "is" "kind" "+"))
Green people are red.
((("someone" "is" "green" "+")) -> ("someone" "is" "red" "+"))
All red people are furry.
((("someone" "is" "red" "+")) -> ("someone" "is" "furry" "+"))
If Dave is blue and Dave is kind then Dave is red.
((("Dave" "is" "blue" "+") ("Dave" "is" "kind" "+")) -> ("Dave" "is" "red" "+"))
If Harry is red then Harry is furry.
((("Harry" "is" "red" "+")) -> ("Harry" "is" "furry" "+"))
Kind people are round.
((("someone" "is" "kind" "+")) -> ("someone" "is" "round" "+"))
If someone is blue and green then they are round.
((("someone" "is" "blue" "+") ("someone" "is" "green" "+")) -> ("someone" "is" "round" "+"))
If Dave is round then Dave is kind.
((("Dave" "is" "round" "+")) -> ("Dave" "is" "kind" "+"))
Harry is round.
True
1
proof
[(triple7)]
("Harry" "is" "round" "+")
triple7
Dave is not blue.
False
1
inv-proof
[(triple3 OR ((((((triple4) -> rule3)) -> rule4)) -> rule1))]
("Dave" "is" "blue" "-")
triple3
((((((triple4) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule1 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is red.
("Dave" "is" "red" "+")
int3
Dave is kind.
True
2
proof
[(((triple5) -> rule9) OR ((triple4 triple5) -> rule2) OR ((((triple3 triple4) -> rule8)) -> rule9) OR ((triple4 ((triple3 triple4) -> rule8)) -> rule2) OR ((((((((((triple4) -> rule3)) -> rule4)) -> rule1) triple4) -> rule8)) -> rule9) OR ((triple4 ((((((((triple4) -> rule3)) -> rule4)) -> rule1) triple4) -> rule8)) -> rule2))]
("Dave" "is" "kind" "+")
((triple5) -> (rule9 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
((triple4 triple5) -> (rule2 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
((((triple3 triple4) -> (rule8 % int2))) -> (rule9 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
((triple4 ((triple3 triple4) -> (rule8 % int2))) -> (rule2 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
((((((((((triple4) -> (rule3 % int5))) -> (rule4 % int4))) -> (rule1 % int3)) triple4) -> (rule8 % int2))) -> (rule9 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Dave is furry.
("Dave" "is" "furry" "+")
int4
Dave is red.
("Dave" "is" "red" "+")
int5
((triple4 ((((((((triple4) -> (rule3 % int5))) -> (rule4 % int4))) -> (rule1 % int3)) triple4) -> (rule8 % int2))) -> (rule2 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Dave is furry.
("Dave" "is" "furry" "+")
int4
Dave is red.
("Dave" "is" "red" "+")
int5
Dave is not kind.
False
2
inv-proof
[(((triple5) -> rule9) OR ((triple4 triple5) -> rule2) OR ((((triple3 triple4) -> rule8)) -> rule9) OR ((triple4 ((triple3 triple4) -> rule8)) -> rule2) OR ((((((((((triple4) -> rule3)) -> rule4)) -> rule1) triple4) -> rule8)) -> rule9) OR ((triple4 ((((((((triple4) -> rule3)) -> rule4)) -> rule1) triple4) -> rule8)) -> rule2))]
("Dave" "is" "kind" "-")
((triple5) -> (rule9 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
((triple4 triple5) -> (rule2 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
((((triple3 triple4) -> (rule8 % int2))) -> (rule9 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
((triple4 ((triple3 triple4) -> (rule8 % int2))) -> (rule2 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
((((((((((triple4) -> (rule3 % int5))) -> (rule4 % int4))) -> (rule1 % int3)) triple4) -> (rule8 % int2))) -> (rule9 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Dave is furry.
("Dave" "is" "furry" "+")
int4
Dave is red.
("Dave" "is" "red" "+")
int5
((triple4 ((((((((triple4) -> (rule3 % int5))) -> (rule4 % int4))) -> (rule1 % int3)) triple4) -> (rule8 % int2))) -> (rule2 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Dave is furry.
("Dave" "is" "furry" "+")
int4
Dave is red.
("Dave" "is" "red" "+")
int5
Charlie is furry.
True
3
proof
[(((((triple1) -> rule3)) -> rule4))]
("Charlie" "is" "furry" "+")
((((triple1) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is not furry.
False
3
inv-proof
[(((((triple1) -> rule3)) -> rule4))]
("Charlie" "is" "furry" "-")
((((triple1) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is blue.
True
4
proof
[(((((((triple1) -> rule3)) -> rule4)) -> rule1))]
("Charlie" "is" "blue" "+")
((((((triple1) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule1 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
Charlie is not blue.
False
4
inv-proof
[(((((((triple1) -> rule3)) -> rule4)) -> rule1))]
("Charlie" "is" "blue" "-")
((((((triple1) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule1 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
Charlie is round.
True
6
proof
[(((((((((triple1) -> rule3)) -> rule4)) -> rule1) triple1) -> rule8))]
("Charlie" "is" "round" "+")
((((((((triple1) -> (rule3 % int4))) -> (rule4 % int3))) -> (rule1 % int2)) triple1) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
int4
Charlie is not round.
False
6
inv-proof
[(((((((((triple1) -> rule3)) -> rule4)) -> rule1) triple1) -> rule8))]
("Charlie" "is" "round" "-")
((((((((triple1) -> (rule3 % int4))) -> (rule4 % int3))) -> (rule1 % int2)) triple1) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
int4
Charlie is kind.
True
8
proof
[(((triple1 ((((((((triple1) -> rule3)) -> rule4)) -> rule1) triple1) -> rule8)) -> rule2))]
("Charlie" "is" "kind" "+")
((triple1 ((((((((triple1) -> (rule3 % int5))) -> (rule4 % int4))) -> (rule1 % int3)) triple1) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is red.
("Charlie" "is" "red" "+")
int5
Charlie is not kind.
False
8
inv-proof
[(((triple1 ((((((((triple1) -> rule3)) -> rule4)) -> rule1) triple1) -> rule8)) -> rule2))]
("Charlie" "is" "kind" "-")
((triple1 ((((((((triple1) -> (rule3 % int5))) -> (rule4 % int4))) -> (rule1 % int3)) triple1) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is red.
("Charlie" "is" "red" "+")
int5
Fiona is not furry.
Unknown
inv-rconc
[@2: Fiona is furry.[CWA. Example of deepest failure = (rule4 <- rule3 <- FAIL)]]
("Fiona" "is" "furry" "-")
Harry is furry.
Unknown
rconc
[@2: Harry is furry.[CWA. Example of deepest failure = (rule4 <- rule3 <- FAIL)]]
("Harry" "is" "furry" "+")
Fiona is not kind.
Unknown
inv-rconc
[@1: Fiona is kind.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Fiona" "is" "kind" "-")
Harry is red.
Unknown
rconc
[@1: Harry is red.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Harry" "is" "red" "+")
Harry is not blue.
Unknown
inv-rconc
[@3: Harry is blue.[CWA. Example of deepest failure = (rule1 <- rule4 <- rule3 <- FAIL)]]
("Harry" "is" "blue" "-")
Fiona is red.
Unknown
rconc
[@1: Fiona is red.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Fiona" "is" "red" "+")
Fiona is not white.
Unknown
inv-random
[@0: Fiona is white.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "white" "-")
Fiona is green.
Unknown
random
[@0: Fiona is green.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "green" "+")
Dave is not white.
Unknown
inv-random
[@0: Dave is white.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "white" "-")
Harry is white.
Unknown
random
[@0: Harry is white.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "white" "+")
@0: Charlie is green.[(triple1)] Charlie is white.[(triple2)] Dave is blue.[(triple3 OR ((((((triple4) -> rule3)) -> rule4)) -> rule1))] Dave is green.[(triple4)] Dave is round.[(triple5 OR ((triple3 triple4) -> rule8) OR ((((((((triple4) -> rule3)) -> rule4)) -> rule1) triple4) -> rule8))] Fiona is blue.[(triple6)] Harry is round.[(triple7)] @1: Charlie is red.[(((triple1) -> rule3))] Dave is kind.[(((triple5) -> rule9) OR ((triple4 triple5) -> rule2) OR ((((triple3 triple4) -> rule8)) -> rule9) OR ((triple4 ((triple3 triple4) -> rule8)) -> rule2) OR ((((((((((triple4) -> rule3)) -> rule4)) -> rule1) triple4) -> rule8)) -> rule9) OR ((triple4 ((((((((triple4) -> rule3)) -> rule4)) -> rule1) triple4) -> rule8)) -> rule2))] Dave is red.[(((triple4) -> rule3) OR ((triple3 ((triple5) -> rule9)) -> rule5) OR ((triple3 ((triple4 triple5) -> rule2)) -> rule5) OR ((triple3 ((((triple3 triple4) -> rule8)) -> rule9)) -> rule5) OR ((triple3 ((triple4 ((triple3 triple4) -> rule8)) -> rule2)) -> rule5))] @2: Charlie is furry.[(((((triple1) -> rule3)) -> rule4))] Dave is furry.[(((((triple4) -> rule3)) -> rule4) OR ((((triple3 ((triple5) -> rule9)) -> rule5)) -> rule4) OR ((((triple3 ((triple4 triple5) -> rule2)) -> rule5)) -> rule4) OR ((((triple3 ((((triple3 triple4) -> rule8)) -> rule9)) -> rule5)) -> rule4) OR ((((triple3 ((triple4 ((triple3 triple4) -> rule8)) -> rule2)) -> rule5)) -> rule4))] @3: Charlie is blue.[(((((((triple1) -> rule3)) -> rule4)) -> rule1))] @4: Charlie is round.[(((((((((triple1) -> rule3)) -> rule4)) -> rule1) triple1) -> rule8))] @5: Charlie is kind.[(((triple1 ((((((((triple1) -> rule3)) -> rule4)) -> rule1) triple1) -> rule8)) -> rule2))]
Charlie is green.
("Charlie" "is" "green" "+")
triple1
Charlie is white.
("Charlie" "is" "white" "+")
triple2
Dave is blue.
("Dave" "is" "blue" "+")
triple3
((((((triple4) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule1 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is red.
("Dave" "is" "red" "+")
int3
Dave is green.
("Dave" "is" "green" "+")
triple4
Dave is round.
("Dave" "is" "round" "+")
triple5
((triple3 triple4) -> (rule8 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
((((((((triple4) -> (rule3 % int4))) -> (rule4 % int3))) -> (rule1 % int2)) triple4) -> (rule8 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
int3
Dave is red.
("Dave" "is" "red" "+")
int4
Fiona is blue.
("Fiona" "is" "blue" "+")
triple6
Harry is round.
("Harry" "is" "round" "+")
triple7
Charlie is red.
("Charlie" "is" "red" "+")
((triple1) -> (rule3 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
((triple5) -> (rule9 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
((triple4 triple5) -> (rule2 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
((((triple3 triple4) -> (rule8 % int2))) -> (rule9 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
((triple4 ((triple3 triple4) -> (rule8 % int2))) -> (rule2 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
((((((((((triple4) -> (rule3 % int5))) -> (rule4 % int4))) -> (rule1 % int3)) triple4) -> (rule8 % int2))) -> (rule9 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Dave is furry.
("Dave" "is" "furry" "+")
int4
Dave is red.
("Dave" "is" "red" "+")
int5
((triple4 ((((((((triple4) -> (rule3 % int5))) -> (rule4 % int4))) -> (rule1 % int3)) triple4) -> (rule8 % int2))) -> (rule2 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Dave is furry.
("Dave" "is" "furry" "+")
int4
Dave is red.
("Dave" "is" "red" "+")
int5
Dave is red.
("Dave" "is" "red" "+")
((triple4) -> (rule3 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
((triple3 ((triple5) -> (rule9 % int2))) -> (rule5 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
((triple3 ((triple4 triple5) -> (rule2 % int2))) -> (rule5 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
((triple3 ((((triple3 triple4) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule5 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
int3
((triple3 ((triple4 ((triple3 triple4) -> (rule8 % int3))) -> (rule2 % int2))) -> (rule5 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
((((triple1) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
((((triple4) -> (rule3 % int2))) -> (rule4 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
((((triple3 ((triple5) -> (rule9 % int3))) -> (rule5 % int2))) -> (rule4 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
((((triple3 ((triple4 triple5) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule4 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
((((triple3 ((((triple3 triple4) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule5 % int2))) -> (rule4 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
Dave is round.
("Dave" "is" "round" "+")
int4
((((triple3 ((triple4 ((triple3 triple4) -> (rule8 % int4))) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule4 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
Dave is round.
("Dave" "is" "round" "+")
int4
Charlie is blue.
("Charlie" "is" "blue" "+")
((((((triple1) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule1 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
((((((((triple1) -> (rule3 % int4))) -> (rule4 % int3))) -> (rule1 % int2)) triple1) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
int4
Charlie is kind.
("Charlie" "is" "kind" "+")
((triple1 ((((((((triple1) -> (rule3 % int5))) -> (rule4 % int4))) -> (rule1 % int3)) triple1) -> (rule8 % int2))) -> (rule2 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is red.
("Charlie" "is" "red" "+")
int5