Harry is big. Harry is not blue. Harry is furry. Harry is not green. Harry is quiet. Harry is red. Harry is smart. Green things are not smart. Smart, red things are big. If something is blue and not smart then it is not quiet. If something is big then it is furry. All quiet, furry things are not blue. If Harry is not smart then Harry is big.
Harry is big.
("Harry" "is" "big" "+")
Harry is not blue.
("Harry" "is" "blue" "-")
Harry is furry.
("Harry" "is" "furry" "+")
Harry is not green.
("Harry" "is" "green" "-")
Harry is quiet.
("Harry" "is" "quiet" "+")
Harry is red.
("Harry" "is" "red" "+")
Harry is smart.
("Harry" "is" "smart" "+")
Green things are not smart.
((("something" "is" "green" "+")) -> ("something" "is" "smart" "-"))
Smart, red things are big.
((("something" "is" "smart" "+") ("something" "is" "red" "+")) -> ("something" "is" "big" "+"))
If something is blue and not smart then it is not quiet.
((("something" "is" "blue" "+") ("something" "is" "smart" "~")) -> ("something" "is" "quiet" "-"))
If something is big then it is furry.
((("something" "is" "big" "+")) -> ("something" "is" "furry" "+"))
All quiet, furry things are not blue.
((("something" "is" "quiet" "+") ("something" "is" "furry" "+")) -> ("something" "is" "blue" "-"))
If Harry is not smart then Harry is big.
((("Harry" "is" "smart" "~")) -> ("Harry" "is" "big" "+"))
Harry is not blue.
True
1
proof
[(triple2 OR ((triple5 triple3) -> rule5) OR ((triple5 ((triple1) -> rule4)) -> rule5) OR ((triple5 ((((triple7 triple6) -> rule2)) -> rule4)) -> rule5))]
("Harry" "is" "blue" "-")
triple2
((triple5 triple3) -> (rule5 % int1))
Harry is not blue.
("Harry" "is" "blue" "-")
int1
((triple5 ((triple1) -> (rule4 % int2))) -> (rule5 % int1))
Harry is not blue.
("Harry" "is" "blue" "-")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
((triple5 ((((triple7 triple6) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule5 % int1))
Harry is not blue.
("Harry" "is" "blue" "-")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is big.
("Harry" "is" "big" "+")
int3
Harry is not smart.
False
1
inv-proof
[(triple7)]
("Harry" "is" "smart" "-")
triple7
@0: Harry is big.[(triple1 OR ((triple7 triple6) -> rule2))] Harry is furry.[(triple3 OR ((triple1) -> rule4) OR ((((triple7 triple6) -> rule2)) -> rule4))] Harry is not blue.[(triple2 OR ((triple5 triple3) -> rule5) OR ((triple5 ((triple1) -> rule4)) -> rule5) OR ((triple5 ((((triple7 triple6) -> rule2)) -> rule4)) -> rule5))] Harry is not green.[(triple4)] Harry is quiet.[(triple5)] Harry is red.[(triple6)] Harry is smart.[(triple7)]
Harry is big.
("Harry" "is" "big" "+")
triple1
((triple7 triple6) -> (rule2 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
triple3
((triple1) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
((((triple7 triple6) -> (rule2 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is not blue.
("Harry" "is" "blue" "-")
triple2
((triple5 triple3) -> (rule5 % int1))
Harry is not blue.
("Harry" "is" "blue" "-")
int1
((triple5 ((triple1) -> (rule4 % int2))) -> (rule5 % int1))
Harry is not blue.
("Harry" "is" "blue" "-")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
((triple5 ((((triple7 triple6) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule5 % int1))
Harry is not blue.
("Harry" "is" "blue" "-")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is big.
("Harry" "is" "big" "+")
int3
Harry is not green.
("Harry" "is" "green" "-")
triple4
Harry is quiet.
("Harry" "is" "quiet" "+")
triple5
Harry is red.
("Harry" "is" "red" "+")
triple6
Harry is smart.
("Harry" "is" "smart" "+")
triple7