Bob is furry. Bob is green. Bob is nice. Bob is quiet. Charlie is furry. Charlie is green. Charlie is nice. Charlie is quiet. Charlie is rough. Charlie is young. Rough, nice things are furry. All quiet, green things are furry. If something is nice then it is green. If something is green then it is rough. If Charlie is nice then Charlie is rough. If something is green then it is rough. All smart, rough things are quiet. If Bob is smart then Bob is young.
Bob is furry.
("Bob" "is" "furry" "+")
Bob is green.
("Bob" "is" "green" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is green.
("Charlie" "is" "green" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is quiet.
("Charlie" "is" "quiet" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Rough, nice things are furry.
((("something" "is" "rough" "+") ("something" "is" "nice" "+")) -> ("something" "is" "furry" "+"))
All quiet, green things are furry.
((("something" "is" "quiet" "+") ("something" "is" "green" "+")) -> ("something" "is" "furry" "+"))
If something is nice then it is green.
((("something" "is" "nice" "+")) -> ("something" "is" "green" "+"))
If something is green then it is rough.
((("something" "is" "green" "+")) -> ("something" "is" "rough" "+"))
If Charlie is nice then Charlie is rough.
((("Charlie" "is" "nice" "+")) -> ("Charlie" "is" "rough" "+"))
If something is green then it is rough.
((("something" "is" "green" "+")) -> ("something" "is" "rough" "+"))
All smart, rough things are quiet.
((("something" "is" "smart" "+") ("something" "is" "rough" "+")) -> ("something" "is" "quiet" "+"))
If Bob is smart then Bob is young.
((("Bob" "is" "smart" "+")) -> ("Bob" "is" "young" "+"))
Bob is quiet.
True
1
proof
[(triple4)]
("Bob" "is" "quiet" "+")
triple4
Bob is not furry.
False
1
inv-proof
[(triple1 OR ((triple4 triple2) -> rule2) OR ((triple4 ((triple3) -> rule3)) -> rule2) OR ((((triple2) -> rule4) triple3) -> rule1) OR ((((triple2) -> rule6) triple3) -> rule1) OR ((((((triple3) -> rule3)) -> rule4) triple3) -> rule1) OR ((((((triple3) -> rule3)) -> rule6) triple3) -> rule1))]
("Bob" "is" "furry" "-")
triple1
((triple4 triple2) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((triple4 ((triple3) -> (rule3 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
((((triple2) -> (rule4 % int2)) triple3) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
((((triple2) -> (rule6 % int2)) triple3) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
((((((triple3) -> (rule3 % int3))) -> (rule4 % int2)) triple3) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
int3
((((((triple3) -> (rule3 % int3))) -> (rule6 % int2)) triple3) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
int3
Bob is rough.
True
2
proof
[(((triple2) -> rule4) OR ((triple2) -> rule6) OR ((((triple3) -> rule3)) -> rule4) OR ((((triple3) -> rule3)) -> rule6))]
("Bob" "is" "rough" "+")
((triple2) -> (rule4 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((triple2) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((((triple3) -> (rule3 % int2))) -> (rule4 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
((((triple3) -> (rule3 % int2))) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
Bob is not rough.
False
2
inv-proof
[(((triple2) -> rule4) OR ((triple2) -> rule6) OR ((((triple3) -> rule3)) -> rule4) OR ((((triple3) -> rule3)) -> rule6))]
("Bob" "is" "rough" "-")
((triple2) -> (rule4 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((triple2) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((((triple3) -> (rule3 % int2))) -> (rule4 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
((((triple3) -> (rule3 % int2))) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
Bob is not young.
Unknown
inv-rconc
[@1: Bob is young.[CWA. Example of deepest failure = (rule8 <- FAIL)]]
("Bob" "is" "young" "-")
Charlie is smart.
Unknown
random
[@0: Charlie is smart.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "smart" "+")
@0: Bob is furry.[(triple1 OR ((triple4 triple2) -> rule2) OR ((triple4 ((triple3) -> rule3)) -> rule2) OR ((((triple2) -> rule4) triple3) -> rule1) OR ((((triple2) -> rule6) triple3) -> rule1) OR ((((((triple3) -> rule3)) -> rule4) triple3) -> rule1) OR ((((((triple3) -> rule3)) -> rule6) triple3) -> rule1))] Bob is green.[(triple2 OR ((triple3) -> rule3))] Bob is nice.[(triple3)] Bob is quiet.[(triple4)] Charlie is furry.[(triple5 OR ((triple8 triple6) -> rule2) OR ((triple9 triple7) -> rule1) OR ((triple8 ((triple7) -> rule3)) -> rule2) OR ((((triple6) -> rule4) triple7) -> rule1) OR ((((triple6) -> rule6) triple7) -> rule1) OR ((((triple7) -> rule5) triple7) -> rule1) OR ((((((triple7) -> rule3)) -> rule4) triple7) -> rule1) OR ((((((triple7) -> rule3)) -> rule6) triple7) -> rule1))] Charlie is green.[(triple6 OR ((triple7) -> rule3))] Charlie is nice.[(triple7)] Charlie is quiet.[(triple8)] Charlie is rough.[(triple9 OR ((triple6) -> rule4) OR ((triple6) -> rule6) OR ((triple7) -> rule5) OR ((((triple7) -> rule3)) -> rule4) OR ((((triple7) -> rule3)) -> rule6))] Charlie is young.[(triple10)] @1: Bob is rough.[(((triple2) -> rule4) OR ((triple2) -> rule6) OR ((((triple3) -> rule3)) -> rule4) OR ((((triple3) -> rule3)) -> rule6))]
Bob is furry.
("Bob" "is" "furry" "+")
triple1
((triple4 triple2) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((triple4 ((triple3) -> (rule3 % int2))) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
((((triple2) -> (rule4 % int2)) triple3) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
((((triple2) -> (rule6 % int2)) triple3) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
((((((triple3) -> (rule3 % int3))) -> (rule4 % int2)) triple3) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
int3
((((((triple3) -> (rule3 % int3))) -> (rule6 % int2)) triple3) -> (rule1 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
int3
Bob is green.
("Bob" "is" "green" "+")
triple2
((triple3) -> (rule3 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
triple3
Bob is quiet.
("Bob" "is" "quiet" "+")
triple4
Charlie is furry.
("Charlie" "is" "furry" "+")
triple5
((triple8 triple6) -> (rule2 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((triple9 triple7) -> (rule1 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((triple8 ((triple7) -> (rule3 % int2))) -> (rule2 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is green.
("Charlie" "is" "green" "+")
int2
((((triple6) -> (rule4 % int2)) triple7) -> (rule1 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
((((triple6) -> (rule6 % int2)) triple7) -> (rule1 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
((((triple7) -> (rule5 % int2)) triple7) -> (rule1 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
((((((triple7) -> (rule3 % int3))) -> (rule4 % int2)) triple7) -> (rule1 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is green.
("Charlie" "is" "green" "+")
int3
((((((triple7) -> (rule3 % int3))) -> (rule6 % int2)) triple7) -> (rule1 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is green.
("Charlie" "is" "green" "+")
int3
Charlie is green.
("Charlie" "is" "green" "+")
triple6
((triple7) -> (rule3 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
triple7
Charlie is quiet.
("Charlie" "is" "quiet" "+")
triple8
Charlie is rough.
("Charlie" "is" "rough" "+")
triple9
((triple6) -> (rule4 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((triple6) -> (rule6 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((triple7) -> (rule5 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((((triple7) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is green.
("Charlie" "is" "green" "+")
int2
((((triple7) -> (rule3 % int2))) -> (rule6 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is green.
("Charlie" "is" "green" "+")
int2
Charlie is young.
("Charlie" "is" "young" "+")
triple10
Bob is rough.
("Bob" "is" "rough" "+")
((triple2) -> (rule4 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((triple2) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((((triple3) -> (rule3 % int2))) -> (rule4 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
((((triple3) -> (rule3 % int2))) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2