Anne is blue. Anne is green. Anne is nice. Anne is round. Charlie is young. Fiona is nice. Gary is rough. All blue things are nice. All young, rough things are blue. If something is young then it is rough. If Fiona is rough and Fiona is nice then Fiona is young. If something is round and nice then it is not kind. Blue, rough things are not green. If something is kind and young then it is not green. Nice things are round. If something is blue and not nice then it is not round.
Anne is blue.
("Anne" "is" "blue" "+")
Anne is green.
("Anne" "is" "green" "+")
Anne is nice.
("Anne" "is" "nice" "+")
Anne is round.
("Anne" "is" "round" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Gary is rough.
("Gary" "is" "rough" "+")
All blue things are nice.
((("something" "is" "blue" "+")) -> ("something" "is" "nice" "+"))
All young, rough things are blue.
((("something" "is" "young" "+") ("something" "is" "rough" "+")) -> ("something" "is" "blue" "+"))
If something is young then it is rough.
((("something" "is" "young" "+")) -> ("something" "is" "rough" "+"))
If Fiona is rough and Fiona is nice then Fiona is young.
((("Fiona" "is" "rough" "+") ("Fiona" "is" "nice" "+")) -> ("Fiona" "is" "young" "+"))
If something is round and nice then it is not kind.
((("something" "is" "round" "+") ("something" "is" "nice" "+")) -> ("something" "is" "kind" "-"))
Blue, rough things are not green.
((("something" "is" "blue" "+") ("something" "is" "rough" "+")) -> ("something" "is" "green" "-"))
If something is kind and young then it is not green.
((("something" "is" "kind" "+") ("something" "is" "young" "+")) -> ("something" "is" "green" "-"))
Nice things are round.
((("something" "is" "nice" "+")) -> ("something" "is" "round" "+"))
If something is blue and not nice then it is not round.
((("something" "is" "blue" "+") ("something" "is" "nice" "~")) -> ("something" "is" "round" "-"))
Fiona is nice.
True
1
proof
[(triple6)]
("Fiona" "is" "nice" "+")
triple6
Anne is not nice.
False
1
inv-proof
[(triple3 OR ((triple1) -> rule1))]
("Anne" "is" "nice" "-")
triple3
((triple1) -> (rule1 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Charlie is rough.
True
2
proof
[(((triple5) -> rule3))]
("Charlie" "is" "rough" "+")
((triple5) -> (rule3 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is not rough.
False
2
inv-proof
[(((triple5) -> rule3))]
("Charlie" "is" "rough" "-")
((triple5) -> (rule3 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is blue.
True
4
proof
[(((triple5 ((triple5) -> rule3)) -> rule2))]
("Charlie" "is" "blue" "+")
((triple5 ((triple5) -> (rule3 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is not blue.
False
4
inv-proof
[(((triple5 ((triple5) -> rule3)) -> rule2))]
("Charlie" "is" "blue" "-")
((triple5 ((triple5) -> (rule3 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is not green.
True
7
proof
[(((((triple5 ((triple5) -> rule3)) -> rule2) ((triple5) -> rule3)) -> rule6))]
("Charlie" "is" "green" "-")
((((triple5 ((triple5) -> (rule3 % int3))) -> (rule2 % int2)) ((triple5) -> (rule3 % int3))) -> (rule6 % int1))
Charlie is not green.
("Charlie" "is" "green" "-")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is not nice.
False
5
inv-proof
[(((((triple5 ((triple5) -> rule3)) -> rule2)) -> rule1))]
("Charlie" "is" "nice" "-")
((((triple5 ((triple5) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is round.
True
6
proof
[(((((((triple5 ((triple5) -> rule3)) -> rule2)) -> rule1)) -> rule8))]
("Charlie" "is" "round" "+")
((((((triple5 ((triple5) -> (rule3 % int4))) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
Charlie is not round.
False
6
inv-proof
[(((((((triple5 ((triple5) -> rule3)) -> rule2)) -> rule1)) -> rule8))]
("Charlie" "is" "round" "-")
((((((triple5 ((triple5) -> (rule3 % int4))) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
Charlie is not kind.
True
12
proof
[(((((((((triple5 ((triple5) -> rule3)) -> rule2)) -> rule1)) -> rule8) ((((triple5 ((triple5) -> rule3)) -> rule2)) -> rule1)) -> rule5))]
("Charlie" "is" "kind" "-")
((((((((triple5 ((triple5) -> (rule3 % int5))) -> (rule2 % int4))) -> (rule1 % int3))) -> (rule8 % int2)) ((((triple5 ((triple5) -> (rule3 % int5))) -> (rule2 % int4))) -> (rule1 % int3))) -> (rule5 % int1))
Charlie is not kind.
("Charlie" "is" "kind" "-")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
Charlie is rough.
("Charlie" "is" "rough" "+")
int5
Charlie is kind.
False
12
inv-proof
[(((((((((triple5 ((triple5) -> rule3)) -> rule2)) -> rule1)) -> rule8) ((((triple5 ((triple5) -> rule3)) -> rule2)) -> rule1)) -> rule5))]
("Charlie" "is" "kind" "+")
((((((((triple5 ((triple5) -> (rule3 % int5))) -> (rule2 % int4))) -> (rule1 % int3))) -> (rule8 % int2)) ((((triple5 ((triple5) -> (rule3 % int5))) -> (rule2 % int4))) -> (rule1 % int3))) -> (rule5 % int1))
Charlie is not kind.
("Charlie" "is" "kind" "-")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
Charlie is rough.
("Charlie" "is" "rough" "+")
int5
Gary is not nice.
Unknown
inv-rconc
[@2: Gary is nice.[CWA. Example of deepest failure = (rule1 <- rule2 <- FAIL)]]
("Gary" "is" "nice" "-")
Anne is rough.
Unknown
rconc
[@1: Anne is rough.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Anne" "is" "rough" "+")
Fiona is not young.
Unknown
inv-rconc
[@2: Fiona is young.[CWA. Example of deepest failure = (rule4 <- rule3 <- FAIL)]]
("Fiona" "is" "young" "-")
Fiona is rough.
Unknown
rconc
[@2: Fiona is rough.[CWA. Example of deepest failure = (rule3 <- rule4 <- FAIL)]]
("Fiona" "is" "rough" "+")
Gary is not round.
Unknown
inv-rconc
[@3: Gary is round.[CWA. Example of deepest failure = (rule8 <- rule1 <- rule2 <- FAIL)]]
("Gary" "is" "round" "-")
Gary is blue.
Unknown
rconc
[@1: Gary is blue.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Gary" "is" "blue" "+")
Gary is not green.
Unknown
inv-random
[@0: Gary is green.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "green" "-")
Fiona is green.
Unknown
random
[@0: Fiona is green.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "green" "+")
Anne is not young.
Unknown
inv-random
[@0: Anne is young.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "young" "-")
Gary is kind.
Unknown
random
[@0: Gary is kind.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "kind" "+")
@0: Anne is blue.[(triple1)] Anne is green.[(triple2)] Anne is nice.[(triple3 OR ((triple1) -> rule1))] Anne is round.[(triple4 OR ((triple3) -> rule8) OR ((((triple1) -> rule1)) -> rule8))] Charlie is young.[(triple5)] Fiona is nice.[(triple6)] Gary is rough.[(triple7)] @1: Anne is not kind.[(((triple4 triple3) -> rule5) OR ((triple4 ((triple1) -> rule1)) -> rule5) OR ((((triple3) -> rule8) triple3) -> rule5) OR ((((triple3) -> rule8) ((triple1) -> rule1)) -> rule5) OR ((((((triple1) -> rule1)) -> rule8) triple3) -> rule5) OR ((((((triple1) -> rule1)) -> rule8) ((triple1) -> rule1)) -> rule5))] Charlie is rough.[(((triple5) -> rule3))] Fiona is round.[(((triple6) -> rule8))] @2: Charlie is blue.[(((triple5 ((triple5) -> rule3)) -> rule2))] Fiona is not kind.[(((((triple6) -> rule8) triple6) -> rule5))] @3: Charlie is nice.[(((((triple5 ((triple5) -> rule3)) -> rule2)) -> rule1))] Charlie is not green.[(((((triple5 ((triple5) -> rule3)) -> rule2) ((triple5) -> rule3)) -> rule6))] @4: Charlie is round.[(((((((triple5 ((triple5) -> rule3)) -> rule2)) -> rule1)) -> rule8))] @5: Charlie is not kind.[(((((((((triple5 ((triple5) -> rule3)) -> rule2)) -> rule1)) -> rule8) ((((triple5 ((triple5) -> rule3)) -> rule2)) -> rule1)) -> rule5))]
Anne is blue.
("Anne" "is" "blue" "+")
triple1
Anne is green.
("Anne" "is" "green" "+")
triple2
Anne is nice.
("Anne" "is" "nice" "+")
triple3
((triple1) -> (rule1 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
triple4
((triple3) -> (rule8 % int1))
Anne is round.
("Anne" "is" "round" "+")
int1
((((triple1) -> (rule1 % int2))) -> (rule8 % int1))
Anne is round.
("Anne" "is" "round" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Charlie is young.
("Charlie" "is" "young" "+")
triple5
Fiona is nice.
("Fiona" "is" "nice" "+")
triple6
Gary is rough.
("Gary" "is" "rough" "+")
triple7
Anne is not kind.
("Anne" "is" "kind" "-")
((triple4 triple3) -> (rule5 % int1))
Anne is not kind.
("Anne" "is" "kind" "-")
int1
((triple4 ((triple1) -> (rule1 % int2))) -> (rule5 % int1))
Anne is not kind.
("Anne" "is" "kind" "-")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
((((triple3) -> (rule8 % int2)) triple3) -> (rule5 % int1))
Anne is not kind.
("Anne" "is" "kind" "-")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
((((triple3) -> (rule8 % int3)) ((triple1) -> (rule1 % int2))) -> (rule5 % int1))
Anne is not kind.
("Anne" "is" "kind" "-")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is round.
("Anne" "is" "round" "+")
int3
((((((triple1) -> (rule1 % int3))) -> (rule8 % int2)) triple3) -> (rule5 % int1))
Anne is not kind.
("Anne" "is" "kind" "-")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
Anne is nice.
("Anne" "is" "nice" "+")
int3
((((((triple1) -> (rule1 % int3))) -> (rule8 % int2)) ((triple1) -> (rule1 % int3))) -> (rule5 % int1))
Anne is not kind.
("Anne" "is" "kind" "-")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
Anne is nice.
("Anne" "is" "nice" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
((triple5) -> (rule3 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
((triple6) -> (rule8 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
((triple5 ((triple5) -> (rule3 % int2))) -> (rule2 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Fiona is not kind.
("Fiona" "is" "kind" "-")
((((triple6) -> (rule8 % int2)) triple6) -> (rule5 % int1))
Fiona is not kind.
("Fiona" "is" "kind" "-")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
((((triple5 ((triple5) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is not green.
("Charlie" "is" "green" "-")
((((triple5 ((triple5) -> (rule3 % int3))) -> (rule2 % int2)) ((triple5) -> (rule3 % int3))) -> (rule6 % int1))
Charlie is not green.
("Charlie" "is" "green" "-")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
((((((triple5 ((triple5) -> (rule3 % int4))) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
Charlie is not kind.
("Charlie" "is" "kind" "-")
((((((((triple5 ((triple5) -> (rule3 % int5))) -> (rule2 % int4))) -> (rule1 % int3))) -> (rule8 % int2)) ((((triple5 ((triple5) -> (rule3 % int5))) -> (rule2 % int4))) -> (rule1 % int3))) -> (rule5 % int1))
Charlie is not kind.
("Charlie" "is" "kind" "-")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
Charlie is rough.
("Charlie" "is" "rough" "+")
int5