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