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