Charlie is quiet. Harry is blue. Harry is nice. All nice things are quiet. If something is round then it is green. Blue, quiet things are not round. If Harry is nice and Harry is not quiet then Harry is not round. If something is green then it is furry. All green, round things are blue. Round, furry things are not blue. If something is red and nice then it is not blue.
Charlie is quiet.
("Charlie" "is" "quiet" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is nice.
("Harry" "is" "nice" "+")
All nice things are quiet.
((("something" "is" "nice" "+")) -> ("something" "is" "quiet" "+"))
If something is round then it is green.
((("something" "is" "round" "+")) -> ("something" "is" "green" "+"))
Blue, quiet things are not round.
((("something" "is" "blue" "+") ("something" "is" "quiet" "+")) -> ("something" "is" "round" "-"))
If Harry is nice and Harry is not quiet then Harry is not round.
((("Harry" "is" "nice" "+") ("Harry" "is" "quiet" "~")) -> ("Harry" "is" "round" "-"))
If something is green then it is furry.
((("something" "is" "green" "+")) -> ("something" "is" "furry" "+"))
All green, round things are blue.
((("something" "is" "green" "+") ("something" "is" "round" "+")) -> ("something" "is" "blue" "+"))
Round, furry things are not blue.
((("something" "is" "round" "+") ("something" "is" "furry" "+")) -> ("something" "is" "blue" "-"))
If something is red and nice then it is not blue.
((("something" "is" "red" "+") ("something" "is" "nice" "+")) -> ("something" "is" "blue" "-"))
Harry is blue.
True
1
proof
[(triple2)]
("Harry" "is" "blue" "+")
triple2
Charlie is not quiet.
False
1
inv-proof
[(triple1)]
("Charlie" "is" "quiet" "-")
triple1
Harry is quiet.
True
2
proof
[(((triple3) -> rule1))]
("Harry" "is" "quiet" "+")
((triple3) -> (rule1 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is not quiet.
False
2
inv-proof
[(((triple3) -> rule1))]
("Harry" "is" "quiet" "-")
((triple3) -> (rule1 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is not round.
True
4
proof
[(((triple2 ((triple3) -> rule1)) -> rule3))]
("Harry" "is" "round" "-")
((triple2 ((triple3) -> (rule1 % int2))) -> (rule3 % int1))
Harry is not round.
("Harry" "is" "round" "-")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Harry is round.
False
4
inv-proof
[(((triple2 ((triple3) -> rule1)) -> rule3))]
("Harry" "is" "round" "+")
((triple2 ((triple3) -> (rule1 % int2))) -> (rule3 % int1))
Harry is not round.
("Harry" "is" "round" "-")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Charlie is not furry.
Unknown
inv-rconc
[@2: Charlie is furry.[CWA. Example of deepest failure = (rule5 <- rule2 <- FAIL)]]
("Charlie" "is" "furry" "-")
Harry is furry.
Unknown
rconc
[@2: Harry is furry.[CWA. Example of deepest failure = (rule5 <- rule2 <- FAIL)]]
("Harry" "is" "furry" "+")
Charlie is not blue.
Unknown
inv-rconc
[@1: Charlie is blue.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Charlie" "is" "blue" "-")
Charlie is red.
Unknown
random
[@0: Charlie is red.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "red" "+")
Charlie is not nice.
Unknown
inv-random
[@0: Charlie is nice.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "nice" "-")
Harry is red.
Unknown
random
[@0: Harry is red.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "red" "+")
@0: Charlie is quiet.[(triple1)] Harry is blue.[(triple2)] Harry is nice.[(triple3)] @1: Harry is quiet.[(((triple3) -> rule1))] @2: Harry is not round.[(((triple2 ((triple3) -> rule1)) -> rule3))]
Charlie is quiet.
("Charlie" "is" "quiet" "+")
triple1
Harry is blue.
("Harry" "is" "blue" "+")
triple2
Harry is nice.
("Harry" "is" "nice" "+")
triple3
Harry is quiet.
("Harry" "is" "quiet" "+")
((triple3) -> (rule1 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is not round.
("Harry" "is" "round" "-")
((triple2 ((triple3) -> (rule1 % int2))) -> (rule3 % int1))
Harry is not round.
("Harry" "is" "round" "-")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2