Bob is blue. Bob is furry. Bob is rough. Bob is smart. Gary is smart. Gary is white. Gary is young. If someone is smart then they are young. Blue, smart people are young. If Bob is rough then Bob is furry. If Bob is blue then Bob is furry. All blue people are young. Rough people are blue. All smart people are rough. All smart, blue people are young.
Bob is blue.
("Bob" "is" "blue" "+")
Bob is furry.
("Bob" "is" "furry" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Bob is smart.
("Bob" "is" "smart" "+")
Gary is smart.
("Gary" "is" "smart" "+")
Gary is white.
("Gary" "is" "white" "+")
Gary is young.
("Gary" "is" "young" "+")
If someone is smart then they are young.
((("someone" "is" "smart" "+")) -> ("someone" "is" "young" "+"))
Blue, smart people are young.
((("someone" "is" "blue" "+") ("someone" "is" "smart" "+")) -> ("someone" "is" "young" "+"))
If Bob is rough then Bob is furry.
((("Bob" "is" "rough" "+")) -> ("Bob" "is" "furry" "+"))
If Bob is blue then Bob is furry.
((("Bob" "is" "blue" "+")) -> ("Bob" "is" "furry" "+"))
All blue people are young.
((("someone" "is" "blue" "+")) -> ("someone" "is" "young" "+"))
Rough people are blue.
((("someone" "is" "rough" "+")) -> ("someone" "is" "blue" "+"))
All smart people are rough.
((("someone" "is" "smart" "+")) -> ("someone" "is" "rough" "+"))
All smart, blue people are young.
((("someone" "is" "smart" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "young" "+"))
Gary is smart.
True
1
proof
[(triple5)]
("Gary" "is" "smart" "+")
triple5
Gary is not young.
False
1
inv-proof
[(triple7 OR ((triple5) -> rule1) OR ((((((triple5) -> rule7)) -> rule6)) -> rule5) OR ((triple5 ((((triple5) -> rule7)) -> rule6)) -> rule8) OR ((((((triple5) -> rule7)) -> rule6) triple5) -> rule2))]
("Gary" "is" "young" "-")
triple7
((triple5) -> (rule1 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
((((((triple5) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
((triple5 ((((triple5) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
((((((triple5) -> (rule7 % int3))) -> (rule6 % int2)) triple5) -> (rule2 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
Gary is rough.
True
2
proof
[(((triple5) -> rule7))]
("Gary" "is" "rough" "+")
((triple5) -> (rule7 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Bob is not young.
False
2
inv-proof
[(((triple1) -> rule5) OR ((triple4) -> rule1) OR ((triple1 triple4) -> rule2) OR ((triple4 triple1) -> rule8) OR ((((triple3) -> rule6)) -> rule5) OR ((triple4 ((triple3) -> rule6)) -> rule8) OR ((((triple3) -> rule6) triple4) -> rule2) OR ((((((triple4) -> rule7)) -> rule6)) -> rule5) OR ((triple4 ((((triple4) -> rule7)) -> rule6)) -> rule8) OR ((((((triple4) -> rule7)) -> rule6) triple4) -> rule2))]
("Bob" "is" "young" "-")
((triple1) -> (rule5 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
((triple4) -> (rule1 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
((triple1 triple4) -> (rule2 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
((triple4 triple1) -> (rule8 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
((((triple3) -> (rule6 % int2))) -> (rule5 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((triple4 ((triple3) -> (rule6 % int2))) -> (rule8 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((triple3) -> (rule6 % int2)) triple4) -> (rule2 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((((triple4) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
((triple4 ((((triple4) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
((((((triple4) -> (rule7 % int3))) -> (rule6 % int2)) triple4) -> (rule2 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Gary is blue.
True
3
proof
[(((((triple5) -> rule7)) -> rule6))]
("Gary" "is" "blue" "+")
((((triple5) -> (rule7 % int2))) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is not blue.
False
3
inv-proof
[(((((triple5) -> rule7)) -> rule6))]
("Gary" "is" "blue" "-")
((((triple5) -> (rule7 % int2))) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is not nice.
Unknown
inv-random
[@0: Gary is nice.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "nice" "-")
Gary is furry.
Unknown
random
[@0: Gary is furry.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "furry" "+")
Bob is not white.
Unknown
inv-random
[@0: Bob is white.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "white" "-")
Bob is nice.
Unknown
random
[@0: Bob is nice.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "nice" "+")
@0: Bob is blue.[(triple1 OR ((triple3) -> rule6) OR ((((triple4) -> rule7)) -> rule6))] Bob is furry.[(triple2 OR ((triple1) -> rule4) OR ((triple3) -> rule3) OR ((((triple3) -> rule6)) -> rule4) OR ((((triple4) -> rule7)) -> rule3) OR ((((((triple4) -> rule7)) -> rule6)) -> rule4))] Bob is rough.[(triple3 OR ((triple4) -> rule7))] Bob is smart.[(triple4)] Gary is smart.[(triple5)] Gary is white.[(triple6)] Gary is young.[(triple7 OR ((triple5) -> rule1) OR ((((((triple5) -> rule7)) -> rule6)) -> rule5) OR ((triple5 ((((triple5) -> rule7)) -> rule6)) -> rule8) OR ((((((triple5) -> rule7)) -> rule6) triple5) -> rule2))] @1: Bob is young.[(((triple1) -> rule5) OR ((triple4) -> rule1) OR ((triple1 triple4) -> rule2) OR ((triple4 triple1) -> rule8) OR ((((triple3) -> rule6)) -> rule5) OR ((triple4 ((triple3) -> rule6)) -> rule8) OR ((((triple3) -> rule6) triple4) -> rule2) OR ((((((triple4) -> rule7)) -> rule6)) -> rule5) OR ((triple4 ((((triple4) -> rule7)) -> rule6)) -> rule8) OR ((((((triple4) -> rule7)) -> rule6) triple4) -> rule2))] Gary is rough.[(((triple5) -> rule7))] @2: Gary is blue.[(((((triple5) -> rule7)) -> rule6))]
Bob is blue.
("Bob" "is" "blue" "+")
triple1
((triple3) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((((triple4) -> (rule7 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
triple2
((triple1) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((triple3) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((((triple3) -> (rule6 % int2))) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((triple4) -> (rule7 % int2))) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
((((((triple4) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
triple3
((triple4) -> (rule7 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
triple4
Gary is smart.
("Gary" "is" "smart" "+")
triple5
Gary is white.
("Gary" "is" "white" "+")
triple6
Gary is young.
("Gary" "is" "young" "+")
triple7
((triple5) -> (rule1 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
((((((triple5) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
((triple5 ((((triple5) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
((((((triple5) -> (rule7 % int3))) -> (rule6 % int2)) triple5) -> (rule2 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
Bob is young.
("Bob" "is" "young" "+")
((triple1) -> (rule5 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
((triple4) -> (rule1 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
((triple1 triple4) -> (rule2 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
((triple4 triple1) -> (rule8 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
((((triple3) -> (rule6 % int2))) -> (rule5 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((triple4 ((triple3) -> (rule6 % int2))) -> (rule8 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((triple3) -> (rule6 % int2)) triple4) -> (rule2 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((((triple4) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
((triple4 ((((triple4) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
((((((triple4) -> (rule7 % int3))) -> (rule6 % int2)) triple4) -> (rule2 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Gary is rough.
("Gary" "is" "rough" "+")
((triple5) -> (rule7 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
((((triple5) -> (rule7 % int2))) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2