Bob is furry. Bob is rough. Bob is white. Charlie is big. Charlie is furry. Charlie is nice. Charlie is smart. Charlie is young. Dave is nice. Dave is rough. Dave is smart. Dave is white. Dave is young. Gary is nice. Gary is smart. Gary is young. All big things are smart. Nice, white things are rough. If Bob is furry and Bob is nice then Bob is big. If Bob is white then Bob is big. All nice things are rough. White things are nice.
Bob is furry.
("Bob" "is" "furry" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Bob is white.
("Bob" "is" "white" "+")
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Dave is nice.
("Dave" "is" "nice" "+")
Dave is rough.
("Dave" "is" "rough" "+")
Dave is smart.
("Dave" "is" "smart" "+")
Dave is white.
("Dave" "is" "white" "+")
Dave is young.
("Dave" "is" "young" "+")
Gary is nice.
("Gary" "is" "nice" "+")
Gary is smart.
("Gary" "is" "smart" "+")
Gary is young.
("Gary" "is" "young" "+")
All big things are smart.
((("something" "is" "big" "+")) -> ("something" "is" "smart" "+"))
Nice, white things are rough.
((("something" "is" "nice" "+") ("something" "is" "white" "+")) -> ("something" "is" "rough" "+"))
If Bob is furry and Bob is nice then Bob is big.
((("Bob" "is" "furry" "+") ("Bob" "is" "nice" "+")) -> ("Bob" "is" "big" "+"))
If Bob is white then Bob is big.
((("Bob" "is" "white" "+")) -> ("Bob" "is" "big" "+"))
All nice things are rough.
((("something" "is" "nice" "+")) -> ("something" "is" "rough" "+"))
White things are nice.
((("something" "is" "white" "+")) -> ("something" "is" "nice" "+"))
Gary is young.
True
1
proof
[(triple16)]
("Gary" "is" "young" "+")
triple16
Dave is not rough.
False
1
inv-proof
[(triple10 OR ((triple9) -> rule5) OR ((triple9 triple12) -> rule2) OR ((((triple12) -> rule6)) -> rule5) OR ((((triple12) -> rule6) triple12) -> rule2))]
("Dave" "is" "rough" "-")
triple10
((triple9) -> (rule5 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
((triple9 triple12) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
((((triple12) -> (rule6 % int2))) -> (rule5 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((triple12) -> (rule6 % int2)) triple12) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Bob is nice.
True
2
proof
[(((triple3) -> rule6))]
("Bob" "is" "nice" "+")
((triple3) -> (rule6 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is not big.
False
2
inv-proof
[(((triple3) -> rule4) OR ((triple1 ((triple3) -> rule6)) -> rule3))]
("Bob" "is" "big" "-")
((triple3) -> (rule4 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
((triple1 ((triple3) -> (rule6 % int2))) -> (rule3 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is smart.
True
3
proof
[(((((triple3) -> rule4)) -> rule1) OR ((((triple1 ((triple3) -> rule6)) -> rule3)) -> rule1))]
("Bob" "is" "smart" "+")
((((triple3) -> (rule4 % int2))) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
((((triple1 ((triple3) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is not smart.
False
3
inv-proof
[(((((triple3) -> rule4)) -> rule1) OR ((((triple1 ((triple3) -> rule6)) -> rule3)) -> rule1))]
("Bob" "is" "smart" "-")
((((triple3) -> (rule4 % int2))) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
((((triple1 ((triple3) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Gary is not furry.
Unknown
inv-random
[@0: Gary is furry.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "furry" "-")
Dave is furry.
Unknown
random
[@0: Dave is furry.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "furry" "+")
Gary is not white.
Unknown
inv-random
[@0: Gary is white.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "white" "-")
Bob is young.
Unknown
random
[@0: Bob is young.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "young" "+")
Charlie is not white.
Unknown
inv-random
[@0: Charlie is white.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "white" "-")
Gary is big.
Unknown
random
[@0: Gary is big.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "big" "+")
@0: Bob is furry.[(triple1)] Bob is rough.[(triple2 OR ((((triple3) -> rule6)) -> rule5) OR ((((triple3) -> rule6) triple3) -> rule2))] Bob is white.[(triple3)] Charlie is big.[(triple4)] Charlie is furry.[(triple5)] Charlie is nice.[(triple6)] Charlie is smart.[(triple7 OR ((triple4) -> rule1))] Charlie is young.[(triple8)] Dave is nice.[(triple9 OR ((triple12) -> rule6))] Dave is rough.[(triple10 OR ((triple9) -> rule5) OR ((triple9 triple12) -> rule2) OR ((((triple12) -> rule6)) -> rule5) OR ((((triple12) -> rule6) triple12) -> rule2))] Dave is smart.[(triple11)] Dave is white.[(triple12)] Dave is young.[(triple13)] Gary is nice.[(triple14)] Gary is smart.[(triple15)] Gary is young.[(triple16)] @1: Bob is big.[(((triple3) -> rule4) OR ((triple1 ((triple3) -> rule6)) -> rule3))] Bob is nice.[(((triple3) -> rule6))] Charlie is rough.[(((triple6) -> rule5))] Gary is rough.[(((triple14) -> rule5))] @2: Bob is smart.[(((((triple3) -> rule4)) -> rule1) OR ((((triple1 ((triple3) -> rule6)) -> rule3)) -> rule1))]
Bob is furry.
("Bob" "is" "furry" "+")
triple1
Bob is rough.
("Bob" "is" "rough" "+")
triple2
((((triple3) -> (rule6 % int2))) -> (rule5 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((triple3) -> (rule6 % int2)) triple3) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
triple3
Charlie is big.
("Charlie" "is" "big" "+")
triple4
Charlie is furry.
("Charlie" "is" "furry" "+")
triple5
Charlie is nice.
("Charlie" "is" "nice" "+")
triple6
Charlie is smart.
("Charlie" "is" "smart" "+")
triple7
((triple4) -> (rule1 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
triple8
Dave is nice.
("Dave" "is" "nice" "+")
triple9
((triple12) -> (rule6 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
triple10
((triple9) -> (rule5 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
((triple9 triple12) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
((((triple12) -> (rule6 % int2))) -> (rule5 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((triple12) -> (rule6 % int2)) triple12) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is smart.
("Dave" "is" "smart" "+")
triple11
Dave is white.
("Dave" "is" "white" "+")
triple12
Dave is young.
("Dave" "is" "young" "+")
triple13
Gary is nice.
("Gary" "is" "nice" "+")
triple14
Gary is smart.
("Gary" "is" "smart" "+")
triple15
Gary is young.
("Gary" "is" "young" "+")
triple16
Bob is big.
("Bob" "is" "big" "+")
((triple3) -> (rule4 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
((triple1 ((triple3) -> (rule6 % int2))) -> (rule3 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
((triple3) -> (rule6 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
((triple6) -> (rule5 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
((triple14) -> (rule5 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
((((triple3) -> (rule4 % int2))) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
((((triple1 ((triple3) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3