Anne is big. Anne is green. Anne is kind. Anne is nice. Anne is young. Charlie is furry. Charlie is kind. Charlie is young. Erin is furry. Erin is nice. Gary is nice. Gary is young. If something is kind and nice then it is round. Big, young things are nice. If Charlie is nice and Charlie is kind then Charlie is young. If something is furry then it is big. If something is round then it is nice. If Gary is green then Gary is round. If something is nice and round then it is green. If Erin is nice then Erin is big.
Anne is big.
("Anne" "is" "big" "+")
Anne is green.
("Anne" "is" "green" "+")
Anne is kind.
("Anne" "is" "kind" "+")
Anne is nice.
("Anne" "is" "nice" "+")
Anne is young.
("Anne" "is" "young" "+")
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is kind.
("Charlie" "is" "kind" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Erin is furry.
("Erin" "is" "furry" "+")
Erin is nice.
("Erin" "is" "nice" "+")
Gary is nice.
("Gary" "is" "nice" "+")
Gary is young.
("Gary" "is" "young" "+")
If something is kind and nice then it is round.
((("something" "is" "kind" "+") ("something" "is" "nice" "+")) -> ("something" "is" "round" "+"))
Big, young things are nice.
((("something" "is" "big" "+") ("something" "is" "young" "+")) -> ("something" "is" "nice" "+"))
If Charlie is nice and Charlie is kind then Charlie is young.
((("Charlie" "is" "nice" "+") ("Charlie" "is" "kind" "+")) -> ("Charlie" "is" "young" "+"))
If something is furry then it is big.
((("something" "is" "furry" "+")) -> ("something" "is" "big" "+"))
If something is round then it is nice.
((("something" "is" "round" "+")) -> ("something" "is" "nice" "+"))
If Gary is green then Gary is round.
((("Gary" "is" "green" "+")) -> ("Gary" "is" "round" "+"))
If something is nice and round then it is green.
((("something" "is" "nice" "+") ("something" "is" "round" "+")) -> ("something" "is" "green" "+"))
If Erin is nice then Erin is big.
((("Erin" "is" "nice" "+")) -> ("Erin" "is" "big" "+"))
Erin is nice.
True
1
proof
[(triple10)]
("Erin" "is" "nice" "+")
triple10
Anne is not kind.
False
1
inv-proof
[(triple3)]
("Anne" "is" "kind" "-")
triple3
Charlie is big.
True
2
proof
[(((triple6) -> rule4))]
("Charlie" "is" "big" "+")
((triple6) -> (rule4 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Erin is not big.
False
2
inv-proof
[(((triple10) -> rule8) OR ((triple9) -> rule4))]
("Erin" "is" "big" "-")
((triple10) -> (rule8 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
((triple9) -> (rule4 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Charlie is nice.
True
4
proof
[(((((triple6) -> rule4) triple8) -> rule2))]
("Charlie" "is" "nice" "+")
((((triple6) -> (rule4 % int2)) triple8) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is not nice.
False
4
inv-proof
[(((((triple6) -> rule4) triple8) -> rule2))]
("Charlie" "is" "nice" "-")
((((triple6) -> (rule4 % int2)) triple8) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Gary is not round.
Unknown
inv-rconc
[@3: Gary is round.[CWA. Example of deepest failure = (rule6 <- rule7 <- rule1 <- FAIL)]]
("Gary" "is" "round" "-")
Gary is big.
Unknown
rconc
[@1: Gary is big.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Gary" "is" "big" "+")
Erin is not round.
Unknown
inv-rconc
[@1: Erin is round.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Erin" "is" "round" "-")
Erin is kind.
Unknown
random
[@0: Erin is kind.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "kind" "+")
Gary is not kind.
Unknown
inv-random
[@0: Gary is kind.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "kind" "-")
Erin is young.
Unknown
random
[@0: Erin is young.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "young" "+")
@0: Anne is big.[(triple1)] Anne is green.[(triple2 OR ((triple4 ((triple3 triple4) -> rule1)) -> rule7) OR ((((triple1 triple5) -> rule2) ((triple3 triple4) -> rule1)) -> rule7) OR ((triple4 ((triple3 ((triple1 triple5) -> rule2)) -> rule1)) -> rule7) OR ((((triple1 triple5) -> rule2) ((triple3 ((triple1 triple5) -> rule2)) -> rule1)) -> rule7))] Anne is kind.[(triple3)] Anne is nice.[(triple4 OR ((triple1 triple5) -> rule2))] Anne is young.[(triple5)] Charlie is furry.[(triple6)] Charlie is kind.[(triple7)] Charlie is young.[(triple8)] Erin is furry.[(triple9)] Erin is nice.[(triple10)] Gary is nice.[(triple11)] Gary is young.[(triple12)] @1: Anne is round.[(((triple3 triple4) -> rule1) OR ((triple3 ((triple1 triple5) -> rule2)) -> rule1))] Charlie is big.[(((triple6) -> rule4))] Erin is big.[(((triple10) -> rule8) OR ((triple9) -> rule4))] @2: Charlie is nice.[(((((triple6) -> rule4) triple8) -> rule2))] @3: Charlie is round.[(((triple7 ((((triple6) -> rule4) triple8) -> rule2)) -> rule1))] @4: Charlie is green.[(((((((triple6) -> rule4) triple8) -> rule2) ((triple7 ((((triple6) -> rule4) triple8) -> rule2)) -> rule1)) -> rule7))]
Anne is big.
("Anne" "is" "big" "+")
triple1
Anne is green.
("Anne" "is" "green" "+")
triple2
((triple4 ((triple3 triple4) -> (rule1 % int2))) -> (rule7 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
((((triple1 triple5) -> (rule2 % int3)) ((triple3 triple4) -> (rule1 % int2))) -> (rule7 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
Anne is nice.
("Anne" "is" "nice" "+")
int3
((triple4 ((triple3 ((triple1 triple5) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
Anne is nice.
("Anne" "is" "nice" "+")
int3
((((triple1 triple5) -> (rule2 % int3)) ((triple3 ((triple1 triple5) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
Anne is nice.
("Anne" "is" "nice" "+")
int3
Anne is kind.
("Anne" "is" "kind" "+")
triple3
Anne is nice.
("Anne" "is" "nice" "+")
triple4
((triple1 triple5) -> (rule2 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Anne is young.
("Anne" "is" "young" "+")
triple5
Charlie is furry.
("Charlie" "is" "furry" "+")
triple6
Charlie is kind.
("Charlie" "is" "kind" "+")
triple7
Charlie is young.
("Charlie" "is" "young" "+")
triple8
Erin is furry.
("Erin" "is" "furry" "+")
triple9
Erin is nice.
("Erin" "is" "nice" "+")
triple10
Gary is nice.
("Gary" "is" "nice" "+")
triple11
Gary is young.
("Gary" "is" "young" "+")
triple12
Anne is round.
("Anne" "is" "round" "+")
((triple3 triple4) -> (rule1 % int1))
Anne is round.
("Anne" "is" "round" "+")
int1
((triple3 ((triple1 triple5) -> (rule2 % int2))) -> (rule1 % int1))
Anne is round.
("Anne" "is" "round" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
((triple6) -> (rule4 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Erin is big.
("Erin" "is" "big" "+")
((triple10) -> (rule8 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
((triple9) -> (rule4 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
((((triple6) -> (rule4 % int2)) triple8) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
((triple7 ((((triple6) -> (rule4 % int3)) triple8) -> (rule2 % int2))) -> (rule1 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is green.
("Charlie" "is" "green" "+")
((((((triple6) -> (rule4 % int4)) triple8) -> (rule2 % int3)) ((triple7 ((((triple6) -> (rule4 % int4)) triple8) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
Charlie is big.
("Charlie" "is" "big" "+")
int4