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