Bob is red. Dave is furry. Gary is smart. If Gary is smart and Gary is not red then Gary is furry. If someone is furry then they are rough. Rough people are not smart. If someone is rough and white then they are kind. Rough, young people are kind. If someone is red and young then they are kind. If someone is white and not rough then they are not kind. If someone is young then they are kind.
Bob is red.
("Bob" "is" "red" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Gary is smart.
("Gary" "is" "smart" "+")
If Gary is smart and Gary is not red then Gary is furry.
((("Gary" "is" "smart" "+") ("Gary" "is" "red" "~")) -> ("Gary" "is" "furry" "+"))
If someone is furry then they are rough.
((("someone" "is" "furry" "+")) -> ("someone" "is" "rough" "+"))
Rough people are not smart.
((("someone" "is" "rough" "+")) -> ("someone" "is" "smart" "-"))
If someone is rough and white then they are kind.
((("someone" "is" "rough" "+") ("someone" "is" "white" "+")) -> ("someone" "is" "kind" "+"))
Rough, young people are kind.
((("someone" "is" "rough" "+") ("someone" "is" "young" "+")) -> ("someone" "is" "kind" "+"))
If someone is red and young then they are kind.
((("someone" "is" "red" "+") ("someone" "is" "young" "+")) -> ("someone" "is" "kind" "+"))
If someone is white and not rough then they are not kind.
((("someone" "is" "white" "+") ("someone" "is" "rough" "~")) -> ("someone" "is" "kind" "-"))
If someone is young then they are kind.
((("someone" "is" "young" "+")) -> ("someone" "is" "kind" "+"))
Bob is red.
True
1
proof
[(triple1)]
("Bob" "is" "red" "+")
triple1
Dave is not furry.
False
1
inv-proof
[(triple2)]
("Dave" "is" "furry" "-")
triple2
Dave is rough.
True
2
proof
[(((triple2) -> rule2))]
("Dave" "is" "rough" "+")
((triple2) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is not rough.
False
2
inv-proof
[(((triple2) -> rule2))]
("Dave" "is" "rough" "-")
((triple2) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is not smart.
True
3
proof
[(((((triple2) -> rule2)) -> rule3))]
("Dave" "is" "smart" "-")
((((triple2) -> (rule2 % int2))) -> (rule3 % int1))
Dave is not smart.
("Dave" "is" "smart" "-")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Dave is smart.
False
3
inv-proof
[(((((triple2) -> rule2)) -> rule3))]
("Dave" "is" "smart" "+")
((((triple2) -> (rule2 % int2))) -> (rule3 % int1))
Dave is not smart.
("Dave" "is" "smart" "-")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Gary is not rough.
Unknown
inv-rconc
[@2: Gary is rough.[CWA. Example of deepest failure = (rule2 <- rule1 <- FAIL)]]
("Gary" "is" "rough" "-")
Dave is kind.
Unknown
rconc
[@1: Dave is kind.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Dave" "is" "kind" "+")
Bob is not kind.
Unknown
inv-rconc
[@1: Bob is kind.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Bob" "is" "kind" "-")
Bob is smart.
Unknown
random
[@0: Bob is smart.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "smart" "+")
Bob is not young.
Unknown
inv-random
[@0: Bob is young.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "young" "-")
Dave is red.
Unknown
random
[@0: Dave is red.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "red" "+")
@0: Bob is red.[(triple1)] Dave is furry.[(triple2)] Gary is smart.[(triple3)] @1: Dave is rough.[(((triple2) -> rule2))] @2: Dave is not smart.[(((((triple2) -> rule2)) -> rule3))]
Bob is red.
("Bob" "is" "red" "+")
triple1
Dave is furry.
("Dave" "is" "furry" "+")
triple2
Gary is smart.
("Gary" "is" "smart" "+")
triple3
Dave is rough.
("Dave" "is" "rough" "+")
((triple2) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is not smart.
("Dave" "is" "smart" "-")
((((triple2) -> (rule2 % int2))) -> (rule3 % int1))
Dave is not smart.
("Dave" "is" "smart" "-")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2