Charlie is big. Charlie is blue. Charlie is furry. Charlie is nice. Charlie is quiet. Charlie is round. Charlie is young. If someone is young and round then they are blue. Nice, quiet people are big. If Charlie is big then Charlie is nice. Nice people are furry. If someone is nice and quiet then they are blue. Quiet, round people are furry. If Charlie is nice then Charlie is round. If someone is round and blue then they are young.
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is quiet.
("Charlie" "is" "quiet" "+")
Charlie is round.
("Charlie" "is" "round" "+")
Charlie is young.
("Charlie" "is" "young" "+")
If someone is young and round then they are blue.
((("someone" "is" "young" "+") ("someone" "is" "round" "+")) -> ("someone" "is" "blue" "+"))
Nice, quiet people are big.
((("someone" "is" "nice" "+") ("someone" "is" "quiet" "+")) -> ("someone" "is" "big" "+"))
If Charlie is big then Charlie is nice.
((("Charlie" "is" "big" "+")) -> ("Charlie" "is" "nice" "+"))
Nice people are furry.
((("someone" "is" "nice" "+")) -> ("someone" "is" "furry" "+"))
If someone is nice and quiet then they are blue.
((("someone" "is" "nice" "+") ("someone" "is" "quiet" "+")) -> ("someone" "is" "blue" "+"))
Quiet, round people are furry.
((("someone" "is" "quiet" "+") ("someone" "is" "round" "+")) -> ("someone" "is" "furry" "+"))
If Charlie is nice then Charlie is round.
((("Charlie" "is" "nice" "+")) -> ("Charlie" "is" "round" "+"))
If someone is round and blue then they are young.
((("someone" "is" "round" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "young" "+"))
Charlie is furry.
True
1
proof
[(triple3 OR ((triple4) -> rule4) OR ((triple5 triple6) -> rule6) OR ((((triple1) -> rule3)) -> rule4) OR ((triple5 ((triple4) -> rule7)) -> rule6) OR ((triple5 ((((triple1) -> rule3)) -> rule7)) -> rule6))]
("Charlie" "is" "furry" "+")
triple3
((triple4) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((triple5 triple6) -> (rule6 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((((triple1) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((triple5 ((triple4) -> (rule7 % int2))) -> (rule6 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((triple5 ((((triple1) -> (rule3 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
Charlie is not nice.
False
1
inv-proof
[(triple4 OR ((triple1) -> rule3))]
("Charlie" "is" "nice" "-")
triple4
((triple1) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
@0: Charlie is big.[(triple1 OR ((triple4 triple5) -> rule2))] Charlie is blue.[(triple2 OR ((triple4 triple5) -> rule5) OR ((triple7 triple6) -> rule1) OR ((triple7 ((triple4) -> rule7)) -> rule1) OR ((((triple1) -> rule3) triple5) -> rule5) OR ((triple7 ((((triple1) -> rule3)) -> rule7)) -> rule1))] Charlie is furry.[(triple3 OR ((triple4) -> rule4) OR ((triple5 triple6) -> rule6) OR ((((triple1) -> rule3)) -> rule4) OR ((triple5 ((triple4) -> rule7)) -> rule6) OR ((triple5 ((((triple1) -> rule3)) -> rule7)) -> rule6))] Charlie is nice.[(triple4 OR ((triple1) -> rule3))] Charlie is quiet.[(triple5)] Charlie is round.[(triple6 OR ((triple4) -> rule7) OR ((((triple1) -> rule3)) -> rule7))] Charlie is young.[(triple7 OR ((triple6 triple2) -> rule8) OR ((triple6 ((triple4 triple5) -> rule5)) -> rule8) OR ((((triple4) -> rule7) triple2) -> rule8) OR ((((triple4) -> rule7) ((triple4 triple5) -> rule5)) -> rule8) OR ((triple6 ((((triple1) -> rule3) triple5) -> rule5)) -> rule8) OR ((((((triple1) -> rule3)) -> rule7) triple2) -> rule8) OR ((((triple4) -> rule7) ((((triple1) -> rule3) triple5) -> rule5)) -> rule8) OR ((((((triple1) -> rule3)) -> rule7) ((triple4 triple5) -> rule5)) -> rule8) OR ((((((triple1) -> rule3)) -> rule7) ((((triple1) -> rule3) triple5) -> rule5)) -> rule8))]
Charlie is big.
("Charlie" "is" "big" "+")
triple1
((triple4 triple5) -> (rule2 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
triple2
((triple4 triple5) -> (rule5 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
((triple7 triple6) -> (rule1 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
((triple7 ((triple4) -> (rule7 % int2))) -> (rule1 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((triple1) -> (rule3 % int2)) triple5) -> (rule5 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((triple7 ((((triple1) -> (rule3 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
triple3
((triple4) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((triple5 triple6) -> (rule6 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((((triple1) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((triple5 ((triple4) -> (rule7 % int2))) -> (rule6 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((triple5 ((((triple1) -> (rule3 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
Charlie is nice.
("Charlie" "is" "nice" "+")
triple4
((triple1) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is quiet.
("Charlie" "is" "quiet" "+")
triple5
Charlie is round.
("Charlie" "is" "round" "+")
triple6
((triple4) -> (rule7 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
((((triple1) -> (rule3 % int2))) -> (rule7 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is young.
("Charlie" "is" "young" "+")
triple7
((triple6 triple2) -> (rule8 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
((triple6 ((triple4 triple5) -> (rule5 % int2))) -> (rule8 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
((((triple4) -> (rule7 % int2)) triple2) -> (rule8 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((triple4) -> (rule7 % int3)) ((triple4 triple5) -> (rule5 % int2))) -> (rule8 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
((triple6 ((((triple1) -> (rule3 % int3)) triple5) -> (rule5 % int2))) -> (rule8 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
((((((triple1) -> (rule3 % int3))) -> (rule7 % int2)) triple2) -> (rule8 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
((((triple4) -> (rule7 % int4)) ((((triple1) -> (rule3 % int3)) triple5) -> (rule5 % int2))) -> (rule8 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
int4
((((((triple1) -> (rule3 % int4))) -> (rule7 % int3)) ((triple4 triple5) -> (rule5 % int2))) -> (rule8 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
Charlie is nice.
("Charlie" "is" "nice" "+")
int4
((((((triple1) -> (rule3 % int4))) -> (rule7 % int3)) ((((triple1) -> (rule3 % int4)) triple5) -> (rule5 % int2))) -> (rule8 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
Charlie is nice.
("Charlie" "is" "nice" "+")
int4