Anne is furry. Anne is kind. Anne is nice. Anne is red. Anne is round. Anne is smart. Anne is white. White things are smart. If something is round and smart then it is kind. If something is white and furry then it is nice. If Anne is furry then Anne is red. If something is red and nice then it is kind. If something is red then it is nice.
Anne is furry.
("Anne" "is" "furry" "+")
Anne is kind.
("Anne" "is" "kind" "+")
Anne is nice.
("Anne" "is" "nice" "+")
Anne is red.
("Anne" "is" "red" "+")
Anne is round.
("Anne" "is" "round" "+")
Anne is smart.
("Anne" "is" "smart" "+")
Anne is white.
("Anne" "is" "white" "+")
White things are smart.
((("something" "is" "white" "+")) -> ("something" "is" "smart" "+"))
If something is round and smart then it is kind.
((("something" "is" "round" "+") ("something" "is" "smart" "+")) -> ("something" "is" "kind" "+"))
If something is white and furry then it is nice.
((("something" "is" "white" "+") ("something" "is" "furry" "+")) -> ("something" "is" "nice" "+"))
If Anne is furry then Anne is red.
((("Anne" "is" "furry" "+")) -> ("Anne" "is" "red" "+"))
If something is red and nice then it is kind.
((("something" "is" "red" "+") ("something" "is" "nice" "+")) -> ("something" "is" "kind" "+"))
If something is red then it is nice.
((("something" "is" "red" "+")) -> ("something" "is" "nice" "+"))
Anne is smart.
True
1
proof
[(triple6 OR ((triple7) -> rule1))]
("Anne" "is" "smart" "+")
triple6
((triple7) -> (rule1 % int1))
Anne is smart.
("Anne" "is" "smart" "+")
int1
Anne is not red.
False
1
inv-proof
[(triple4 OR ((triple1) -> rule4))]
("Anne" "is" "red" "-")
triple4
((triple1) -> (rule4 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
@0: Anne is furry.[(triple1)] Anne is kind.[(triple2 OR ((triple4 triple3) -> rule5) OR ((triple5 triple6) -> rule2) OR ((triple4 ((triple4) -> rule6)) -> rule5) OR ((triple4 ((triple7 triple1) -> rule3)) -> rule5) OR ((triple5 ((triple7) -> rule1)) -> rule2) OR ((((triple1) -> rule4) triple3) -> rule5) OR ((((triple1) -> rule4) ((triple4) -> rule6)) -> rule5) OR ((((triple1) -> rule4) ((triple7 triple1) -> rule3)) -> rule5) OR ((triple4 ((((triple1) -> rule4)) -> rule6)) -> rule5) OR ((((triple1) -> rule4) ((((triple1) -> rule4)) -> rule6)) -> rule5))] Anne is nice.[(triple3 OR ((triple4) -> rule6) OR ((triple7 triple1) -> rule3) OR ((((triple1) -> rule4)) -> rule6))] Anne is red.[(triple4 OR ((triple1) -> rule4))] Anne is round.[(triple5)] Anne is smart.[(triple6 OR ((triple7) -> rule1))] Anne is white.[(triple7)]
Anne is furry.
("Anne" "is" "furry" "+")
triple1
Anne is kind.
("Anne" "is" "kind" "+")
triple2
((triple4 triple3) -> (rule5 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
((triple5 triple6) -> (rule2 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
((triple4 ((triple4) -> (rule6 % int2))) -> (rule5 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
((triple4 ((triple7 triple1) -> (rule3 % int2))) -> (rule5 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
((triple5 ((triple7) -> (rule1 % int2))) -> (rule2 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is smart.
("Anne" "is" "smart" "+")
int2
((((triple1) -> (rule4 % int2)) triple3) -> (rule5 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2
((((triple1) -> (rule4 % int3)) ((triple4) -> (rule6 % int2))) -> (rule5 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
int3
((((triple1) -> (rule4 % int3)) ((triple7 triple1) -> (rule3 % int2))) -> (rule5 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
int3
((triple4 ((((triple1) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
int3
((((triple1) -> (rule4 % int3)) ((((triple1) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
int3
Anne is nice.
("Anne" "is" "nice" "+")
triple3
((triple4) -> (rule6 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
((triple7 triple1) -> (rule3 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
((((triple1) -> (rule4 % int2))) -> (rule6 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
triple4
((triple1) -> (rule4 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
triple5
Anne is smart.
("Anne" "is" "smart" "+")
triple6
((triple7) -> (rule1 % int1))
Anne is smart.
("Anne" "is" "smart" "+")
int1
Anne is white.
("Anne" "is" "white" "+")
triple7