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