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