Anne is furry. Anne is smart. Bob is round. Erin is red. Erin is rough. Erin is smart. Fiona is blue. Fiona is cold. Fiona is furry. Fiona is red. Fiona is rough. Fiona is smart. If something is red and cold then it is round. All rough things are red. All furry things are cold. If something is red and cold then it is round. Red, cold things are blue. All rough things are furry.
Anne is furry.
("Anne" "is" "furry" "+")
Anne is smart.
("Anne" "is" "smart" "+")
Bob is round.
("Bob" "is" "round" "+")
Erin is red.
("Erin" "is" "red" "+")
Erin is rough.
("Erin" "is" "rough" "+")
Erin is smart.
("Erin" "is" "smart" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Fiona is smart.
("Fiona" "is" "smart" "+")
If something is red and cold then it is round.
((("something" "is" "red" "+") ("something" "is" "cold" "+")) -> ("something" "is" "round" "+"))
All rough things are red.
((("something" "is" "rough" "+")) -> ("something" "is" "red" "+"))
All furry things are cold.
((("something" "is" "furry" "+")) -> ("something" "is" "cold" "+"))
If something is red and cold then it is round.
((("something" "is" "red" "+") ("something" "is" "cold" "+")) -> ("something" "is" "round" "+"))
Red, cold things are blue.
((("something" "is" "red" "+") ("something" "is" "cold" "+")) -> ("something" "is" "blue" "+"))
All rough things are furry.
((("something" "is" "rough" "+")) -> ("something" "is" "furry" "+"))
Fiona is smart.
True
1
proof
[(triple12)]
("Fiona" "is" "smart" "+")
triple12
Anne is not smart.
False
1
inv-proof
[(triple2)]
("Anne" "is" "smart" "-")
triple2
Anne is cold.
True
2
proof
[(((triple1) -> rule3))]
("Anne" "is" "cold" "+")
((triple1) -> (rule3 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
Fiona is not round.
False
3
inv-proof
[(((triple10 triple8) -> rule1) OR ((triple10 triple8) -> rule4) OR ((triple10 ((triple9) -> rule3)) -> rule1) OR ((triple10 ((triple9) -> rule3)) -> rule4) OR ((((triple11) -> rule2) triple8) -> rule1) OR ((((triple11) -> rule2) triple8) -> rule4) OR ((((triple11) -> rule2) ((triple9) -> rule3)) -> rule1) OR ((((triple11) -> rule2) ((triple9) -> rule3)) -> rule4) OR ((triple10 ((((triple11) -> rule6)) -> rule3)) -> rule1) OR ((triple10 ((((triple11) -> rule6)) -> rule3)) -> rule4) OR ((((triple11) -> rule2) ((((triple11) -> rule6)) -> rule3)) -> rule1) OR ((((triple11) -> rule2) ((((triple11) -> rule6)) -> rule3)) -> rule4))]
("Fiona" "is" "round" "-")
((triple10 triple8) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((triple10 triple8) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((triple10 ((triple9) -> (rule3 % int2))) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
((triple10 ((triple9) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
((((triple11) -> (rule2 % int2)) triple8) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
((((triple11) -> (rule2 % int2)) triple8) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
((((triple11) -> (rule2 % int3)) ((triple9) -> (rule3 % int2))) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
((((triple11) -> (rule2 % int3)) ((triple9) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
((triple10 ((((triple11) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
((triple10 ((((triple11) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
((((triple11) -> (rule2 % int4)) ((((triple11) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
int4
((((triple11) -> (rule2 % int4)) ((((triple11) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
int4
Erin is cold.
True
3
proof
[(((((triple5) -> rule6)) -> rule3))]
("Erin" "is" "cold" "+")
((((triple5) -> (rule6 % int2))) -> (rule3 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
int2
Erin is not cold.
False
3
inv-proof
[(((((triple5) -> rule6)) -> rule3))]
("Erin" "is" "cold" "-")
((((triple5) -> (rule6 % int2))) -> (rule3 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
int2
Erin is blue.
True
5
proof
[(((triple4 ((((triple5) -> rule6)) -> rule3)) -> rule5) OR ((((triple5) -> rule2) ((((triple5) -> rule6)) -> rule3)) -> rule5))]
("Erin" "is" "blue" "+")
((triple4 ((((triple5) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Erin is blue.
("Erin" "is" "blue" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
((((triple5) -> (rule2 % int4)) ((((triple5) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Erin is blue.
("Erin" "is" "blue" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
Erin is red.
("Erin" "is" "red" "+")
int4
Erin is not round.
False
5
inv-proof
[(((triple4 ((((triple5) -> rule6)) -> rule3)) -> rule1) OR ((triple4 ((((triple5) -> rule6)) -> rule3)) -> rule4) OR ((((triple5) -> rule2) ((((triple5) -> rule6)) -> rule3)) -> rule1) OR ((((triple5) -> rule2) ((((triple5) -> rule6)) -> rule3)) -> rule4))]
("Erin" "is" "round" "-")
((triple4 ((((triple5) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
((triple4 ((((triple5) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
((((triple5) -> (rule2 % int4)) ((((triple5) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
Erin is red.
("Erin" "is" "red" "+")
int4
((((triple5) -> (rule2 % int4)) ((((triple5) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
Erin is red.
("Erin" "is" "red" "+")
int4
Anne is not round.
Unknown
inv-rconc
[@2: Anne is round.[CWA. Example of deepest failure = (rule1 <- rule2 <- FAIL)]]
("Anne" "is" "round" "-")
Bob is furry.
Unknown
rconc
[@1: Bob is furry.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Bob" "is" "furry" "+")
Anne is not red.
Unknown
inv-rconc
[@1: Anne is red.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Anne" "is" "red" "-")
Bob is blue.
Unknown
rconc
[@2: Bob is blue.[CWA. Example of deepest failure = (rule5 <- rule2 <- FAIL)]]
("Bob" "is" "blue" "+")
Anne is not rough.
Unknown
inv-random
[@0: Anne is rough.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "rough" "-")
Bob is rough.
Unknown
random
[@0: Bob is rough.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "rough" "+")
@0: Anne is furry.[(triple1)] Anne is smart.[(triple2)] Bob is round.[(triple3)] Erin is red.[(triple4 OR ((triple5) -> rule2))] Erin is rough.[(triple5)] Erin is smart.[(triple6)] Fiona is blue.[(triple7 OR ((triple10 triple8) -> rule5) OR ((triple10 ((triple9) -> rule3)) -> rule5) OR ((((triple11) -> rule2) triple8) -> rule5) OR ((((triple11) -> rule2) ((triple9) -> rule3)) -> rule5) OR ((triple10 ((((triple11) -> rule6)) -> rule3)) -> rule5) OR ((((triple11) -> rule2) ((((triple11) -> rule6)) -> rule3)) -> rule5))] Fiona is cold.[(triple8 OR ((triple9) -> rule3) OR ((((triple11) -> rule6)) -> rule3))] Fiona is furry.[(triple9 OR ((triple11) -> rule6))] Fiona is red.[(triple10 OR ((triple11) -> rule2))] Fiona is rough.[(triple11)] Fiona is smart.[(triple12)] @1: Anne is cold.[(((triple1) -> rule3))] Erin is furry.[(((triple5) -> rule6))] Fiona is round.[(((triple10 triple8) -> rule1) OR ((triple10 triple8) -> rule4) OR ((triple10 ((triple9) -> rule3)) -> rule1) OR ((triple10 ((triple9) -> rule3)) -> rule4) OR ((((triple11) -> rule2) triple8) -> rule1) OR ((((triple11) -> rule2) triple8) -> rule4) OR ((((triple11) -> rule2) ((triple9) -> rule3)) -> rule1) OR ((((triple11) -> rule2) ((triple9) -> rule3)) -> rule4) OR ((triple10 ((((triple11) -> rule6)) -> rule3)) -> rule1) OR ((triple10 ((((triple11) -> rule6)) -> rule3)) -> rule4) OR ((((triple11) -> rule2) ((((triple11) -> rule6)) -> rule3)) -> rule1) OR ((((triple11) -> rule2) ((((triple11) -> rule6)) -> rule3)) -> rule4))] @2: Erin is cold.[(((((triple5) -> rule6)) -> rule3))] @3: Erin is blue.[(((triple4 ((((triple5) -> rule6)) -> rule3)) -> rule5) OR ((((triple5) -> rule2) ((((triple5) -> rule6)) -> rule3)) -> rule5))] Erin is round.[(((triple4 ((((triple5) -> rule6)) -> rule3)) -> rule1) OR ((triple4 ((((triple5) -> rule6)) -> rule3)) -> rule4) OR ((((triple5) -> rule2) ((((triple5) -> rule6)) -> rule3)) -> rule1) OR ((((triple5) -> rule2) ((((triple5) -> rule6)) -> rule3)) -> rule4))]
Anne is furry.
("Anne" "is" "furry" "+")
triple1
Anne is smart.
("Anne" "is" "smart" "+")
triple2
Bob is round.
("Bob" "is" "round" "+")
triple3
Erin is red.
("Erin" "is" "red" "+")
triple4
((triple5) -> (rule2 % int1))
Erin is red.
("Erin" "is" "red" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
triple5
Erin is smart.
("Erin" "is" "smart" "+")
triple6
Fiona is blue.
("Fiona" "is" "blue" "+")
triple7
((triple10 triple8) -> (rule5 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
((triple10 ((triple9) -> (rule3 % int2))) -> (rule5 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
((((triple11) -> (rule2 % int2)) triple8) -> (rule5 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
((((triple11) -> (rule2 % int3)) ((triple9) -> (rule3 % int2))) -> (rule5 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
((triple10 ((((triple11) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
((((triple11) -> (rule2 % int4)) ((((triple11) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
int4
Fiona is cold.
("Fiona" "is" "cold" "+")
triple8
((triple9) -> (rule3 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
((((triple11) -> (rule6 % int2))) -> (rule3 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
triple9
((triple11) -> (rule6 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
triple10
((triple11) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
triple11
Fiona is smart.
("Fiona" "is" "smart" "+")
triple12
Anne is cold.
("Anne" "is" "cold" "+")
((triple1) -> (rule3 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
((triple5) -> (rule6 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
((triple10 triple8) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((triple10 triple8) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((triple10 ((triple9) -> (rule3 % int2))) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
((triple10 ((triple9) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
((((triple11) -> (rule2 % int2)) triple8) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
((((triple11) -> (rule2 % int2)) triple8) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
((((triple11) -> (rule2 % int3)) ((triple9) -> (rule3 % int2))) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
((((triple11) -> (rule2 % int3)) ((triple9) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
((triple10 ((((triple11) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
((triple10 ((((triple11) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
((((triple11) -> (rule2 % int4)) ((((triple11) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
int4
((((triple11) -> (rule2 % int4)) ((((triple11) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
int4
Erin is cold.
("Erin" "is" "cold" "+")
((((triple5) -> (rule6 % int2))) -> (rule3 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
int2
Erin is blue.
("Erin" "is" "blue" "+")
((triple4 ((((triple5) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Erin is blue.
("Erin" "is" "blue" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
((((triple5) -> (rule2 % int4)) ((((triple5) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Erin is blue.
("Erin" "is" "blue" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
Erin is red.
("Erin" "is" "red" "+")
int4
Erin is round.
("Erin" "is" "round" "+")
((triple4 ((((triple5) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
((triple4 ((((triple5) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
((((triple5) -> (rule2 % int4)) ((((triple5) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
Erin is red.
("Erin" "is" "red" "+")
int4
((((triple5) -> (rule2 % int4)) ((((triple5) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
Erin is red.
("Erin" "is" "red" "+")
int4