Bob is blue. Bob is furry. Bob is nice. Bob is rough. Bob is young. Dave is furry. Dave is nice. Dave is red. Dave is rough. Dave is smart. Dave is young. Erin is blue. Erin is rough. Erin is smart. Fiona is furry. Furry things are blue. Blue things are nice. All nice, blue things are red.
Bob is blue.
("Bob" "is" "blue" "+")
Bob is furry.
("Bob" "is" "furry" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Bob is young.
("Bob" "is" "young" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is nice.
("Dave" "is" "nice" "+")
Dave is red.
("Dave" "is" "red" "+")
Dave is rough.
("Dave" "is" "rough" "+")
Dave is smart.
("Dave" "is" "smart" "+")
Dave is young.
("Dave" "is" "young" "+")
Erin is blue.
("Erin" "is" "blue" "+")
Erin is rough.
("Erin" "is" "rough" "+")
Erin is smart.
("Erin" "is" "smart" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Furry things are blue.
((("something" "is" "furry" "+")) -> ("something" "is" "blue" "+"))
Blue things are nice.
((("something" "is" "blue" "+")) -> ("something" "is" "nice" "+"))
All nice, blue things are red.
((("something" "is" "nice" "+") ("something" "is" "blue" "+")) -> ("something" "is" "red" "+"))
Dave is furry.
True
1
proof
[(triple6)]
("Dave" "is" "furry" "+")
triple6
Dave is not furry.
False
1
inv-proof
[(triple6)]
("Dave" "is" "furry" "-")
triple6
Bob is red.
True
3
proof
[(((triple3 triple1) -> rule3) OR ((triple3 ((triple2) -> rule1)) -> rule3) OR ((((triple1) -> rule2) triple1) -> rule3) OR ((((triple1) -> rule2) ((triple2) -> rule1)) -> rule3) OR ((((((triple2) -> rule1)) -> rule2) triple1) -> rule3) OR ((((((triple2) -> rule1)) -> rule2) ((triple2) -> rule1)) -> rule3))]
("Bob" "is" "red" "+")
((triple3 triple1) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
((triple3 ((triple2) -> (rule1 % int2))) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((triple1) -> (rule2 % int2)) triple1) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((triple1) -> (rule2 % int3)) ((triple2) -> (rule1 % int2))) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((((triple2) -> (rule1 % int3))) -> (rule2 % int2)) triple1) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((((triple2) -> (rule1 % int3))) -> (rule2 % int2)) ((triple2) -> (rule1 % int3))) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Fiona is not blue.
False
2
inv-proof
[(((triple15) -> rule1))]
("Fiona" "is" "blue" "-")
((triple15) -> (rule1 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is nice.
True
3
proof
[(((((triple15) -> rule1)) -> rule2))]
("Fiona" "is" "nice" "+")
((((triple15) -> (rule1 % int2))) -> (rule2 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is not nice.
False
3
inv-proof
[(((((triple15) -> rule1)) -> rule2))]
("Fiona" "is" "nice" "-")
((((triple15) -> (rule1 % int2))) -> (rule2 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Erin is not furry.
Unknown
inv-random
[@0: Erin is furry.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "furry" "-")
Fiona is young.
Unknown
random
[@0: Fiona is young.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "young" "+")
Erin is not young.
Unknown
inv-random
[@0: Erin is young.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "young" "-")
Bob is smart.
Unknown
random
[@0: Bob is smart.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "smart" "+")
Fiona is not rough.
Unknown
inv-random
[@0: Fiona is rough.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "rough" "-")
Fiona is smart.
Unknown
random
[@0: Fiona is smart.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "smart" "+")
@0: Bob is blue.[(triple1 OR ((triple2) -> rule1))] Bob is furry.[(triple2)] Bob is nice.[(triple3 OR ((triple1) -> rule2) OR ((((triple2) -> rule1)) -> rule2))] Bob is rough.[(triple4)] Bob is young.[(triple5)] Dave is furry.[(triple6)] Dave is nice.[(triple7 OR ((((triple6) -> rule1)) -> rule2))] Dave is red.[(triple8 OR ((triple7 ((triple6) -> rule1)) -> rule3) OR ((((((triple6) -> rule1)) -> rule2) ((triple6) -> rule1)) -> rule3))] Dave is rough.[(triple9)] Dave is smart.[(triple10)] Dave is young.[(triple11)] Erin is blue.[(triple12)] Erin is rough.[(triple13)] Erin is smart.[(triple14)] Fiona is furry.[(triple15)] @1: Bob is red.[(((triple3 triple1) -> rule3) OR ((triple3 ((triple2) -> rule1)) -> rule3) OR ((((triple1) -> rule2) triple1) -> rule3) OR ((((triple1) -> rule2) ((triple2) -> rule1)) -> rule3) OR ((((((triple2) -> rule1)) -> rule2) triple1) -> rule3) OR ((((((triple2) -> rule1)) -> rule2) ((triple2) -> rule1)) -> rule3))] Dave is blue.[(((triple6) -> rule1))] Erin is nice.[(((triple12) -> rule2))] Fiona is blue.[(((triple15) -> rule1))] @2: Erin is red.[(((((triple12) -> rule2) triple12) -> rule3))] Fiona is nice.[(((((triple15) -> rule1)) -> rule2))] @3: Fiona is red.[(((((((triple15) -> rule1)) -> rule2) ((triple15) -> rule1)) -> rule3))]
Bob is blue.
("Bob" "is" "blue" "+")
triple1
((triple2) -> (rule1 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
triple2
Bob is nice.
("Bob" "is" "nice" "+")
triple3
((triple1) -> (rule2 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
((((triple2) -> (rule1 % int2))) -> (rule2 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
triple4
Bob is young.
("Bob" "is" "young" "+")
triple5
Dave is furry.
("Dave" "is" "furry" "+")
triple6
Dave is nice.
("Dave" "is" "nice" "+")
triple7
((((triple6) -> (rule1 % int2))) -> (rule2 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
int2
Dave is red.
("Dave" "is" "red" "+")
triple8
((triple7 ((triple6) -> (rule1 % int2))) -> (rule3 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
int2
((((((triple6) -> (rule1 % int3))) -> (rule2 % int2)) ((triple6) -> (rule1 % int3))) -> (rule3 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Dave is rough.
("Dave" "is" "rough" "+")
triple9
Dave is smart.
("Dave" "is" "smart" "+")
triple10
Dave is young.
("Dave" "is" "young" "+")
triple11
Erin is blue.
("Erin" "is" "blue" "+")
triple12
Erin is rough.
("Erin" "is" "rough" "+")
triple13
Erin is smart.
("Erin" "is" "smart" "+")
triple14
Fiona is furry.
("Fiona" "is" "furry" "+")
triple15
Bob is red.
("Bob" "is" "red" "+")
((triple3 triple1) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
((triple3 ((triple2) -> (rule1 % int2))) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((triple1) -> (rule2 % int2)) triple1) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((triple1) -> (rule2 % int3)) ((triple2) -> (rule1 % int2))) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((((triple2) -> (rule1 % int3))) -> (rule2 % int2)) triple1) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((((triple2) -> (rule1 % int3))) -> (rule2 % int2)) ((triple2) -> (rule1 % int3))) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Dave is blue.
("Dave" "is" "blue" "+")
((triple6) -> (rule1 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Erin is nice.
("Erin" "is" "nice" "+")
((triple12) -> (rule2 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
((triple15) -> (rule1 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Erin is red.
("Erin" "is" "red" "+")
((((triple12) -> (rule2 % int2)) triple12) -> (rule3 % int1))
Erin is red.
("Erin" "is" "red" "+")
int1
Erin is nice.
("Erin" "is" "nice" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
((((triple15) -> (rule1 % int2))) -> (rule2 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
((((((triple15) -> (rule1 % int3))) -> (rule2 % int2)) ((triple15) -> (rule1 % int3))) -> (rule3 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3