Charlie is green. Charlie is nice. Charlie is red. Charlie is round. Fiona is nice. Gary is cold. Gary is white. Harry is nice. Harry is red. Harry is white. If something is nice then it is cold. Big things are round. Green, cold things are big. If Gary is red and Gary is green then Gary is nice. If something is round then it is red. White things are green.
Charlie is green.
("Charlie" "is" "green" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Charlie is round.
("Charlie" "is" "round" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Gary is cold.
("Gary" "is" "cold" "+")
Gary is white.
("Gary" "is" "white" "+")
Harry is nice.
("Harry" "is" "nice" "+")
Harry is red.
("Harry" "is" "red" "+")
Harry is white.
("Harry" "is" "white" "+")
If something is nice then it is cold.
((("something" "is" "nice" "+")) -> ("something" "is" "cold" "+"))
Big things are round.
((("something" "is" "big" "+")) -> ("something" "is" "round" "+"))
Green, cold things are big.
((("something" "is" "green" "+") ("something" "is" "cold" "+")) -> ("something" "is" "big" "+"))
If Gary is red and Gary is green then Gary is nice.
((("Gary" "is" "red" "+") ("Gary" "is" "green" "+")) -> ("Gary" "is" "nice" "+"))
If something is round then it is red.
((("something" "is" "round" "+")) -> ("something" "is" "red" "+"))
White things are green.
((("something" "is" "white" "+")) -> ("something" "is" "green" "+"))
Charlie is green.
True
1
proof
[(triple1)]
("Charlie" "is" "green" "+")
triple1
Harry is not white.
False
1
inv-proof
[(triple10)]
("Harry" "is" "white" "-")
triple10
Fiona is cold.
True
2
proof
[(((triple5) -> rule1))]
("Fiona" "is" "cold" "+")
((triple5) -> (rule1 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Charlie is not cold.
False
2
inv-proof
[(((triple2) -> rule1))]
("Charlie" "is" "cold" "-")
((triple2) -> (rule1 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Gary is big.
True
4
proof
[(((((triple7) -> rule6) triple6) -> rule3))]
("Gary" "is" "big" "+")
((((triple7) -> (rule6 % int2)) triple6) -> (rule3 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is green.
("Gary" "is" "green" "+")
int2
Harry is not big.
False
5
inv-proof
[(((((triple10) -> rule6) ((triple8) -> rule1)) -> rule3))]
("Harry" "is" "big" "-")
((((triple10) -> (rule6 % int3)) ((triple8) -> (rule1 % int2))) -> (rule3 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Gary is round.
True
5
proof
[(((((((triple7) -> rule6) triple6) -> rule3)) -> rule2))]
("Gary" "is" "round" "+")
((((((triple7) -> (rule6 % int3)) triple6) -> (rule3 % int2))) -> (rule2 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is green.
("Gary" "is" "green" "+")
int3
Gary is not round.
False
5
inv-proof
[(((((((triple7) -> rule6) triple6) -> rule3)) -> rule2))]
("Gary" "is" "round" "-")
((((((triple7) -> (rule6 % int3)) triple6) -> (rule3 % int2))) -> (rule2 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is green.
("Gary" "is" "green" "+")
int3
Gary is red.
True
6
proof
[(((((((((triple7) -> rule6) triple6) -> rule3)) -> rule2)) -> rule5))]
("Gary" "is" "red" "+")
((((((((triple7) -> (rule6 % int4)) triple6) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule5 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is big.
("Gary" "is" "big" "+")
int3
Gary is green.
("Gary" "is" "green" "+")
int4
Gary is not red.
False
6
inv-proof
[(((((((((triple7) -> rule6) triple6) -> rule3)) -> rule2)) -> rule5))]
("Gary" "is" "red" "-")
((((((((triple7) -> (rule6 % int4)) triple6) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule5 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is big.
("Gary" "is" "big" "+")
int3
Gary is green.
("Gary" "is" "green" "+")
int4
Gary is nice.
True
9
proof
[(((((((((((triple7) -> rule6) triple6) -> rule3)) -> rule2)) -> rule5) ((triple7) -> rule6)) -> rule4))]
("Gary" "is" "nice" "+")
((((((((((triple7) -> (rule6 % int5)) triple6) -> (rule3 % int4))) -> (rule2 % int3))) -> (rule5 % int2)) ((triple7) -> (rule6 % int5))) -> (rule4 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
Gary is green.
("Gary" "is" "green" "+")
int5
Gary is not nice.
False
9
inv-proof
[(((((((((((triple7) -> rule6) triple6) -> rule3)) -> rule2)) -> rule5) ((triple7) -> rule6)) -> rule4))]
("Gary" "is" "nice" "-")
((((((((((triple7) -> (rule6 % int5)) triple6) -> (rule3 % int4))) -> (rule2 % int3))) -> (rule5 % int2)) ((triple7) -> (rule6 % int5))) -> (rule4 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
Gary is green.
("Gary" "is" "green" "+")
int5
Fiona is not red.
Unknown
inv-rconc
[@4: Fiona is red.[CWA. Example of deepest failure = (rule5 <- rule2 <- rule3 <- rule6 <- FAIL)]]
("Fiona" "is" "red" "-")
Fiona is round.
Unknown
rconc
[@3: Fiona is round.[CWA. Example of deepest failure = (rule2 <- rule3 <- rule6 <- FAIL)]]
("Fiona" "is" "round" "+")
Fiona is not big.
Unknown
inv-rconc
[@2: Fiona is big.[CWA. Example of deepest failure = (rule3 <- rule6 <- FAIL)]]
("Fiona" "is" "big" "-")
Fiona is green.
Unknown
rconc
[@1: Fiona is green.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Fiona" "is" "green" "+")
Fiona is not white.
Unknown
inv-random
[@0: Fiona is white.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "white" "-")
Charlie is white.
Unknown
random
[@0: Charlie is white.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "white" "+")
@0: Charlie is green.[(triple1)] Charlie is nice.[(triple2)] Charlie is red.[(triple3 OR ((triple4) -> rule5) OR ((((((triple1 ((triple2) -> rule1)) -> rule3)) -> rule2)) -> rule5))] Charlie is round.[(triple4 OR ((((triple1 ((triple2) -> rule1)) -> rule3)) -> rule2))] Fiona is nice.[(triple5)] Gary is cold.[(triple6)] Gary is white.[(triple7)] Harry is nice.[(triple8)] Harry is red.[(triple9 OR ((((((((triple10) -> rule6) ((triple8) -> rule1)) -> rule3)) -> rule2)) -> rule5))] Harry is white.[(triple10)] @1: Charlie is cold.[(((triple2) -> rule1))] Fiona is cold.[(((triple5) -> rule1))] Gary is green.[(((triple7) -> rule6))] Harry is cold.[(((triple8) -> rule1))] Harry is green.[(((triple10) -> rule6))] @2: Charlie is big.[(((triple1 ((triple2) -> rule1)) -> rule3))] Gary is big.[(((((triple7) -> rule6) triple6) -> rule3))] Harry is big.[(((((triple10) -> rule6) ((triple8) -> rule1)) -> rule3))] @3: Gary is round.[(((((((triple7) -> rule6) triple6) -> rule3)) -> rule2))] Harry is round.[(((((((triple10) -> rule6) ((triple8) -> rule1)) -> rule3)) -> rule2))] @4: Gary is red.[(((((((((triple7) -> rule6) triple6) -> rule3)) -> rule2)) -> rule5))] @5: Gary is nice.[(((((((((((triple7) -> rule6) triple6) -> rule3)) -> rule2)) -> rule5) ((triple7) -> rule6)) -> rule4))]
Charlie is green.
("Charlie" "is" "green" "+")
triple1
Charlie is nice.
("Charlie" "is" "nice" "+")
triple2
Charlie is red.
("Charlie" "is" "red" "+")
triple3
((triple4) -> (rule5 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
((((((triple1 ((triple2) -> (rule1 % int4))) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule5 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
int4
Charlie is round.
("Charlie" "is" "round" "+")
triple4
((((triple1 ((triple2) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule2 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is cold.
("Charlie" "is" "cold" "+")
int3
Fiona is nice.
("Fiona" "is" "nice" "+")
triple5
Gary is cold.
("Gary" "is" "cold" "+")
triple6
Gary is white.
("Gary" "is" "white" "+")
triple7
Harry is nice.
("Harry" "is" "nice" "+")
triple8
Harry is red.
("Harry" "is" "red" "+")
triple9
((((((((triple10) -> (rule6 % int5)) ((triple8) -> (rule1 % int4))) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule5 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is big.
("Harry" "is" "big" "+")
int3
Harry is cold.
("Harry" "is" "cold" "+")
int4
Harry is green.
("Harry" "is" "green" "+")
int5
Harry is white.
("Harry" "is" "white" "+")
triple10
Charlie is cold.
("Charlie" "is" "cold" "+")
((triple2) -> (rule1 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
((triple5) -> (rule1 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Gary is green.
("Gary" "is" "green" "+")
((triple7) -> (rule6 % int1))
Gary is green.
("Gary" "is" "green" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
((triple8) -> (rule1 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
((triple10) -> (rule6 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
((triple1 ((triple2) -> (rule1 % int2))) -> (rule3 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
Gary is big.
("Gary" "is" "big" "+")
((((triple7) -> (rule6 % int2)) triple6) -> (rule3 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is green.
("Gary" "is" "green" "+")
int2
Harry is big.
("Harry" "is" "big" "+")
((((triple10) -> (rule6 % int3)) ((triple8) -> (rule1 % int2))) -> (rule3 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Gary is round.
("Gary" "is" "round" "+")
((((((triple7) -> (rule6 % int3)) triple6) -> (rule3 % int2))) -> (rule2 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is green.
("Gary" "is" "green" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
((((((triple10) -> (rule6 % int4)) ((triple8) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule2 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is cold.
("Harry" "is" "cold" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
int4
Gary is red.
("Gary" "is" "red" "+")
((((((((triple7) -> (rule6 % int4)) triple6) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule5 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is big.
("Gary" "is" "big" "+")
int3
Gary is green.
("Gary" "is" "green" "+")
int4
Gary is nice.
("Gary" "is" "nice" "+")
((((((((((triple7) -> (rule6 % int5)) triple6) -> (rule3 % int4))) -> (rule2 % int3))) -> (rule5 % int2)) ((triple7) -> (rule6 % int5))) -> (rule4 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
Gary is green.
("Gary" "is" "green" "+")
int5