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