Anne is cold. Anne is green. Anne is kind. Anne is round. Anne is white. Bob is cold. Bob is green. Bob is kind. Bob is nice. Bob is round. Bob is smart. Bob is white. If something is round and green then it is smart. All white, green things are cold. If something is nice then it is cold. If something is green then it is nice. If something is white and cold then it is green. If something is cold and not smart then it is not kind.
Anne is cold.
("Anne" "is" "cold" "+")
Anne is green.
("Anne" "is" "green" "+")
Anne is kind.
("Anne" "is" "kind" "+")
Anne is round.
("Anne" "is" "round" "+")
Anne is white.
("Anne" "is" "white" "+")
Bob is cold.
("Bob" "is" "cold" "+")
Bob is green.
("Bob" "is" "green" "+")
Bob is kind.
("Bob" "is" "kind" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is round.
("Bob" "is" "round" "+")
Bob is smart.
("Bob" "is" "smart" "+")
Bob is white.
("Bob" "is" "white" "+")
If something is round and green then it is smart.
((("something" "is" "round" "+") ("something" "is" "green" "+")) -> ("something" "is" "smart" "+"))
All white, green things are cold.
((("something" "is" "white" "+") ("something" "is" "green" "+")) -> ("something" "is" "cold" "+"))
If something is nice then it is cold.
((("something" "is" "nice" "+")) -> ("something" "is" "cold" "+"))
If something is green then it is nice.
((("something" "is" "green" "+")) -> ("something" "is" "nice" "+"))
If something is white and cold then it is green.
((("something" "is" "white" "+") ("something" "is" "cold" "+")) -> ("something" "is" "green" "+"))
If something is cold and not smart then it is not kind.
((("something" "is" "cold" "+") ("something" "is" "smart" "~")) -> ("something" "is" "kind" "-"))
Anne is cold.
True
1
proof
[(triple1 OR ((triple5 triple2) -> rule2) OR ((((triple2) -> rule4)) -> rule3))]
("Anne" "is" "cold" "+")
triple1
((triple5 triple2) -> (rule2 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
((((triple2) -> (rule4 % int2))) -> (rule3 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is not round.
False
1
inv-proof
[(triple4)]
("Anne" "is" "round" "-")
triple4
@0: Anne is cold.[(triple1 OR ((triple5 triple2) -> rule2) OR ((((triple2) -> rule4)) -> rule3))] Anne is green.[(triple2 OR ((triple5 triple1) -> rule5))] Anne is kind.[(triple3)] Anne is round.[(triple4)] Anne is white.[(triple5)] Bob is cold.[(triple6 OR ((triple9) -> rule3) OR ((triple12 triple7) -> rule2) OR ((((triple7) -> rule4)) -> rule3))] Bob is green.[(triple7 OR ((triple12 triple6) -> rule5) OR ((triple12 ((triple9) -> rule3)) -> rule5))] Bob is kind.[(triple8)] Bob is nice.[(triple9 OR ((triple7) -> rule4) OR ((((triple12 triple6) -> rule5)) -> rule4))] Bob is round.[(triple10)] Bob is smart.[(triple11 OR ((triple10 triple7) -> rule1) OR ((triple10 ((triple12 triple6) -> rule5)) -> rule1) OR ((triple10 ((triple12 ((triple9) -> rule3)) -> rule5)) -> rule1))] Bob is white.[(triple12)] @1: Anne is nice.[(((triple2) -> rule4) OR ((((triple5 triple1) -> rule5)) -> rule4))] Anne is smart.[(((triple4 triple2) -> rule1) OR ((triple4 ((triple5 triple1) -> rule5)) -> rule1))]
Anne is cold.
("Anne" "is" "cold" "+")
triple1
((triple5 triple2) -> (rule2 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
((((triple2) -> (rule4 % int2))) -> (rule3 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is green.
("Anne" "is" "green" "+")
triple2
((triple5 triple1) -> (rule5 % int1))
Anne is green.
("Anne" "is" "green" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
triple3
Anne is round.
("Anne" "is" "round" "+")
triple4
Anne is white.
("Anne" "is" "white" "+")
triple5
Bob is cold.
("Bob" "is" "cold" "+")
triple6
((triple9) -> (rule3 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
((triple12 triple7) -> (rule2 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
((((triple7) -> (rule4 % int2))) -> (rule3 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
triple7
((triple12 triple6) -> (rule5 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
((triple12 ((triple9) -> (rule3 % int2))) -> (rule5 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is kind.
("Bob" "is" "kind" "+")
triple8
Bob is nice.
("Bob" "is" "nice" "+")
triple9
((triple7) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
((((triple12 triple6) -> (rule5 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
triple10
Bob is smart.
("Bob" "is" "smart" "+")
triple11
((triple10 triple7) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
((triple10 ((triple12 triple6) -> (rule5 % int2))) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
((triple10 ((triple12 ((triple9) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is white.
("Bob" "is" "white" "+")
triple12
Anne is nice.
("Anne" "is" "nice" "+")
((triple2) -> (rule4 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
((((triple5 triple1) -> (rule5 % int2))) -> (rule4 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Anne is green.
("Anne" "is" "green" "+")
int2
Anne is smart.
("Anne" "is" "smart" "+")
((triple4 triple2) -> (rule1 % int1))
Anne is smart.
("Anne" "is" "smart" "+")
int1
((triple4 ((triple5 triple1) -> (rule5 % int2))) -> (rule1 % int1))
Anne is smart.
("Anne" "is" "smart" "+")
int1
Anne is green.
("Anne" "is" "green" "+")
int2