Anne is kind. Bob is kind. Bob is quiet. Bob is red. Bob is rough. Fiona is kind. Fiona is not quiet. All furry things are nice. All kind things are nice. If something is rough then it is kind. If Bob is kind then Bob is furry. Kind things are blue. If something is blue and not kind then it is red. If Anne is blue then Anne is not red. If Anne is rough and Anne is not nice then Anne is red.
Anne is kind.
("Anne" "is" "kind" "+")
Bob is kind.
("Bob" "is" "kind" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Bob is red.
("Bob" "is" "red" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Fiona is kind.
("Fiona" "is" "kind" "+")
Fiona is not quiet.
("Fiona" "is" "quiet" "-")
All furry things are nice.
((("something" "is" "furry" "+")) -> ("something" "is" "nice" "+"))
All kind things are nice.
((("something" "is" "kind" "+")) -> ("something" "is" "nice" "+"))
If something is rough then it is kind.
((("something" "is" "rough" "+")) -> ("something" "is" "kind" "+"))
If Bob is kind then Bob is furry.
((("Bob" "is" "kind" "+")) -> ("Bob" "is" "furry" "+"))
Kind things are blue.
((("something" "is" "kind" "+")) -> ("something" "is" "blue" "+"))
If something is blue and not kind then it is red.
((("something" "is" "blue" "+") ("something" "is" "kind" "~")) -> ("something" "is" "red" "+"))
If Anne is blue then Anne is not red.
((("Anne" "is" "blue" "+")) -> ("Anne" "is" "red" "-"))
If Anne is rough and Anne is not nice then Anne is red.
((("Anne" "is" "rough" "+") ("Anne" "is" "nice" "~")) -> ("Anne" "is" "red" "+"))
Bob is kind.
True
1
proof
[(triple2 OR ((triple5) -> rule3))]
("Bob" "is" "kind" "+")
triple2
((triple5) -> (rule3 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is not quiet.
False
1
inv-proof
[(triple3)]
("Bob" "is" "quiet" "-")
triple3
Anne is nice.
True
2
proof
[(((triple1) -> rule2))]
("Anne" "is" "nice" "+")
((triple1) -> (rule2 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Bob is not blue.
False
2
inv-proof
[(((triple2) -> rule5) OR ((((triple5) -> rule3)) -> rule5))]
("Bob" "is" "blue" "-")
((triple2) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((((triple5) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Anne is not red.
True
3
proof
[(((((triple1) -> rule5)) -> rule7))]
("Anne" "is" "red" "-")
((((triple1) -> (rule5 % int2))) -> (rule7 % int1))
Anne is not red.
("Anne" "is" "red" "-")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Anne is red.
False
3
inv-proof
[(((((triple1) -> rule5)) -> rule7))]
("Anne" "is" "red" "+")
((((triple1) -> (rule5 % int2))) -> (rule7 % int1))
Anne is not red.
("Anne" "is" "red" "-")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Fiona is not red.
Unknown
inv-rconc
[@1: Fiona is red.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Fiona" "is" "red" "-")
Anne is quiet.
Unknown
random
[@0: Anne is quiet.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "quiet" "+")
Anne is not furry.
Unknown
inv-random
[@0: Anne is furry.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "furry" "-")
Fiona is rough.
Unknown
random
[@0: Fiona is rough.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "rough" "+")
Anne is not rough.
Unknown
inv-random
[@0: Anne is rough.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "rough" "-")
Fiona is furry.
Unknown
random
[@0: Fiona is furry.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "furry" "+")
@0: Anne is kind.[(triple1)] Bob is kind.[(triple2 OR ((triple5) -> rule3))] Bob is quiet.[(triple3)] Bob is red.[(triple4)] Bob is rough.[(triple5)] Fiona is kind.[(triple6)] Fiona is not quiet.[(triple7)] @1: Anne is blue.[(((triple1) -> rule5))] Anne is nice.[(((triple1) -> rule2))] Bob is blue.[(((triple2) -> rule5) OR ((((triple5) -> rule3)) -> rule5))] Bob is furry.[(((triple2) -> rule4) OR ((((triple5) -> rule3)) -> rule4))] Bob is nice.[(((triple2) -> rule2) OR ((((triple2) -> rule4)) -> rule1) OR ((((triple5) -> rule3)) -> rule2) OR ((((((triple5) -> rule3)) -> rule4)) -> rule1))] Fiona is blue.[(((triple6) -> rule5))] Fiona is nice.[(((triple6) -> rule2))] @2: Anne is not red.[(((((triple1) -> rule5)) -> rule7))]
Anne is kind.
("Anne" "is" "kind" "+")
triple1
Bob is kind.
("Bob" "is" "kind" "+")
triple2
((triple5) -> (rule3 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is quiet.
("Bob" "is" "quiet" "+")
triple3
Bob is red.
("Bob" "is" "red" "+")
triple4
Bob is rough.
("Bob" "is" "rough" "+")
triple5
Fiona is kind.
("Fiona" "is" "kind" "+")
triple6
Fiona is not quiet.
("Fiona" "is" "quiet" "-")
triple7
Anne is blue.
("Anne" "is" "blue" "+")
((triple1) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
((triple1) -> (rule2 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
((triple2) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((((triple5) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
((triple2) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((((triple5) -> (rule3 % int2))) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
((triple2) -> (rule2 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
((((triple2) -> (rule4 % int2))) -> (rule1 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((((triple5) -> (rule3 % int2))) -> (rule2 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
((((((triple5) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule1 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is kind.
("Bob" "is" "kind" "+")
int3
Fiona is blue.
("Fiona" "is" "blue" "+")
((triple6) -> (rule5 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
((triple6) -> (rule2 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Anne is not red.
("Anne" "is" "red" "-")
((((triple1) -> (rule5 % int2))) -> (rule7 % int1))
Anne is not red.
("Anne" "is" "red" "-")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2