Dave is cold. Dave is furry. Dave is young. If Dave is cold then Dave is quiet. If something is quiet and furry then it is big. Young, nice things are quiet. If Dave is nice then Dave is furry. All furry things are green. All big things are furry.
Dave is cold.
("Dave" "is" "cold" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is young.
("Dave" "is" "young" "+")
If Dave is cold then Dave is quiet.
((("Dave" "is" "cold" "+")) -> ("Dave" "is" "quiet" "+"))
If something is quiet and furry then it is big.
((("something" "is" "quiet" "+") ("something" "is" "furry" "+")) -> ("something" "is" "big" "+"))
Young, nice things are quiet.
((("something" "is" "young" "+") ("something" "is" "nice" "+")) -> ("something" "is" "quiet" "+"))
If Dave is nice then Dave is furry.
((("Dave" "is" "nice" "+")) -> ("Dave" "is" "furry" "+"))
All furry things are green.
((("something" "is" "furry" "+")) -> ("something" "is" "green" "+"))
All big things are furry.
((("something" "is" "big" "+")) -> ("something" "is" "furry" "+"))
Dave is cold.
True
1
proof
[(triple1)]
("Dave" "is" "cold" "+")
triple1
Dave is not young.
False
1
inv-proof
[(triple3)]
("Dave" "is" "young" "-")
triple3
@0: Dave is cold.[(triple1)] Dave is furry.[(triple2)] Dave is young.[(triple3)] @1: Dave is green.[(((triple2) -> rule5))] Dave is quiet.[(((triple1) -> rule1))] @2: Dave is big.[(((((triple1) -> rule1) triple2) -> rule2))]
Dave is cold.
("Dave" "is" "cold" "+")
triple1
Dave is furry.
("Dave" "is" "furry" "+")
triple2
Dave is young.
("Dave" "is" "young" "+")
triple3
Dave is green.
("Dave" "is" "green" "+")
((triple2) -> (rule5 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is quiet.
("Dave" "is" "quiet" "+")
((triple1) -> (rule1 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
((((triple1) -> (rule1 % int2)) triple2) -> (rule2 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is quiet.
("Dave" "is" "quiet" "+")
int2