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