Bob is blue. Bob is furry. Bob is rough. Bob is not smart. Bob is not young. Dave is furry. Dave is kind. Dave is red. Dave is young. Erin is young. Gary is blue. Gary is kind. Gary is rough. Gary is smart. Kind things are red. If Erin is furry and Erin is young then Erin is smart. All rough things are kind. All young things are rough. If something is red then it is furry.
Bob is blue.
("Bob" "is" "blue" "+")
Bob is furry.
("Bob" "is" "furry" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Bob is not smart.
("Bob" "is" "smart" "-")
Bob is not young.
("Bob" "is" "young" "-")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is kind.
("Dave" "is" "kind" "+")
Dave is red.
("Dave" "is" "red" "+")
Dave is young.
("Dave" "is" "young" "+")
Erin is young.
("Erin" "is" "young" "+")
Gary is blue.
("Gary" "is" "blue" "+")
Gary is kind.
("Gary" "is" "kind" "+")
Gary is rough.
("Gary" "is" "rough" "+")
Gary is smart.
("Gary" "is" "smart" "+")
Kind things are red.
((("something" "is" "kind" "+")) -> ("something" "is" "red" "+"))
If Erin is furry and Erin is young then Erin is smart.
((("Erin" "is" "furry" "+") ("Erin" "is" "young" "+")) -> ("Erin" "is" "smart" "+"))
All rough things are kind.
((("something" "is" "rough" "+")) -> ("something" "is" "kind" "+"))
All young things are rough.
((("something" "is" "young" "+")) -> ("something" "is" "rough" "+"))
If something is red then it is furry.
((("something" "is" "red" "+")) -> ("something" "is" "furry" "+"))
Gary is kind.
True
1
proof
[(triple12 OR ((triple13) -> rule3))]
("Gary" "is" "kind" "+")
triple12
((triple13) -> (rule3 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Dave is not furry.
False
1
inv-proof
[(triple6 OR ((triple8) -> rule5) OR ((((triple7) -> rule1)) -> rule5) OR ((((((((triple9) -> rule4)) -> rule3)) -> rule1)) -> rule5))]
("Dave" "is" "furry" "-")
triple6
((triple8) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
((((triple7) -> (rule1 % int2))) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
((((((((triple9) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
Dave is rough.
("Dave" "is" "rough" "+")
int4
Bob is kind.
True
2
proof
[(((triple3) -> rule3))]
("Bob" "is" "kind" "+")
((triple3) -> (rule3 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is not kind.
False
2
inv-proof
[(((triple3) -> rule3))]
("Bob" "is" "kind" "-")
((triple3) -> (rule3 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Gary is furry.
True
3
proof
[(((((triple12) -> rule1)) -> rule5) OR ((((((triple13) -> rule3)) -> rule1)) -> rule5))]
("Gary" "is" "furry" "+")
((((triple12) -> (rule1 % int2))) -> (rule5 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
((((((triple13) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is kind.
("Gary" "is" "kind" "+")
int3
Gary is not furry.
False
3
inv-proof
[(((((triple12) -> rule1)) -> rule5) OR ((((((triple13) -> rule3)) -> rule1)) -> rule5))]
("Gary" "is" "furry" "-")
((((triple12) -> (rule1 % int2))) -> (rule5 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
((((((triple13) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is kind.
("Gary" "is" "kind" "+")
int3
Erin is red.
True
4
proof
[(((((((triple10) -> rule4)) -> rule3)) -> rule1))]
("Erin" "is" "red" "+")
((((((triple10) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Erin is red.
("Erin" "is" "red" "+")
int1
Erin is kind.
("Erin" "is" "kind" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
Erin is not red.
False
4
inv-proof
[(((((((triple10) -> rule4)) -> rule3)) -> rule1))]
("Erin" "is" "red" "-")
((((((triple10) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Erin is red.
("Erin" "is" "red" "+")
int1
Erin is kind.
("Erin" "is" "kind" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
Erin is furry.
True
5
proof
[(((((((((triple10) -> rule4)) -> rule3)) -> rule1)) -> rule5))]
("Erin" "is" "furry" "+")
((((((((triple10) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Erin is red.
("Erin" "is" "red" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
int3
Erin is rough.
("Erin" "is" "rough" "+")
int4
Erin is not furry.
False
5
inv-proof
[(((((((((triple10) -> rule4)) -> rule3)) -> rule1)) -> rule5))]
("Erin" "is" "furry" "-")
((((((((triple10) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Erin is red.
("Erin" "is" "red" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
int3
Erin is rough.
("Erin" "is" "rough" "+")
int4
Erin is smart.
True
7
proof
[(((((((((((triple10) -> rule4)) -> rule3)) -> rule1)) -> rule5) triple10) -> rule2))]
("Erin" "is" "smart" "+")
((((((((((triple10) -> (rule4 % int5))) -> (rule3 % int4))) -> (rule1 % int3))) -> (rule5 % int2)) triple10) -> (rule2 % int1))
Erin is smart.
("Erin" "is" "smart" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
int2
Erin is red.
("Erin" "is" "red" "+")
int3
Erin is kind.
("Erin" "is" "kind" "+")
int4
Erin is rough.
("Erin" "is" "rough" "+")
int5
Erin is not smart.
False
7
inv-proof
[(((((((((((triple10) -> rule4)) -> rule3)) -> rule1)) -> rule5) triple10) -> rule2))]
("Erin" "is" "smart" "-")
((((((((((triple10) -> (rule4 % int5))) -> (rule3 % int4))) -> (rule1 % int3))) -> (rule5 % int2)) triple10) -> (rule2 % int1))
Erin is smart.
("Erin" "is" "smart" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
int2
Erin is red.
("Erin" "is" "red" "+")
int3
Erin is kind.
("Erin" "is" "kind" "+")
int4
Erin is rough.
("Erin" "is" "rough" "+")
int5
Dave is not blue.
Unknown
inv-random
[@0: Dave is blue.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "blue" "-")
Dave is smart.
Unknown
random
[@0: Dave is smart.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "smart" "+")
Gary is not young.
Unknown
inv-random
[@0: Gary is young.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "young" "-")
Erin is blue.
Unknown
random
[@0: Erin is blue.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "blue" "+")
@0: Bob is blue.[(triple1)] Bob is furry.[(triple2 OR ((((((triple3) -> rule3)) -> rule1)) -> rule5))] Bob is not smart.[(triple4)] Bob is not young.[(triple5)] Bob is rough.[(triple3)] Dave is furry.[(triple6 OR ((triple8) -> rule5) OR ((((triple7) -> rule1)) -> rule5) OR ((((((((triple9) -> rule4)) -> rule3)) -> rule1)) -> rule5))] Dave is kind.[(triple7 OR ((((triple9) -> rule4)) -> rule3))] Dave is red.[(triple8 OR ((triple7) -> rule1) OR ((((((triple9) -> rule4)) -> rule3)) -> rule1))] Dave is young.[(triple9)] Erin is young.[(triple10)] Gary is blue.[(triple11)] Gary is kind.[(triple12 OR ((triple13) -> rule3))] Gary is rough.[(triple13)] Gary is smart.[(triple14)] @1: Bob is kind.[(((triple3) -> rule3))] Dave is rough.[(((triple9) -> rule4))] Erin is rough.[(((triple10) -> rule4))] Gary is red.[(((triple12) -> rule1) OR ((((triple13) -> rule3)) -> rule1))] @2: Bob is red.[(((((triple3) -> rule3)) -> rule1))] Erin is kind.[(((((triple10) -> rule4)) -> rule3))] Gary is furry.[(((((triple12) -> rule1)) -> rule5) OR ((((((triple13) -> rule3)) -> rule1)) -> rule5))] @3: Erin is red.[(((((((triple10) -> rule4)) -> rule3)) -> rule1))] @4: Erin is furry.[(((((((((triple10) -> rule4)) -> rule3)) -> rule1)) -> rule5))] @5: Erin is smart.[(((((((((((triple10) -> rule4)) -> rule3)) -> rule1)) -> rule5) triple10) -> rule2))]
Bob is blue.
("Bob" "is" "blue" "+")
triple1
Bob is furry.
("Bob" "is" "furry" "+")
triple2
((((((triple3) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is kind.
("Bob" "is" "kind" "+")
int3
Bob is not smart.
("Bob" "is" "smart" "-")
triple4
Bob is not young.
("Bob" "is" "young" "-")
triple5
Bob is rough.
("Bob" "is" "rough" "+")
triple3
Dave is furry.
("Dave" "is" "furry" "+")
triple6
((triple8) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
((((triple7) -> (rule1 % int2))) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
((((((((triple9) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
Dave is rough.
("Dave" "is" "rough" "+")
int4
Dave is kind.
("Dave" "is" "kind" "+")
triple7
((((triple9) -> (rule4 % int2))) -> (rule3 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Dave is red.
("Dave" "is" "red" "+")
triple8
((triple7) -> (rule1 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
((((((triple9) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Dave is rough.
("Dave" "is" "rough" "+")
int3
Dave is young.
("Dave" "is" "young" "+")
triple9
Erin is young.
("Erin" "is" "young" "+")
triple10
Gary is blue.
("Gary" "is" "blue" "+")
triple11
Gary is kind.
("Gary" "is" "kind" "+")
triple12
((triple13) -> (rule3 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
triple13
Gary is smart.
("Gary" "is" "smart" "+")
triple14
Bob is kind.
("Bob" "is" "kind" "+")
((triple3) -> (rule3 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
((triple9) -> (rule4 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
((triple10) -> (rule4 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
((triple12) -> (rule1 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
((((triple13) -> (rule3 % int2))) -> (rule1 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is kind.
("Gary" "is" "kind" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
((((triple3) -> (rule3 % int2))) -> (rule1 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
((((triple10) -> (rule4 % int2))) -> (rule3 % int1))
Erin is kind.
("Erin" "is" "kind" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Gary is furry.
("Gary" "is" "furry" "+")
((((triple12) -> (rule1 % int2))) -> (rule5 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
((((((triple13) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is kind.
("Gary" "is" "kind" "+")
int3
Erin is red.
("Erin" "is" "red" "+")
((((((triple10) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Erin is red.
("Erin" "is" "red" "+")
int1
Erin is kind.
("Erin" "is" "kind" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
Erin is furry.
("Erin" "is" "furry" "+")
((((((((triple10) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Erin is red.
("Erin" "is" "red" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
int3
Erin is rough.
("Erin" "is" "rough" "+")
int4
Erin is smart.
("Erin" "is" "smart" "+")
((((((((((triple10) -> (rule4 % int5))) -> (rule3 % int4))) -> (rule1 % int3))) -> (rule5 % int2)) triple10) -> (rule2 % int1))
Erin is smart.
("Erin" "is" "smart" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
int2
Erin is red.
("Erin" "is" "red" "+")
int3
Erin is kind.
("Erin" "is" "kind" "+")
int4
Erin is rough.
("Erin" "is" "rough" "+")
int5