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