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