Dave is blue. Dave is cold. Dave is furry. Dave is quiet. Fiona is blue. Fiona is cold. Fiona is furry. Fiona is quiet. Fiona is red. Harry is blue. Harry is cold. Harry is red. Blue things are red. Quiet, red things are furry. If something is cold and big then it is furry. All furry, quiet things are cold. All green, cold things are quiet. If something is red then it is green.
Dave is blue.
("Dave" "is" "blue" "+")
Dave is cold.
("Dave" "is" "cold" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is quiet.
("Dave" "is" "quiet" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is quiet.
("Fiona" "is" "quiet" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is cold.
("Harry" "is" "cold" "+")
Harry is red.
("Harry" "is" "red" "+")
Blue things are red.
((("something" "is" "blue" "+")) -> ("something" "is" "red" "+"))
Quiet, red things are furry.
((("something" "is" "quiet" "+") ("something" "is" "red" "+")) -> ("something" "is" "furry" "+"))
If something is cold and big then it is furry.
((("something" "is" "cold" "+") ("something" "is" "big" "+")) -> ("something" "is" "furry" "+"))
All furry, quiet things are cold.
((("something" "is" "furry" "+") ("something" "is" "quiet" "+")) -> ("something" "is" "cold" "+"))
All green, cold things are quiet.
((("something" "is" "green" "+") ("something" "is" "cold" "+")) -> ("something" "is" "quiet" "+"))
If something is red then it is green.
((("something" "is" "red" "+")) -> ("something" "is" "green" "+"))
Fiona is blue.
True
1
proof
[(triple5)]
("Fiona" "is" "blue" "+")
triple5
Harry is not red.
False
1
inv-proof
[(triple12 OR ((triple10) -> rule1))]
("Harry" "is" "red" "-")
triple12
((triple10) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Fiona is green.
True
2
proof
[(((triple9) -> rule6) OR ((((triple5) -> rule1)) -> rule6))]
("Fiona" "is" "green" "+")
((triple9) -> (rule6 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
((((triple5) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is not green.
False
2
inv-proof
[(((triple9) -> rule6) OR ((((triple5) -> rule1)) -> rule6))]
("Fiona" "is" "green" "-")
((triple9) -> (rule6 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
((((triple5) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Dave is green.
True
3
proof
[(((((triple1) -> rule1)) -> rule6))]
("Dave" "is" "green" "+")
((((triple1) -> (rule1 % int2))) -> (rule6 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Harry is not quiet.
False
4
inv-proof
[(((((triple12) -> rule6) triple11) -> rule5) OR ((((((triple10) -> rule1)) -> rule6) triple11) -> rule5))]
("Harry" "is" "quiet" "-")
((((triple12) -> (rule6 % int2)) triple11) -> (rule5 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((((((triple10) -> (rule1 % int3))) -> (rule6 % int2)) triple11) -> (rule5 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is red.
("Harry" "is" "red" "+")
int3
Harry is furry.
True
6
proof
[(((((((triple12) -> rule6) triple11) -> rule5) triple12) -> rule2) OR ((((((triple12) -> rule6) triple11) -> rule5) ((triple10) -> rule1)) -> rule2) OR ((((((((triple10) -> rule1)) -> rule6) triple11) -> rule5) triple12) -> rule2) OR ((((((((triple10) -> rule1)) -> rule6) triple11) -> rule5) ((triple10) -> rule1)) -> rule2))]
("Harry" "is" "furry" "+")
((((((triple12) -> (rule6 % int3)) triple11) -> (rule5 % int2)) triple12) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((((triple12) -> (rule6 % int4)) triple11) -> (rule5 % int3)) ((triple10) -> (rule1 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is quiet.
("Harry" "is" "quiet" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
int4
((((((((triple10) -> (rule1 % int4))) -> (rule6 % int3)) triple11) -> (rule5 % int2)) triple12) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is red.
("Harry" "is" "red" "+")
int4
((((((((triple10) -> (rule1 % int4))) -> (rule6 % int3)) triple11) -> (rule5 % int2)) ((triple10) -> (rule1 % int4))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is red.
("Harry" "is" "red" "+")
int4
Harry is not furry.
False
6
inv-proof
[(((((((triple12) -> rule6) triple11) -> rule5) triple12) -> rule2) OR ((((((triple12) -> rule6) triple11) -> rule5) ((triple10) -> rule1)) -> rule2) OR ((((((((triple10) -> rule1)) -> rule6) triple11) -> rule5) triple12) -> rule2) OR ((((((((triple10) -> rule1)) -> rule6) triple11) -> rule5) ((triple10) -> rule1)) -> rule2))]
("Harry" "is" "furry" "-")
((((((triple12) -> (rule6 % int3)) triple11) -> (rule5 % int2)) triple12) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((((triple12) -> (rule6 % int4)) triple11) -> (rule5 % int3)) ((triple10) -> (rule1 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is quiet.
("Harry" "is" "quiet" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
int4
((((((((triple10) -> (rule1 % int4))) -> (rule6 % int3)) triple11) -> (rule5 % int2)) triple12) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is red.
("Harry" "is" "red" "+")
int4
((((((((triple10) -> (rule1 % int4))) -> (rule6 % int3)) triple11) -> (rule5 % int2)) ((triple10) -> (rule1 % int4))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is red.
("Harry" "is" "red" "+")
int4
Fiona is not big.
Unknown
inv-random
[@0: Fiona is big.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "big" "-")
Dave is big.
Unknown
random
[@0: Dave is big.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "big" "+")
@0: Dave is blue.[(triple1)] Dave is cold.[(triple2 OR ((triple3 triple4) -> rule4) OR ((((triple4 ((triple1) -> rule1)) -> rule2) triple4) -> rule4))] Dave is furry.[(triple3 OR ((triple4 ((triple1) -> rule1)) -> rule2) OR ((((((((triple1) -> rule1)) -> rule6) triple2) -> rule5) ((triple1) -> rule1)) -> rule2))] Dave is quiet.[(triple4 OR ((((((triple1) -> rule1)) -> rule6) triple2) -> rule5))] Fiona is blue.[(triple5)] Fiona is cold.[(triple6 OR ((triple7 triple8) -> rule4) OR ((((triple8 triple9) -> rule2) triple8) -> rule4) OR ((((triple8 ((triple5) -> rule1)) -> rule2) triple8) -> rule4))] Fiona is furry.[(triple7 OR ((triple8 triple9) -> rule2) OR ((triple8 ((triple5) -> rule1)) -> rule2) OR ((((((triple9) -> rule6) triple6) -> rule5) triple9) -> rule2) OR ((((((triple9) -> rule6) triple6) -> rule5) ((triple5) -> rule1)) -> rule2) OR ((((((((triple5) -> rule1)) -> rule6) triple6) -> rule5) triple9) -> rule2) OR ((((((((triple5) -> rule1)) -> rule6) triple6) -> rule5) ((triple5) -> rule1)) -> rule2))] Fiona is quiet.[(triple8 OR ((((triple9) -> rule6) triple6) -> rule5) OR ((((((triple5) -> rule1)) -> rule6) triple6) -> rule5))] Fiona is red.[(triple9 OR ((triple5) -> rule1))] Harry is blue.[(triple10)] Harry is cold.[(triple11)] Harry is red.[(triple12 OR ((triple10) -> rule1))] @1: Dave is red.[(((triple1) -> rule1))] Fiona is green.[(((triple9) -> rule6) OR ((((triple5) -> rule1)) -> rule6))] Harry is green.[(((triple12) -> rule6) OR ((((triple10) -> rule1)) -> rule6))] @2: Dave is green.[(((((triple1) -> rule1)) -> rule6))] Harry is quiet.[(((((triple12) -> rule6) triple11) -> rule5) OR ((((((triple10) -> rule1)) -> rule6) triple11) -> rule5))] @3: Harry is furry.[(((((((triple12) -> rule6) triple11) -> rule5) triple12) -> rule2) OR ((((((triple12) -> rule6) triple11) -> rule5) ((triple10) -> rule1)) -> rule2) OR ((((((((triple10) -> rule1)) -> rule6) triple11) -> rule5) triple12) -> rule2) OR ((((((((triple10) -> rule1)) -> rule6) triple11) -> rule5) ((triple10) -> rule1)) -> rule2))]
Dave is blue.
("Dave" "is" "blue" "+")
triple1
Dave is cold.
("Dave" "is" "cold" "+")
triple2
((triple3 triple4) -> (rule4 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((((triple4 ((triple1) -> (rule1 % int3))) -> (rule2 % int2)) triple4) -> (rule4 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is red.
("Dave" "is" "red" "+")
int3
Dave is furry.
("Dave" "is" "furry" "+")
triple3
((triple4 ((triple1) -> (rule1 % int2))) -> (rule2 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
((((((((triple1) -> (rule1 % int4))) -> (rule6 % int3)) triple2) -> (rule5 % int2)) ((triple1) -> (rule1 % int4))) -> (rule2 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is quiet.
("Dave" "is" "quiet" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is red.
("Dave" "is" "red" "+")
int4
Dave is quiet.
("Dave" "is" "quiet" "+")
triple4
((((((triple1) -> (rule1 % int3))) -> (rule6 % int2)) triple2) -> (rule5 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is red.
("Dave" "is" "red" "+")
int3
Fiona is blue.
("Fiona" "is" "blue" "+")
triple5
Fiona is cold.
("Fiona" "is" "cold" "+")
triple6
((triple7 triple8) -> (rule4 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
((((triple8 triple9) -> (rule2 % int2)) triple8) -> (rule4 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
((((triple8 ((triple5) -> (rule1 % int3))) -> (rule2 % int2)) triple8) -> (rule4 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
triple7
((triple8 triple9) -> (rule2 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
((triple8 ((triple5) -> (rule1 % int2))) -> (rule2 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
((((((triple9) -> (rule6 % int3)) triple6) -> (rule5 % int2)) triple9) -> (rule2 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
int3
((((((triple9) -> (rule6 % int4)) triple6) -> (rule5 % int3)) ((triple5) -> (rule1 % int2))) -> (rule2 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int3
Fiona is green.
("Fiona" "is" "green" "+")
int4
((((((((triple5) -> (rule1 % int4))) -> (rule6 % int3)) triple6) -> (rule5 % int2)) triple9) -> (rule2 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
int4
((((((((triple5) -> (rule1 % int4))) -> (rule6 % int3)) triple6) -> (rule5 % int2)) ((triple5) -> (rule1 % int4))) -> (rule2 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
int4
Fiona is quiet.
("Fiona" "is" "quiet" "+")
triple8
((((triple9) -> (rule6 % int2)) triple6) -> (rule5 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
int2
((((((triple5) -> (rule1 % int3))) -> (rule6 % int2)) triple6) -> (rule5 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
triple9
((triple5) -> (rule1 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
triple10
Harry is cold.
("Harry" "is" "cold" "+")
triple11
Harry is red.
("Harry" "is" "red" "+")
triple12
((triple10) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
((triple1) -> (rule1 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
((triple9) -> (rule6 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
((((triple5) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
((triple12) -> (rule6 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((((triple10) -> (rule1 % int2))) -> (rule6 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
((((triple1) -> (rule1 % int2))) -> (rule6 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Harry is quiet.
("Harry" "is" "quiet" "+")
((((triple12) -> (rule6 % int2)) triple11) -> (rule5 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((((((triple10) -> (rule1 % int3))) -> (rule6 % int2)) triple11) -> (rule5 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is red.
("Harry" "is" "red" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
((((((triple12) -> (rule6 % int3)) triple11) -> (rule5 % int2)) triple12) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((((triple12) -> (rule6 % int4)) triple11) -> (rule5 % int3)) ((triple10) -> (rule1 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is quiet.
("Harry" "is" "quiet" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
int4
((((((((triple10) -> (rule1 % int4))) -> (rule6 % int3)) triple11) -> (rule5 % int2)) triple12) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is red.
("Harry" "is" "red" "+")
int4
((((((((triple10) -> (rule1 % int4))) -> (rule6 % int3)) triple11) -> (rule5 % int2)) ((triple10) -> (rule1 % int4))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is red.
("Harry" "is" "red" "+")
int4