Charlie is blue. Charlie is quiet. Charlie is red. Gary is big. Gary is blue. Gary is white. Gary is young. All quiet people are kind. All kind, quiet people are young. All blue people are red. Red, young people are big. If someone is white then they are blue. All young, white people are blue. If Charlie is kind then Charlie is quiet. Big people are kind.
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is quiet.
("Charlie" "is" "quiet" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Gary is big.
("Gary" "is" "big" "+")
Gary is blue.
("Gary" "is" "blue" "+")
Gary is white.
("Gary" "is" "white" "+")
Gary is young.
("Gary" "is" "young" "+")
All quiet people are kind.
((("someone" "is" "quiet" "+")) -> ("someone" "is" "kind" "+"))
All kind, quiet people are young.
((("someone" "is" "kind" "+") ("someone" "is" "quiet" "+")) -> ("someone" "is" "young" "+"))
All blue people are red.
((("someone" "is" "blue" "+")) -> ("someone" "is" "red" "+"))
Red, young people are big.
((("someone" "is" "red" "+") ("someone" "is" "young" "+")) -> ("someone" "is" "big" "+"))
If someone is white then they are blue.
((("someone" "is" "white" "+")) -> ("someone" "is" "blue" "+"))
All young, white people are blue.
((("someone" "is" "young" "+") ("someone" "is" "white" "+")) -> ("someone" "is" "blue" "+"))
If Charlie is kind then Charlie is quiet.
((("Charlie" "is" "kind" "+")) -> ("Charlie" "is" "quiet" "+"))
Big people are kind.
((("someone" "is" "big" "+")) -> ("someone" "is" "kind" "+"))
Gary is blue.
True
1
proof
[(triple5 OR ((triple6) -> rule5) OR ((triple7 triple6) -> rule6))]
("Gary" "is" "blue" "+")
triple5
((triple6) -> (rule5 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
((triple7 triple6) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is not big.
False
1
inv-proof
[(triple4 OR ((((triple5) -> rule3) triple7) -> rule4) OR ((((((triple6) -> rule5)) -> rule3) triple7) -> rule4) OR ((((((triple7 triple6) -> rule6)) -> rule3) triple7) -> rule4))]
("Gary" "is" "big" "-")
triple4
((((triple5) -> (rule3 % int2)) triple7) -> (rule4 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
((((((triple6) -> (rule5 % int3))) -> (rule3 % int2)) triple7) -> (rule4 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
int3
((((((triple7 triple6) -> (rule6 % int3))) -> (rule3 % int2)) triple7) -> (rule4 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
int3
Charlie is kind.
True
2
proof
[(((triple2) -> rule1))]
("Charlie" "is" "kind" "+")
((triple2) -> (rule1 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is not kind.
False
2
inv-proof
[(((triple2) -> rule1))]
("Charlie" "is" "kind" "-")
((triple2) -> (rule1 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is young.
True
4
proof
[(((((triple2) -> rule1) triple2) -> rule2))]
("Charlie" "is" "young" "+")
((((triple2) -> (rule1 % int2)) triple2) -> (rule2 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is not young.
False
4
inv-proof
[(((((triple2) -> rule1) triple2) -> rule2))]
("Charlie" "is" "young" "-")
((((triple2) -> (rule1 % int2)) triple2) -> (rule2 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is big.
True
6
proof
[(((triple3 ((((triple2) -> rule1) triple2) -> rule2)) -> rule4) OR ((((triple1) -> rule3) ((((triple2) -> rule1) triple2) -> rule2)) -> rule4))]
("Charlie" "is" "big" "+")
((triple3 ((((triple2) -> (rule1 % int3)) triple2) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((triple1) -> (rule3 % int4)) ((((triple2) -> (rule1 % int3)) triple2) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
int4
Charlie is not big.
False
6
inv-proof
[(((triple3 ((((triple2) -> rule1) triple2) -> rule2)) -> rule4) OR ((((triple1) -> rule3) ((((triple2) -> rule1) triple2) -> rule2)) -> rule4))]
("Charlie" "is" "big" "-")
((triple3 ((((triple2) -> (rule1 % int3)) triple2) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((triple1) -> (rule3 % int4)) ((((triple2) -> (rule1 % int3)) triple2) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
int4
Charlie is not white.
Unknown
inv-random
[@0: Charlie is white.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "white" "-")
Gary is quiet.
Unknown
random
[@0: Gary is quiet.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "quiet" "+")
@0: Charlie is blue.[(triple1)] Charlie is quiet.[(triple2)] Charlie is red.[(triple3 OR ((triple1) -> rule3))] Gary is big.[(triple4 OR ((((triple5) -> rule3) triple7) -> rule4) OR ((((((triple6) -> rule5)) -> rule3) triple7) -> rule4) OR ((((((triple7 triple6) -> rule6)) -> rule3) triple7) -> rule4))] Gary is blue.[(triple5 OR ((triple6) -> rule5) OR ((triple7 triple6) -> rule6))] Gary is white.[(triple6)] Gary is young.[(triple7)] @1: Charlie is kind.[(((triple2) -> rule1))] Gary is kind.[(((triple4) -> rule8) OR ((((((triple5) -> rule3) triple7) -> rule4)) -> rule8) OR ((((((((triple6) -> rule5)) -> rule3) triple7) -> rule4)) -> rule8) OR ((((((((triple7 triple6) -> rule6)) -> rule3) triple7) -> rule4)) -> rule8))] Gary is red.[(((triple5) -> rule3) OR ((((triple6) -> rule5)) -> rule3) OR ((((triple7 triple6) -> rule6)) -> rule3))] @2: Charlie is young.[(((((triple2) -> rule1) triple2) -> rule2))] @3: Charlie is big.[(((triple3 ((((triple2) -> rule1) triple2) -> rule2)) -> rule4) OR ((((triple1) -> rule3) ((((triple2) -> rule1) triple2) -> rule2)) -> rule4))]
Charlie is blue.
("Charlie" "is" "blue" "+")
triple1
Charlie is quiet.
("Charlie" "is" "quiet" "+")
triple2
Charlie is red.
("Charlie" "is" "red" "+")
triple3
((triple1) -> (rule3 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
triple4
((((triple5) -> (rule3 % int2)) triple7) -> (rule4 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
((((((triple6) -> (rule5 % int3))) -> (rule3 % int2)) triple7) -> (rule4 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
int3
((((((triple7 triple6) -> (rule6 % int3))) -> (rule3 % int2)) triple7) -> (rule4 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
int3
Gary is blue.
("Gary" "is" "blue" "+")
triple5
((triple6) -> (rule5 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
((triple7 triple6) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is white.
("Gary" "is" "white" "+")
triple6
Gary is young.
("Gary" "is" "young" "+")
triple7
Charlie is kind.
("Charlie" "is" "kind" "+")
((triple2) -> (rule1 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Gary is kind.
("Gary" "is" "kind" "+")
((triple4) -> (rule8 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
((((((triple5) -> (rule3 % int3)) triple7) -> (rule4 % int2))) -> (rule8 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
((((((((triple6) -> (rule5 % int4))) -> (rule3 % int3)) triple7) -> (rule4 % int2))) -> (rule8 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
Gary is blue.
("Gary" "is" "blue" "+")
int4
((((((((triple7 triple6) -> (rule6 % int4))) -> (rule3 % int3)) triple7) -> (rule4 % int2))) -> (rule8 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
Gary is blue.
("Gary" "is" "blue" "+")
int4
Gary is red.
("Gary" "is" "red" "+")
((triple5) -> (rule3 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
((((triple6) -> (rule5 % int2))) -> (rule3 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
((((triple7 triple6) -> (rule6 % int2))) -> (rule3 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Charlie is young.
("Charlie" "is" "young" "+")
((((triple2) -> (rule1 % int2)) triple2) -> (rule2 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
((triple3 ((((triple2) -> (rule1 % int3)) triple2) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((triple1) -> (rule3 % int4)) ((((triple2) -> (rule1 % int3)) triple2) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
int4