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