Anne is cold. Anne is furry. Anne is nice. Anne is quiet. Anne is red. Anne is round. Bob is cold. Bob is nice. Bob is quiet. Erin is blue. Erin is furry. Erin is nice. Erin is quiet. Erin is red. Harry is blue. If something is furry then it is cold. If something is red then it is blue. If something is cold and furry then it is round. If Bob is quiet then Bob is furry. If something is cold and round then it is blue. If Harry is red and Harry is furry then Harry is blue.
Anne is cold.
("Anne" "is" "cold" "+")
Anne is furry.
("Anne" "is" "furry" "+")
Anne is nice.
("Anne" "is" "nice" "+")
Anne is quiet.
("Anne" "is" "quiet" "+")
Anne is red.
("Anne" "is" "red" "+")
Anne is round.
("Anne" "is" "round" "+")
Bob is cold.
("Bob" "is" "cold" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Erin is blue.
("Erin" "is" "blue" "+")
Erin is furry.
("Erin" "is" "furry" "+")
Erin is nice.
("Erin" "is" "nice" "+")
Erin is quiet.
("Erin" "is" "quiet" "+")
Erin is red.
("Erin" "is" "red" "+")
Harry is blue.
("Harry" "is" "blue" "+")
If something is furry then it is cold.
((("something" "is" "furry" "+")) -> ("something" "is" "cold" "+"))
If something is red then it is blue.
((("something" "is" "red" "+")) -> ("something" "is" "blue" "+"))
If something is cold and furry then it is round.
((("something" "is" "cold" "+") ("something" "is" "furry" "+")) -> ("something" "is" "round" "+"))
If Bob is quiet then Bob is furry.
((("Bob" "is" "quiet" "+")) -> ("Bob" "is" "furry" "+"))
If something is cold and round then it is blue.
((("something" "is" "cold" "+") ("something" "is" "round" "+")) -> ("something" "is" "blue" "+"))
If Harry is red and Harry is furry then Harry is blue.
((("Harry" "is" "red" "+") ("Harry" "is" "furry" "+")) -> ("Harry" "is" "blue" "+"))
Anne is cold.
True
1
proof
[(triple1 OR ((triple2) -> rule1))]
("Anne" "is" "cold" "+")
triple1
((triple2) -> (rule1 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
Bob is not cold.
False
1
inv-proof
[(triple7 OR ((((triple9) -> rule4)) -> rule1))]
("Bob" "is" "cold" "-")
triple7
((((triple9) -> (rule4 % int2))) -> (rule1 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Anne is blue.
True
2
proof
[(((triple5) -> rule2) OR ((triple1 triple6) -> rule5) OR ((triple1 ((triple1 triple2) -> rule3)) -> rule5) OR ((((triple2) -> rule1) triple6) -> rule5) OR ((((triple2) -> rule1) ((triple1 triple2) -> rule3)) -> rule5) OR ((triple1 ((((triple2) -> rule1) triple2) -> rule3)) -> rule5) OR ((((triple2) -> rule1) ((((triple2) -> rule1) triple2) -> rule3)) -> rule5))]
("Anne" "is" "blue" "+")
((triple5) -> (rule2 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((triple1 triple6) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((triple1 ((triple1 triple2) -> (rule3 % int2))) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
((((triple2) -> (rule1 % int2)) triple6) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is cold.
("Anne" "is" "cold" "+")
int2
((((triple2) -> (rule1 % int3)) ((triple1 triple2) -> (rule3 % int2))) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
Anne is cold.
("Anne" "is" "cold" "+")
int3
((triple1 ((((triple2) -> (rule1 % int3)) triple2) -> (rule3 % int2))) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
Anne is cold.
("Anne" "is" "cold" "+")
int3
((((triple2) -> (rule1 % int3)) ((((triple2) -> (rule1 % int3)) triple2) -> (rule3 % int2))) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
Anne is cold.
("Anne" "is" "cold" "+")
int3
Bob is not furry.
False
2
inv-proof
[(((triple9) -> rule4))]
("Bob" "is" "furry" "-")
((triple9) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Erin is round.
True
4
proof
[(((((triple11) -> rule1) triple11) -> rule3))]
("Erin" "is" "round" "+")
((((triple11) -> (rule1 % int2)) triple11) -> (rule3 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Bob is not round.
False
4
inv-proof
[(((triple7 ((triple9) -> rule4)) -> rule3) OR ((((((triple9) -> rule4)) -> rule1) ((triple9) -> rule4)) -> rule3))]
("Bob" "is" "round" "-")
((triple7 ((triple9) -> (rule4 % int2))) -> (rule3 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((((((triple9) -> (rule4 % int3))) -> (rule1 % int2)) ((triple9) -> (rule4 % int3))) -> (rule3 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Bob is blue.
True
6
proof
[(((triple7 ((triple7 ((triple9) -> rule4)) -> rule3)) -> rule5) OR ((((((triple9) -> rule4)) -> rule1) ((triple7 ((triple9) -> rule4)) -> rule3)) -> rule5) OR ((triple7 ((((((triple9) -> rule4)) -> rule1) ((triple9) -> rule4)) -> rule3)) -> rule5) OR ((((((triple9) -> rule4)) -> rule1) ((((((triple9) -> rule4)) -> rule1) ((triple9) -> rule4)) -> rule3)) -> rule5))]
("Bob" "is" "blue" "+")
((triple7 ((triple7 ((triple9) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
((((((triple9) -> (rule4 % int4))) -> (rule1 % int3)) ((triple7 ((triple9) -> (rule4 % int4))) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
((triple7 ((((((triple9) -> (rule4 % int4))) -> (rule1 % int3)) ((triple9) -> (rule4 % int4))) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
((((((triple9) -> (rule4 % int4))) -> (rule1 % int3)) ((((((triple9) -> (rule4 % int4))) -> (rule1 % int3)) ((triple9) -> (rule4 % int4))) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
Bob is not blue.
False
6
inv-proof
[(((triple7 ((triple7 ((triple9) -> rule4)) -> rule3)) -> rule5) OR ((((((triple9) -> rule4)) -> rule1) ((triple7 ((triple9) -> rule4)) -> rule3)) -> rule5) OR ((triple7 ((((((triple9) -> rule4)) -> rule1) ((triple9) -> rule4)) -> rule3)) -> rule5) OR ((((((triple9) -> rule4)) -> rule1) ((((((triple9) -> rule4)) -> rule1) ((triple9) -> rule4)) -> rule3)) -> rule5))]
("Bob" "is" "blue" "-")
((triple7 ((triple7 ((triple9) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
((((((triple9) -> (rule4 % int4))) -> (rule1 % int3)) ((triple7 ((triple9) -> (rule4 % int4))) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
((triple7 ((((((triple9) -> (rule4 % int4))) -> (rule1 % int3)) ((triple9) -> (rule4 % int4))) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
((((((triple9) -> (rule4 % int4))) -> (rule1 % int3)) ((((((triple9) -> (rule4 % int4))) -> (rule1 % int3)) ((triple9) -> (rule4 % int4))) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
Harry is not cold.
Unknown
inv-rconc
[@1: Harry is cold.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Harry" "is" "cold" "-")
Harry is round.
Unknown
rconc
[@1: Harry is round.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Harry" "is" "round" "+")
Harry is not furry.
Unknown
inv-random
[@0: Harry is furry.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "furry" "-")
Bob is red.
Unknown
random
[@0: Bob is red.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "red" "+")
Harry is not red.
Unknown
inv-random
[@0: Harry is red.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "red" "-")
Harry is nice.
Unknown
random
[@0: Harry is nice.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "nice" "+")
@0: Anne is cold.[(triple1 OR ((triple2) -> rule1))] Anne is furry.[(triple2)] Anne is nice.[(triple3)] Anne is quiet.[(triple4)] Anne is red.[(triple5)] Anne is round.[(triple6 OR ((triple1 triple2) -> rule3) OR ((((triple2) -> rule1) triple2) -> rule3))] Bob is cold.[(triple7 OR ((((triple9) -> rule4)) -> rule1))] Bob is nice.[(triple8)] Bob is quiet.[(triple9)] Erin is blue.[(triple10 OR ((triple14) -> rule2) OR ((((triple11) -> rule1) ((((triple11) -> rule1) triple11) -> rule3)) -> rule5))] Erin is furry.[(triple11)] Erin is nice.[(triple12)] Erin is quiet.[(triple13)] Erin is red.[(triple14)] Harry is blue.[(triple15)] @1: Anne is blue.[(((triple5) -> rule2) OR ((triple1 triple6) -> rule5) OR ((triple1 ((triple1 triple2) -> rule3)) -> rule5) OR ((((triple2) -> rule1) triple6) -> rule5) OR ((((triple2) -> rule1) ((triple1 triple2) -> rule3)) -> rule5) OR ((triple1 ((((triple2) -> rule1) triple2) -> rule3)) -> rule5) OR ((((triple2) -> rule1) ((((triple2) -> rule1) triple2) -> rule3)) -> rule5))] Bob is furry.[(((triple9) -> rule4))] Erin is cold.[(((triple11) -> rule1))] @2: Bob is round.[(((triple7 ((triple9) -> rule4)) -> rule3) OR ((((((triple9) -> rule4)) -> rule1) ((triple9) -> rule4)) -> rule3))] Erin is round.[(((((triple11) -> rule1) triple11) -> rule3))] @3: Bob is blue.[(((triple7 ((triple7 ((triple9) -> rule4)) -> rule3)) -> rule5) OR ((((((triple9) -> rule4)) -> rule1) ((triple7 ((triple9) -> rule4)) -> rule3)) -> rule5) OR ((triple7 ((((((triple9) -> rule4)) -> rule1) ((triple9) -> rule4)) -> rule3)) -> rule5) OR ((((((triple9) -> rule4)) -> rule1) ((((((triple9) -> rule4)) -> rule1) ((triple9) -> rule4)) -> rule3)) -> rule5))]
Anne is cold.
("Anne" "is" "cold" "+")
triple1
((triple2) -> (rule1 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
triple2
Anne is nice.
("Anne" "is" "nice" "+")
triple3
Anne is quiet.
("Anne" "is" "quiet" "+")
triple4
Anne is red.
("Anne" "is" "red" "+")
triple5
Anne is round.
("Anne" "is" "round" "+")
triple6
((triple1 triple2) -> (rule3 % int1))
Anne is round.
("Anne" "is" "round" "+")
int1
((((triple2) -> (rule1 % int2)) triple2) -> (rule3 % int1))
Anne is round.
("Anne" "is" "round" "+")
int1
Anne is cold.
("Anne" "is" "cold" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
triple7
((((triple9) -> (rule4 % int2))) -> (rule1 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
triple8
Bob is quiet.
("Bob" "is" "quiet" "+")
triple9
Erin is blue.
("Erin" "is" "blue" "+")
triple10
((triple14) -> (rule2 % int1))
Erin is blue.
("Erin" "is" "blue" "+")
int1
((((triple11) -> (rule1 % int3)) ((((triple11) -> (rule1 % int3)) triple11) -> (rule3 % int2))) -> (rule5 % int1))
Erin is blue.
("Erin" "is" "blue" "+")
int1
Erin is round.
("Erin" "is" "round" "+")
int2
Erin is cold.
("Erin" "is" "cold" "+")
int3
Erin is furry.
("Erin" "is" "furry" "+")
triple11
Erin is nice.
("Erin" "is" "nice" "+")
triple12
Erin is quiet.
("Erin" "is" "quiet" "+")
triple13
Erin is red.
("Erin" "is" "red" "+")
triple14
Harry is blue.
("Harry" "is" "blue" "+")
triple15
Anne is blue.
("Anne" "is" "blue" "+")
((triple5) -> (rule2 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((triple1 triple6) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((triple1 ((triple1 triple2) -> (rule3 % int2))) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
((((triple2) -> (rule1 % int2)) triple6) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is cold.
("Anne" "is" "cold" "+")
int2
((((triple2) -> (rule1 % int3)) ((triple1 triple2) -> (rule3 % int2))) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
Anne is cold.
("Anne" "is" "cold" "+")
int3
((triple1 ((((triple2) -> (rule1 % int3)) triple2) -> (rule3 % int2))) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
Anne is cold.
("Anne" "is" "cold" "+")
int3
((((triple2) -> (rule1 % int3)) ((((triple2) -> (rule1 % int3)) triple2) -> (rule3 % int2))) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
int2
Anne is cold.
("Anne" "is" "cold" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
((triple9) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
((triple11) -> (rule1 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
((triple7 ((triple9) -> (rule4 % int2))) -> (rule3 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((((((triple9) -> (rule4 % int3))) -> (rule1 % int2)) ((triple9) -> (rule4 % int3))) -> (rule3 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Erin is round.
("Erin" "is" "round" "+")
((((triple11) -> (rule1 % int2)) triple11) -> (rule3 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
((triple7 ((triple7 ((triple9) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
((((((triple9) -> (rule4 % int4))) -> (rule1 % int3)) ((triple7 ((triple9) -> (rule4 % int4))) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
((triple7 ((((((triple9) -> (rule4 % int4))) -> (rule1 % int3)) ((triple9) -> (rule4 % int4))) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
((((((triple9) -> (rule4 % int4))) -> (rule1 % int3)) ((((((triple9) -> (rule4 % int4))) -> (rule1 % int3)) ((triple9) -> (rule4 % int4))) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4