Bob is big. Bob is cold. Bob is round. Charlie is cold. Charlie is green. Fiona is round. Gary is red. Round things are white. All red, kind things are white. If something is white and kind then it is big. All white, cold things are red. If something is white then it is cold. If Charlie is white then Charlie is round. Round, red things are kind. If something is round and not white then it is green. If something is red then it is green.
Bob is big.
("Bob" "is" "big" "+")
Bob is cold.
("Bob" "is" "cold" "+")
Bob is round.
("Bob" "is" "round" "+")
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is green.
("Charlie" "is" "green" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Gary is red.
("Gary" "is" "red" "+")
Round things are white.
((("something" "is" "round" "+")) -> ("something" "is" "white" "+"))
All red, kind things are white.
((("something" "is" "red" "+") ("something" "is" "kind" "+")) -> ("something" "is" "white" "+"))
If something is white and kind then it is big.
((("something" "is" "white" "+") ("something" "is" "kind" "+")) -> ("something" "is" "big" "+"))
All white, cold things are red.
((("something" "is" "white" "+") ("something" "is" "cold" "+")) -> ("something" "is" "red" "+"))
If something is white then it is cold.
((("something" "is" "white" "+")) -> ("something" "is" "cold" "+"))
If Charlie is white then Charlie is round.
((("Charlie" "is" "white" "+")) -> ("Charlie" "is" "round" "+"))
Round, red things are kind.
((("something" "is" "round" "+") ("something" "is" "red" "+")) -> ("something" "is" "kind" "+"))
If something is round and not white then it is green.
((("something" "is" "round" "+") ("something" "is" "white" "~")) -> ("something" "is" "green" "+"))
If something is red then it is green.
((("something" "is" "red" "+")) -> ("something" "is" "green" "+"))
Charlie is green.
True
1
proof
[(triple5)]
("Charlie" "is" "green" "+")
triple5
Fiona is not round.
False
1
inv-proof
[(triple6)]
("Fiona" "is" "round" "-")
triple6
Fiona is white.
True
2
proof
[(((triple6) -> rule1))]
("Fiona" "is" "white" "+")
((triple6) -> (rule1 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Gary is not green.
False
2
inv-proof
[(((triple7) -> rule9))]
("Gary" "is" "green" "-")
((triple7) -> (rule9 % int1))
Gary is green.
("Gary" "is" "green" "+")
int1
Fiona is cold.
True
3
proof
[(((((triple6) -> rule1)) -> rule5))]
("Fiona" "is" "cold" "+")
((((triple6) -> (rule1 % int2))) -> (rule5 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
Bob is not red.
False
4
inv-proof
[(((((triple3) -> rule1) triple2) -> rule4) OR ((((triple3) -> rule1) ((((triple3) -> rule1)) -> rule5)) -> rule4))]
("Bob" "is" "red" "-")
((((triple3) -> (rule1 % int2)) triple2) -> (rule4 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
((((triple3) -> (rule1 % int3)) ((((triple3) -> (rule1 % int3))) -> (rule5 % int2))) -> (rule4 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
Fiona is red.
True
6
proof
[(((((triple6) -> rule1) ((((triple6) -> rule1)) -> rule5)) -> rule4))]
("Fiona" "is" "red" "+")
((((triple6) -> (rule1 % int3)) ((((triple6) -> (rule1 % int3))) -> (rule5 % int2))) -> (rule4 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is white.
("Fiona" "is" "white" "+")
int3
Fiona is not red.
False
6
inv-proof
[(((((triple6) -> rule1) ((((triple6) -> rule1)) -> rule5)) -> rule4))]
("Fiona" "is" "red" "-")
((((triple6) -> (rule1 % int3)) ((((triple6) -> (rule1 % int3))) -> (rule5 % int2))) -> (rule4 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is white.
("Fiona" "is" "white" "+")
int3
Fiona is kind.
True
8
proof
[(((triple6 ((((triple6) -> rule1) ((((triple6) -> rule1)) -> rule5)) -> rule4)) -> rule7))]
("Fiona" "is" "kind" "+")
((triple6 ((((triple6) -> (rule1 % int4)) ((((triple6) -> (rule1 % int4))) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Fiona is white.
("Fiona" "is" "white" "+")
int4
Fiona is not green.
False
7
inv-proof
[(((((((triple6) -> rule1) ((((triple6) -> rule1)) -> rule5)) -> rule4)) -> rule9))]
("Fiona" "is" "green" "-")
((((((triple6) -> (rule1 % int4)) ((((triple6) -> (rule1 % int4))) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule9 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Fiona is white.
("Fiona" "is" "white" "+")
int4
Fiona is big.
True
11
proof
[(((((triple6) -> rule1) ((triple6 ((((triple6) -> rule1) ((((triple6) -> rule1)) -> rule5)) -> rule4)) -> rule7)) -> rule3))]
("Fiona" "is" "big" "+")
((((triple6) -> (rule1 % int5)) ((triple6 ((((triple6) -> (rule1 % int5)) ((((triple6) -> (rule1 % int5))) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
Fiona is cold.
("Fiona" "is" "cold" "+")
int4
Fiona is white.
("Fiona" "is" "white" "+")
int5
Fiona is not big.
False
11
inv-proof
[(((((triple6) -> rule1) ((triple6 ((((triple6) -> rule1) ((((triple6) -> rule1)) -> rule5)) -> rule4)) -> rule7)) -> rule3))]
("Fiona" "is" "big" "-")
((((triple6) -> (rule1 % int5)) ((triple6 ((((triple6) -> (rule1 % int5)) ((((triple6) -> (rule1 % int5))) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
Fiona is cold.
("Fiona" "is" "cold" "+")
int4
Fiona is white.
("Fiona" "is" "white" "+")
int5
Charlie is not kind.
Unknown
inv-rconc
[@3: Charlie is kind.[CWA. Example of deepest failure = (rule7 <- rule6 <- rule1 <- FAIL)]]
("Charlie" "is" "kind" "-")
Gary is kind.
Unknown
rconc
[@1: Gary is kind.[CWA. Example of deepest failure = (rule7 <- FAIL)]]
("Gary" "is" "kind" "+")
Charlie is not white.
Unknown
inv-rconc
[@4: Charlie is white.[CWA. Example of deepest failure = (rule1 <- rule6 <- rule2 <- rule4 <- FAIL)]]
("Charlie" "is" "white" "-")
Charlie is red.
Unknown
rconc
[@4: Charlie is red.[CWA. Example of deepest failure = (rule4 <- rule1 <- rule6 <- rule2 <- FAIL)]]
("Charlie" "is" "red" "+")
Charlie is not round.
Unknown
inv-rconc
[@3: Charlie is round.[CWA. Example of deepest failure = (rule6 <- rule2 <- rule7 <- FAIL)]]
("Charlie" "is" "round" "-")
Gary is white.
Unknown
rconc
[@2: Gary is white.[CWA. Example of deepest failure = (rule2 <- rule7 <- FAIL)]]
("Gary" "is" "white" "+")
@0: Bob is big.[(triple1 OR ((((triple3) -> rule1) ((triple3 ((((triple3) -> rule1) triple2) -> rule4)) -> rule7)) -> rule3) OR ((((triple3) -> rule1) ((triple3 ((((triple3) -> rule1) ((((triple3) -> rule1)) -> rule5)) -> rule4)) -> rule7)) -> rule3))] Bob is cold.[(triple2 OR ((((triple3) -> rule1)) -> rule5))] Bob is round.[(triple3)] Charlie is cold.[(triple4)] Charlie is green.[(triple5)] Fiona is round.[(triple6)] Gary is red.[(triple7)] @1: Bob is white.[(((triple3) -> rule1))] Fiona is white.[(((triple6) -> rule1))] Gary is green.[(((triple7) -> rule9))] @2: Bob is red.[(((((triple3) -> rule1) triple2) -> rule4) OR ((((triple3) -> rule1) ((((triple3) -> rule1)) -> rule5)) -> rule4))] Fiona is cold.[(((((triple6) -> rule1)) -> rule5))] @3: Bob is green.[(((((((triple3) -> rule1) triple2) -> rule4)) -> rule9) OR ((((((triple3) -> rule1) ((((triple3) -> rule1)) -> rule5)) -> rule4)) -> rule9))] Bob is kind.[(((triple3 ((((triple3) -> rule1) triple2) -> rule4)) -> rule7) OR ((triple3 ((((triple3) -> rule1) ((((triple3) -> rule1)) -> rule5)) -> rule4)) -> rule7))] Fiona is red.[(((((triple6) -> rule1) ((((triple6) -> rule1)) -> rule5)) -> rule4))] @4: Fiona is green.[(((((((triple6) -> rule1) ((((triple6) -> rule1)) -> rule5)) -> rule4)) -> rule9))] Fiona is kind.[(((triple6 ((((triple6) -> rule1) ((((triple6) -> rule1)) -> rule5)) -> rule4)) -> rule7))] @5: Fiona is big.[(((((triple6) -> rule1) ((triple6 ((((triple6) -> rule1) ((((triple6) -> rule1)) -> rule5)) -> rule4)) -> rule7)) -> rule3))]
Bob is big.
("Bob" "is" "big" "+")
triple1
((((triple3) -> (rule1 % int4)) ((triple3 ((((triple3) -> (rule1 % int4)) triple2) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule3 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Bob is white.
("Bob" "is" "white" "+")
int4
((((triple3) -> (rule1 % int5)) ((triple3 ((((triple3) -> (rule1 % int5)) ((((triple3) -> (rule1 % int5))) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule3 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Bob is cold.
("Bob" "is" "cold" "+")
int4
Bob is white.
("Bob" "is" "white" "+")
int5
Bob is cold.
("Bob" "is" "cold" "+")
triple2
((((triple3) -> (rule1 % int2))) -> (rule5 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
triple3
Charlie is cold.
("Charlie" "is" "cold" "+")
triple4
Charlie is green.
("Charlie" "is" "green" "+")
triple5
Fiona is round.
("Fiona" "is" "round" "+")
triple6
Gary is red.
("Gary" "is" "red" "+")
triple7
Bob is white.
("Bob" "is" "white" "+")
((triple3) -> (rule1 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
((triple6) -> (rule1 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Gary is green.
("Gary" "is" "green" "+")
((triple7) -> (rule9 % int1))
Gary is green.
("Gary" "is" "green" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
((((triple3) -> (rule1 % int2)) triple2) -> (rule4 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
((((triple3) -> (rule1 % int3)) ((((triple3) -> (rule1 % int3))) -> (rule5 % int2))) -> (rule4 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
Fiona is cold.
("Fiona" "is" "cold" "+")
((((triple6) -> (rule1 % int2))) -> (rule5 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
((((((triple3) -> (rule1 % int3)) triple2) -> (rule4 % int2))) -> (rule9 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
((((((triple3) -> (rule1 % int4)) ((((triple3) -> (rule1 % int4))) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule9 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is white.
("Bob" "is" "white" "+")
int4
Bob is kind.
("Bob" "is" "kind" "+")
((triple3 ((((triple3) -> (rule1 % int3)) triple2) -> (rule4 % int2))) -> (rule7 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
((triple3 ((((triple3) -> (rule1 % int4)) ((((triple3) -> (rule1 % int4))) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is white.
("Bob" "is" "white" "+")
int4
Fiona is red.
("Fiona" "is" "red" "+")
((((triple6) -> (rule1 % int3)) ((((triple6) -> (rule1 % int3))) -> (rule5 % int2))) -> (rule4 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is white.
("Fiona" "is" "white" "+")
int3
Fiona is green.
("Fiona" "is" "green" "+")
((((((triple6) -> (rule1 % int4)) ((((triple6) -> (rule1 % int4))) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule9 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Fiona is white.
("Fiona" "is" "white" "+")
int4
Fiona is kind.
("Fiona" "is" "kind" "+")
((triple6 ((((triple6) -> (rule1 % int4)) ((((triple6) -> (rule1 % int4))) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3
Fiona is white.
("Fiona" "is" "white" "+")
int4
Fiona is big.
("Fiona" "is" "big" "+")
((((triple6) -> (rule1 % int5)) ((triple6 ((((triple6) -> (rule1 % int5)) ((((triple6) -> (rule1 % int5))) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
Fiona is cold.
("Fiona" "is" "cold" "+")
int4
Fiona is white.
("Fiona" "is" "white" "+")
int5