Bob is rough. Dave is rough. All rough things are round. If something is green and not young then it is not round. Green things are white. If something is young then it is white. If Dave is not green then Dave is rough. If Dave is green then Dave is not white.
Bob is rough.
("Bob" "is" "rough" "+")
Dave is rough.
("Dave" "is" "rough" "+")
All rough things are round.
((("something" "is" "rough" "+")) -> ("something" "is" "round" "+"))
If something is green and not young then it is not round.
((("something" "is" "green" "+") ("something" "is" "young" "~")) -> ("something" "is" "round" "-"))
Green things are white.
((("something" "is" "green" "+")) -> ("something" "is" "white" "+"))
If something is young then it is white.
((("something" "is" "young" "+")) -> ("something" "is" "white" "+"))
If Dave is not green then Dave is rough.
((("Dave" "is" "green" "~")) -> ("Dave" "is" "rough" "+"))
If Dave is green then Dave is not white.
((("Dave" "is" "green" "+")) -> ("Dave" "is" "white" "-"))
Dave is rough.
True
1
proof
[(triple2)]
("Dave" "is" "rough" "+")
triple2
Bob is not rough.
False
1
inv-proof
[(triple1)]
("Bob" "is" "rough" "-")
triple1
Dave is not white.
Unknown
inv-rconc
[@1: Dave is white.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Dave" "is" "white" "-")
Bob is young.
Unknown
random
[@0: Bob is young.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "young" "+")
@0: Bob is rough.[(triple1)] Dave is rough.[(triple2)] @1: Bob is round.[(((triple1) -> rule1))] Dave is round.[(((triple2) -> rule1))]
Bob is rough.
("Bob" "is" "rough" "+")
triple1
Dave is rough.
("Dave" "is" "rough" "+")
triple2
Bob is round.
("Bob" "is" "round" "+")
((triple1) -> (rule1 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
((triple2) -> (rule1 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1