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