Charlie is big. Charlie is blue. Charlie is kind. Charlie is nice. Charlie is quiet. Charlie is white. Charlie is young. Gary is big. Gary is blue. Gary is kind. Gary is nice. Gary is quiet. Gary is white. Gary is young. If someone is kind then they are nice. All quiet people are nice. If someone is white and big then they are kind. Nice people are blue. If someone is nice then they are big. All nice, young people are blue. Young people are nice. Nice, quiet people are kind.
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is kind.
("Charlie" "is" "kind" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is quiet.
("Charlie" "is" "quiet" "+")
Charlie is white.
("Charlie" "is" "white" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Gary is big.
("Gary" "is" "big" "+")
Gary is blue.
("Gary" "is" "blue" "+")
Gary is kind.
("Gary" "is" "kind" "+")
Gary is nice.
("Gary" "is" "nice" "+")
Gary is quiet.
("Gary" "is" "quiet" "+")
Gary is white.
("Gary" "is" "white" "+")
Gary is young.
("Gary" "is" "young" "+")
If someone is kind then they are nice.
((("someone" "is" "kind" "+")) -> ("someone" "is" "nice" "+"))
All quiet people are nice.
((("someone" "is" "quiet" "+")) -> ("someone" "is" "nice" "+"))
If someone is white and big then they are kind.
((("someone" "is" "white" "+") ("someone" "is" "big" "+")) -> ("someone" "is" "kind" "+"))
Nice people are blue.
((("someone" "is" "nice" "+")) -> ("someone" "is" "blue" "+"))
If someone is nice then they are big.
((("someone" "is" "nice" "+")) -> ("someone" "is" "big" "+"))
All nice, young people are blue.
((("someone" "is" "nice" "+") ("someone" "is" "young" "+")) -> ("someone" "is" "blue" "+"))
Young people are nice.
((("someone" "is" "young" "+")) -> ("someone" "is" "nice" "+"))
Nice, quiet people are kind.
((("someone" "is" "nice" "+") ("someone" "is" "quiet" "+")) -> ("someone" "is" "kind" "+"))
Gary is big.
True
1
proof
[(triple8 OR ((triple11) -> rule5) OR ((((triple10) -> rule1)) -> rule5) OR ((((triple12) -> rule2)) -> rule5) OR ((((triple14) -> rule7)) -> rule5))]
("Gary" "is" "big" "+")
triple8
((triple11) -> (rule5 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
((((triple10) -> (rule1 % int2))) -> (rule5 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
((((triple12) -> (rule2 % int2))) -> (rule5 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
((((triple14) -> (rule7 % int2))) -> (rule5 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Gary is not young.
False
1
inv-proof
[(triple14)]
("Gary" "is" "young" "-")
triple14
@0: Charlie is big.[(triple1 OR ((triple4) -> rule5) OR ((((triple3) -> rule1)) -> rule5) OR ((((triple5) -> rule2)) -> rule5) OR ((((triple7) -> rule7)) -> rule5))] Charlie is blue.[(triple2 OR ((triple4) -> rule4) OR ((triple4 triple7) -> rule6) OR ((((triple3) -> rule1)) -> rule4) OR ((((triple5) -> rule2)) -> rule4) OR ((((triple7) -> rule7)) -> rule4) OR ((((triple3) -> rule1) triple7) -> rule6) OR ((((triple5) -> rule2) triple7) -> rule6) OR ((((triple7) -> rule7) triple7) -> rule6) OR ((((((triple6 triple1) -> rule3)) -> rule1)) -> rule4) OR ((((((triple6 triple1) -> rule3)) -> rule1) triple7) -> rule6))] Charlie is kind.[(triple3 OR ((triple4 triple5) -> rule8) OR ((triple6 triple1) -> rule3) OR ((triple6 ((triple4) -> rule5)) -> rule3) OR ((((triple5) -> rule2) triple5) -> rule8) OR ((((triple7) -> rule7) triple5) -> rule8) OR ((triple6 ((((triple5) -> rule2)) -> rule5)) -> rule3) OR ((triple6 ((((triple7) -> rule7)) -> rule5)) -> rule3))] Charlie is nice.[(triple4 OR ((triple3) -> rule1) OR ((triple5) -> rule2) OR ((triple7) -> rule7) OR ((((triple6 triple1) -> rule3)) -> rule1))] Charlie is quiet.[(triple5)] Charlie is white.[(triple6)] Charlie is young.[(triple7)] Gary is big.[(triple8 OR ((triple11) -> rule5) OR ((((triple10) -> rule1)) -> rule5) OR ((((triple12) -> rule2)) -> rule5) OR ((((triple14) -> rule7)) -> rule5))] Gary is blue.[(triple9 OR ((triple11) -> rule4) OR ((triple11 triple14) -> rule6) OR ((((triple10) -> rule1)) -> rule4) OR ((((triple12) -> rule2)) -> rule4) OR ((((triple14) -> rule7)) -> rule4) OR ((((triple10) -> rule1) triple14) -> rule6) OR ((((triple12) -> rule2) triple14) -> rule6) OR ((((triple14) -> rule7) triple14) -> rule6) OR ((((((triple13 triple8) -> rule3)) -> rule1)) -> rule4) OR ((((((triple13 triple8) -> rule3)) -> rule1) triple14) -> rule6))] Gary is kind.[(triple10 OR ((triple11 triple12) -> rule8) OR ((triple13 triple8) -> rule3) OR ((triple13 ((triple11) -> rule5)) -> rule3) OR ((((triple12) -> rule2) triple12) -> rule8) OR ((((triple14) -> rule7) triple12) -> rule8) OR ((triple13 ((((triple12) -> rule2)) -> rule5)) -> rule3) OR ((triple13 ((((triple14) -> rule7)) -> rule5)) -> rule3))] Gary is nice.[(triple11 OR ((triple10) -> rule1) OR ((triple12) -> rule2) OR ((triple14) -> rule7) OR ((((triple13 triple8) -> rule3)) -> rule1))] Gary is quiet.[(triple12)] Gary is white.[(triple13)] Gary is young.[(triple14)]
Charlie is big.
("Charlie" "is" "big" "+")
triple1
((triple4) -> (rule5 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
((((triple3) -> (rule1 % int2))) -> (rule5 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((triple5) -> (rule2 % int2))) -> (rule5 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((triple7) -> (rule7 % int2))) -> (rule5 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
triple2
((triple4) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
((triple4 triple7) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
((((triple3) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((triple5) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((triple7) -> (rule7 % int2))) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((triple3) -> (rule1 % int2)) triple7) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((triple5) -> (rule2 % int2)) triple7) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((triple7) -> (rule7 % int2)) triple7) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((((triple6 triple1) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((((triple6 triple1) -> (rule3 % int3))) -> (rule1 % int2)) triple7) -> (rule6 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is kind.
("Charlie" "is" "kind" "+")
triple3
((triple4 triple5) -> (rule8 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
((triple6 triple1) -> (rule3 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
((triple6 ((triple4) -> (rule5 % int2))) -> (rule3 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
((((triple5) -> (rule2 % int2)) triple5) -> (rule8 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((triple7) -> (rule7 % int2)) triple5) -> (rule8 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((triple6 ((((triple5) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
((triple6 ((((triple7) -> (rule7 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
Charlie is nice.
("Charlie" "is" "nice" "+")
triple4
((triple3) -> (rule1 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((triple5) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((triple7) -> (rule7 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((((triple6 triple1) -> (rule3 % int2))) -> (rule1 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is quiet.
("Charlie" "is" "quiet" "+")
triple5
Charlie is white.
("Charlie" "is" "white" "+")
triple6
Charlie is young.
("Charlie" "is" "young" "+")
triple7
Gary is big.
("Gary" "is" "big" "+")
triple8
((triple11) -> (rule5 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
((((triple10) -> (rule1 % int2))) -> (rule5 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
((((triple12) -> (rule2 % int2))) -> (rule5 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
((((triple14) -> (rule7 % int2))) -> (rule5 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
triple9
((triple11) -> (rule4 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
((triple11 triple14) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
((((triple10) -> (rule1 % int2))) -> (rule4 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
((((triple12) -> (rule2 % int2))) -> (rule4 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
((((triple14) -> (rule7 % int2))) -> (rule4 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
((((triple10) -> (rule1 % int2)) triple14) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
((((triple12) -> (rule2 % int2)) triple14) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
((((triple14) -> (rule7 % int2)) triple14) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
((((((triple13 triple8) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Gary is kind.
("Gary" "is" "kind" "+")
int3
((((((triple13 triple8) -> (rule3 % int3))) -> (rule1 % int2)) triple14) -> (rule6 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Gary is kind.
("Gary" "is" "kind" "+")
int3
Gary is kind.
("Gary" "is" "kind" "+")
triple10
((triple11 triple12) -> (rule8 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
((triple13 triple8) -> (rule3 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
((triple13 ((triple11) -> (rule5 % int2))) -> (rule3 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
((((triple12) -> (rule2 % int2)) triple12) -> (rule8 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
((((triple14) -> (rule7 % int2)) triple12) -> (rule8 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
((triple13 ((((triple12) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is nice.
("Gary" "is" "nice" "+")
int3
((triple13 ((((triple14) -> (rule7 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is nice.
("Gary" "is" "nice" "+")
int3
Gary is nice.
("Gary" "is" "nice" "+")
triple11
((triple10) -> (rule1 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
((triple12) -> (rule2 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
((triple14) -> (rule7 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
((((triple13 triple8) -> (rule3 % int2))) -> (rule1 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is kind.
("Gary" "is" "kind" "+")
int2
Gary is quiet.
("Gary" "is" "quiet" "+")
triple12
Gary is white.
("Gary" "is" "white" "+")
triple13
Gary is young.
("Gary" "is" "young" "+")
triple14