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