Charlie is furry. Charlie is nice. Charlie is red. Charlie is round. Erin is white. Fiona is blue. Fiona is rough. If something is nice then it is white. Red things are rough. Nice things are furry. If Charlie is rough then Charlie is white. If something is round then it is nice. White, nice things are blue.
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Charlie is round.
("Charlie" "is" "round" "+")
Erin is white.
("Erin" "is" "white" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
If something is nice then it is white.
((("something" "is" "nice" "+")) -> ("something" "is" "white" "+"))
Red things are rough.
((("something" "is" "red" "+")) -> ("something" "is" "rough" "+"))
Nice things are furry.
((("something" "is" "nice" "+")) -> ("something" "is" "furry" "+"))
If Charlie is rough then Charlie is white.
((("Charlie" "is" "rough" "+")) -> ("Charlie" "is" "white" "+"))
If something is round then it is nice.
((("something" "is" "round" "+")) -> ("something" "is" "nice" "+"))
White, nice things are blue.
((("something" "is" "white" "+") ("something" "is" "nice" "+")) -> ("something" "is" "blue" "+"))
Fiona is blue.
True
1
proof
[(triple6)]
("Fiona" "is" "blue" "+")
triple6
Fiona is not rough.
False
1
inv-proof
[(triple7)]
("Fiona" "is" "rough" "-")
triple7
Charlie is rough.
True
2
proof
[(((triple3) -> rule2))]
("Charlie" "is" "rough" "+")
((triple3) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is not white.
False
2
inv-proof
[(((triple2) -> rule1) OR ((((triple3) -> rule2)) -> rule4) OR ((((triple4) -> rule5)) -> rule1))]
("Charlie" "is" "white" "-")
((triple2) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
((((triple3) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
((((triple4) -> (rule5 % int2))) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is blue.
True
4
proof
[(((((triple2) -> rule1) triple2) -> rule6) OR ((((triple2) -> rule1) ((triple4) -> rule5)) -> rule6) OR ((((((triple3) -> rule2)) -> rule4) triple2) -> rule6) OR ((((((triple4) -> rule5)) -> rule1) triple2) -> rule6) OR ((((((triple3) -> rule2)) -> rule4) ((triple4) -> rule5)) -> rule6) OR ((((((triple4) -> rule5)) -> rule1) ((triple4) -> rule5)) -> rule6))]
("Charlie" "is" "blue" "+")
((((triple2) -> (rule1 % int2)) triple2) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
((((triple2) -> (rule1 % int3)) ((triple4) -> (rule5 % int2))) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
int3
((((((triple3) -> (rule2 % int3))) -> (rule4 % int2)) triple2) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((((triple4) -> (rule5 % int3))) -> (rule1 % int2)) triple2) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
((((((triple3) -> (rule2 % int4))) -> (rule4 % int3)) ((triple4) -> (rule5 % int2))) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
((((((triple4) -> (rule5 % int3))) -> (rule1 % int2)) ((triple4) -> (rule5 % int3))) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
Charlie is not blue.
False
4
inv-proof
[(((((triple2) -> rule1) triple2) -> rule6) OR ((((triple2) -> rule1) ((triple4) -> rule5)) -> rule6) OR ((((((triple3) -> rule2)) -> rule4) triple2) -> rule6) OR ((((((triple4) -> rule5)) -> rule1) triple2) -> rule6) OR ((((((triple3) -> rule2)) -> rule4) ((triple4) -> rule5)) -> rule6) OR ((((((triple4) -> rule5)) -> rule1) ((triple4) -> rule5)) -> rule6))]
("Charlie" "is" "blue" "-")
((((triple2) -> (rule1 % int2)) triple2) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
((((triple2) -> (rule1 % int3)) ((triple4) -> (rule5 % int2))) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
int3
((((((triple3) -> (rule2 % int3))) -> (rule4 % int2)) triple2) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((((triple4) -> (rule5 % int3))) -> (rule1 % int2)) triple2) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
((((((triple3) -> (rule2 % int4))) -> (rule4 % int3)) ((triple4) -> (rule5 % int2))) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
((((((triple4) -> (rule5 % int3))) -> (rule1 % int2)) ((triple4) -> (rule5 % int3))) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
Erin is not furry.
Unknown
inv-rconc
[@2: Erin is furry.[CWA. Example of deepest failure = (rule3 <- rule5 <- FAIL)]]
("Erin" "is" "furry" "-")
Erin is nice.
Unknown
rconc
[@1: Erin is nice.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Erin" "is" "nice" "+")
Fiona is not furry.
Unknown
inv-rconc
[@2: Fiona is furry.[CWA. Example of deepest failure = (rule3 <- rule5 <- FAIL)]]
("Fiona" "is" "furry" "-")
Fiona is red.
Unknown
random
[@0: Fiona is red.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "red" "+")
Fiona is not round.
Unknown
inv-random
[@0: Fiona is round.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "round" "-")
Erin is round.
Unknown
random
[@0: Erin is round.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "round" "+")
@0: Charlie is furry.[(triple1 OR ((triple2) -> rule3) OR ((((triple4) -> rule5)) -> rule3))] Charlie is nice.[(triple2 OR ((triple4) -> rule5))] Charlie is red.[(triple3)] Charlie is round.[(triple4)] Erin is white.[(triple5)] Fiona is blue.[(triple6)] Fiona is rough.[(triple7)] @1: Charlie is rough.[(((triple3) -> rule2))] Charlie is white.[(((triple2) -> rule1) OR ((((triple3) -> rule2)) -> rule4) OR ((((triple4) -> rule5)) -> rule1))] @2: Charlie is blue.[(((((triple2) -> rule1) triple2) -> rule6) OR ((((triple2) -> rule1) ((triple4) -> rule5)) -> rule6) OR ((((((triple3) -> rule2)) -> rule4) triple2) -> rule6) OR ((((((triple4) -> rule5)) -> rule1) triple2) -> rule6) OR ((((((triple3) -> rule2)) -> rule4) ((triple4) -> rule5)) -> rule6) OR ((((((triple4) -> rule5)) -> rule1) ((triple4) -> rule5)) -> rule6))]
Charlie is furry.
("Charlie" "is" "furry" "+")
triple1
((triple2) -> (rule3 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((((triple4) -> (rule5 % int2))) -> (rule3 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
triple2
((triple4) -> (rule5 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
triple3
Charlie is round.
("Charlie" "is" "round" "+")
triple4
Erin is white.
("Erin" "is" "white" "+")
triple5
Fiona is blue.
("Fiona" "is" "blue" "+")
triple6
Fiona is rough.
("Fiona" "is" "rough" "+")
triple7
Charlie is rough.
("Charlie" "is" "rough" "+")
((triple3) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
((triple2) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
((((triple3) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
((((triple4) -> (rule5 % int2))) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
((((triple2) -> (rule1 % int2)) triple2) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
((((triple2) -> (rule1 % int3)) ((triple4) -> (rule5 % int2))) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
int3
((((((triple3) -> (rule2 % int3))) -> (rule4 % int2)) triple2) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((((triple4) -> (rule5 % int3))) -> (rule1 % int2)) triple2) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
((((((triple3) -> (rule2 % int4))) -> (rule4 % int3)) ((triple4) -> (rule5 % int2))) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
((((((triple4) -> (rule5 % int3))) -> (rule1 % int2)) ((triple4) -> (rule5 % int3))) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3