Anne is smart. Bob is blue. Bob is cold. Bob is red. Bob is smart. Fiona is not nice. Fiona is red. All smart people are nice. Cold people are nice. If someone is kind and not cold then they are nice. All smart people are nice. If Bob is kind then Bob is big. All cold, nice people are blue. All nice, cold people are blue. If someone is kind and nice then they are not blue.
Anne is smart.
("Anne" "is" "smart" "+")
Bob is blue.
("Bob" "is" "blue" "+")
Bob is cold.
("Bob" "is" "cold" "+")
Bob is red.
("Bob" "is" "red" "+")
Bob is smart.
("Bob" "is" "smart" "+")
Fiona is not nice.
("Fiona" "is" "nice" "-")
Fiona is red.
("Fiona" "is" "red" "+")
All smart people are nice.
((("someone" "is" "smart" "+")) -> ("someone" "is" "nice" "+"))
Cold people are nice.
((("someone" "is" "cold" "+")) -> ("someone" "is" "nice" "+"))
If someone is kind and not cold then they are nice.
((("someone" "is" "kind" "+") ("someone" "is" "cold" "~")) -> ("someone" "is" "nice" "+"))
All smart people are nice.
((("someone" "is" "smart" "+")) -> ("someone" "is" "nice" "+"))
If Bob is kind then Bob is big.
((("Bob" "is" "kind" "+")) -> ("Bob" "is" "big" "+"))
All cold, nice people are blue.
((("someone" "is" "cold" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "blue" "+"))
All nice, cold people are blue.
((("someone" "is" "nice" "+") ("someone" "is" "cold" "+")) -> ("someone" "is" "blue" "+"))
If someone is kind and nice then they are not blue.
((("someone" "is" "kind" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "blue" "-"))
Bob is blue.
True
1
proof
[(triple2 OR ((triple3 ((triple3) -> rule2)) -> rule6) OR ((triple3 ((triple5) -> rule1)) -> rule6) OR ((triple3 ((triple5) -> rule4)) -> rule6) OR ((((triple3) -> rule2) triple3) -> rule7) OR ((((triple5) -> rule1) triple3) -> rule7) OR ((((triple5) -> rule4) triple3) -> rule7))]
("Bob" "is" "blue" "+")
triple2
((triple3 ((triple3) -> (rule2 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((triple3 ((triple5) -> (rule1 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((triple3 ((triple5) -> (rule4 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((triple3) -> (rule2 % int2)) triple3) -> (rule7 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((triple5) -> (rule1 % int2)) triple3) -> (rule7 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((triple5) -> (rule4 % int2)) triple3) -> (rule7 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is not cold.
False
1
inv-proof
[(triple3)]
("Bob" "is" "cold" "-")
triple3
Bob is not big.
Unknown
inv-rconc
[@1: Bob is big.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Bob" "is" "big" "-")
Anne is cold.
Unknown
random
[@0: Anne is cold.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "cold" "+")
@0: Anne is smart.[(triple1)] Bob is blue.[(triple2 OR ((triple3 ((triple3) -> rule2)) -> rule6) OR ((triple3 ((triple5) -> rule1)) -> rule6) OR ((triple3 ((triple5) -> rule4)) -> rule6) OR ((((triple3) -> rule2) triple3) -> rule7) OR ((((triple5) -> rule1) triple3) -> rule7) OR ((((triple5) -> rule4) triple3) -> rule7))] Bob is cold.[(triple3)] Bob is red.[(triple4)] Bob is smart.[(triple5)] Fiona is not nice.[(triple6)] Fiona is red.[(triple7)] @1: Anne is nice.[(((triple1) -> rule1) OR ((triple1) -> rule4))] Bob is nice.[(((triple3) -> rule2) OR ((triple5) -> rule1) OR ((triple5) -> rule4))]
Anne is smart.
("Anne" "is" "smart" "+")
triple1
Bob is blue.
("Bob" "is" "blue" "+")
triple2
((triple3 ((triple3) -> (rule2 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((triple3 ((triple5) -> (rule1 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((triple3 ((triple5) -> (rule4 % int2))) -> (rule6 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((triple3) -> (rule2 % int2)) triple3) -> (rule7 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((triple5) -> (rule1 % int2)) triple3) -> (rule7 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((triple5) -> (rule4 % int2)) triple3) -> (rule7 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
triple3
Bob is red.
("Bob" "is" "red" "+")
triple4
Bob is smart.
("Bob" "is" "smart" "+")
triple5
Fiona is not nice.
("Fiona" "is" "nice" "-")
triple6
Fiona is red.
("Fiona" "is" "red" "+")
triple7
Anne is nice.
("Anne" "is" "nice" "+")
((triple1) -> (rule1 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
((triple1) -> (rule4 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
((triple3) -> (rule2 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
((triple5) -> (rule1 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
((triple5) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1