Bob is blue. Bob is cold. Bob is kind. Bob is nice. Bob is quiet. Bob is red. Bob is rough. If something is red then it is cold. All nice, cold things are red. If something is rough and kind then it is nice. All red, quiet things are blue. If something is nice then it is red. All red things are blue.
Bob is blue.
("Bob" "is" "blue" "+")
Bob is cold.
("Bob" "is" "cold" "+")
Bob is kind.
("Bob" "is" "kind" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Bob is red.
("Bob" "is" "red" "+")
Bob is rough.
("Bob" "is" "rough" "+")
If something is red then it is cold.
((("something" "is" "red" "+")) -> ("something" "is" "cold" "+"))
All nice, cold things are red.
((("something" "is" "nice" "+") ("something" "is" "cold" "+")) -> ("something" "is" "red" "+"))
If something is rough and kind then it is nice.
((("something" "is" "rough" "+") ("something" "is" "kind" "+")) -> ("something" "is" "nice" "+"))
All red, quiet things are blue.
((("something" "is" "red" "+") ("something" "is" "quiet" "+")) -> ("something" "is" "blue" "+"))
If something is nice then it is red.
((("something" "is" "nice" "+")) -> ("something" "is" "red" "+"))
All red things are blue.
((("something" "is" "red" "+")) -> ("something" "is" "blue" "+"))
Bob is cold.
True
1
proof
[(triple2 OR ((triple6) -> rule1) OR ((((triple4) -> rule5)) -> rule1) OR ((((((triple7 triple3) -> rule3)) -> rule5)) -> rule1))]
("Bob" "is" "cold" "+")
triple2
((triple6) -> (rule1 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
((((triple4) -> (rule5 % int2))) -> (rule1 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((((triple7 triple3) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is not blue.
False
1
inv-proof
[(triple1 OR ((triple6) -> rule6) OR ((triple6 triple5) -> rule4) OR ((((triple4) -> rule5)) -> rule6) OR ((((triple4 triple2) -> rule2)) -> rule6) OR ((((triple4) -> rule5) triple5) -> rule4) OR ((((triple4 triple2) -> rule2) triple5) -> rule4) OR ((((((triple7 triple3) -> rule3)) -> rule5)) -> rule6) OR ((((((triple7 triple3) -> rule3) triple2) -> rule2)) -> rule6) OR ((((((triple7 triple3) -> rule3)) -> rule5) triple5) -> rule4) OR ((((((triple7 triple3) -> rule3) triple2) -> rule2) triple5) -> rule4))]
("Bob" "is" "blue" "-")
triple1
((triple6) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((triple6 triple5) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((((triple4) -> (rule5 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((triple4 triple2) -> (rule2 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((triple4) -> (rule5 % int2)) triple5) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((triple4 triple2) -> (rule2 % int2)) triple5) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((((triple7 triple3) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((((triple7 triple3) -> (rule3 % int3)) triple2) -> (rule2 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((((triple7 triple3) -> (rule3 % int3))) -> (rule5 % int2)) triple5) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((((triple7 triple3) -> (rule3 % int3)) triple2) -> (rule2 % int2)) triple5) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
@0: Bob is blue.[(triple1 OR ((triple6) -> rule6) OR ((triple6 triple5) -> rule4) OR ((((triple4) -> rule5)) -> rule6) OR ((((triple4 triple2) -> rule2)) -> rule6) OR ((((triple4) -> rule5) triple5) -> rule4) OR ((((triple4 triple2) -> rule2) triple5) -> rule4) OR ((((((triple7 triple3) -> rule3)) -> rule5)) -> rule6) OR ((((((triple7 triple3) -> rule3) triple2) -> rule2)) -> rule6) OR ((((((triple7 triple3) -> rule3)) -> rule5) triple5) -> rule4) OR ((((((triple7 triple3) -> rule3) triple2) -> rule2) triple5) -> rule4))] Bob is cold.[(triple2 OR ((triple6) -> rule1) OR ((((triple4) -> rule5)) -> rule1) OR ((((((triple7 triple3) -> rule3)) -> rule5)) -> rule1))] Bob is kind.[(triple3)] Bob is nice.[(triple4 OR ((triple7 triple3) -> rule3))] Bob is quiet.[(triple5)] Bob is red.[(triple6 OR ((triple4) -> rule5) OR ((triple4 triple2) -> rule2) OR ((((triple7 triple3) -> rule3)) -> rule5) OR ((((triple7 triple3) -> rule3) triple2) -> rule2))] Bob is rough.[(triple7)]
Bob is blue.
("Bob" "is" "blue" "+")
triple1
((triple6) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((triple6 triple5) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((((triple4) -> (rule5 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((triple4 triple2) -> (rule2 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((triple4) -> (rule5 % int2)) triple5) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((triple4 triple2) -> (rule2 % int2)) triple5) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((((triple7 triple3) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((((triple7 triple3) -> (rule3 % int3)) triple2) -> (rule2 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((((triple7 triple3) -> (rule3 % int3))) -> (rule5 % int2)) triple5) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((((triple7 triple3) -> (rule3 % int3)) triple2) -> (rule2 % int2)) triple5) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is cold.
("Bob" "is" "cold" "+")
triple2
((triple6) -> (rule1 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
((((triple4) -> (rule5 % int2))) -> (rule1 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((((triple7 triple3) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is kind.
("Bob" "is" "kind" "+")
triple3
Bob is nice.
("Bob" "is" "nice" "+")
triple4
((triple7 triple3) -> (rule3 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is quiet.
("Bob" "is" "quiet" "+")
triple5
Bob is red.
("Bob" "is" "red" "+")
triple6
((triple4) -> (rule5 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
((triple4 triple2) -> (rule2 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
((((triple7 triple3) -> (rule3 % int2))) -> (rule5 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((triple7 triple3) -> (rule3 % int2)) triple2) -> (rule2 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
triple7