Bob is big. Bob is quiet. Bob is red. Dave is furry. Dave is red. Dave is not rough. Dave is not white. Fiona is furry. Fiona is kind. Fiona is quiet. Fiona is red. Gary is furry. Gary is kind. Gary is red. Gary is rough. Gary is not white. If Fiona is quiet and Fiona is kind then Fiona is red. If Dave is quiet then Dave is not red. If something is white then it is furry. All white, furry things are not rough. All furry things are red. Big, rough things are not white.
Bob is big.
("Bob" "is" "big" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Bob is red.
("Bob" "is" "red" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is red.
("Dave" "is" "red" "+")
Dave is not rough.
("Dave" "is" "rough" "-")
Dave is not white.
("Dave" "is" "white" "-")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is kind.
("Fiona" "is" "kind" "+")
Fiona is quiet.
("Fiona" "is" "quiet" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Gary is furry.
("Gary" "is" "furry" "+")
Gary is kind.
("Gary" "is" "kind" "+")
Gary is red.
("Gary" "is" "red" "+")
Gary is rough.
("Gary" "is" "rough" "+")
Gary is not white.
("Gary" "is" "white" "-")
If Fiona is quiet and Fiona is kind then Fiona is red.
((("Fiona" "is" "quiet" "+") ("Fiona" "is" "kind" "+")) -> ("Fiona" "is" "red" "+"))
If Dave is quiet then Dave is not red.
((("Dave" "is" "quiet" "+")) -> ("Dave" "is" "red" "-"))
If something is white then it is furry.
((("something" "is" "white" "+")) -> ("something" "is" "furry" "+"))
All white, furry things are not rough.
((("something" "is" "white" "+") ("something" "is" "furry" "+")) -> ("something" "is" "rough" "-"))
All furry things are red.
((("something" "is" "furry" "+")) -> ("something" "is" "red" "+"))
Big, rough things are not white.
((("something" "is" "big" "+") ("something" "is" "rough" "+")) -> ("something" "is" "white" "-"))
Fiona is red.
True
1
proof
[(triple11 OR ((triple8) -> rule5) OR ((triple10 triple9) -> rule1))]
("Fiona" "is" "red" "+")
triple11
((triple8) -> (rule5 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((triple10 triple9) -> (rule1 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Gary is not furry.
False
1
inv-proof
[(triple12)]
("Gary" "is" "furry" "-")
triple12
Bob is not furry.
Unknown
inv-rconc
[@1: Bob is furry.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Bob" "is" "furry" "-")
Fiona is white.
Unknown
random
[@0: Fiona is white.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "white" "+")
@0: Bob is big.[(triple1)] Bob is quiet.[(triple2)] Bob is red.[(triple3)] Dave is furry.[(triple4)] Dave is not rough.[(triple6)] Dave is not white.[(triple7)] Dave is red.[(triple5 OR ((triple4) -> rule5))] Fiona is furry.[(triple8)] Fiona is kind.[(triple9)] Fiona is quiet.[(triple10)] Fiona is red.[(triple11 OR ((triple8) -> rule5) OR ((triple10 triple9) -> rule1))] Gary is furry.[(triple12)] Gary is kind.[(triple13)] Gary is not white.[(triple16)] Gary is red.[(triple14 OR ((triple12) -> rule5))] Gary is rough.[(triple15)]
Bob is big.
("Bob" "is" "big" "+")
triple1
Bob is quiet.
("Bob" "is" "quiet" "+")
triple2
Bob is red.
("Bob" "is" "red" "+")
triple3
Dave is furry.
("Dave" "is" "furry" "+")
triple4
Dave is not rough.
("Dave" "is" "rough" "-")
triple6
Dave is not white.
("Dave" "is" "white" "-")
triple7
Dave is red.
("Dave" "is" "red" "+")
triple5
((triple4) -> (rule5 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
triple8
Fiona is kind.
("Fiona" "is" "kind" "+")
triple9
Fiona is quiet.
("Fiona" "is" "quiet" "+")
triple10
Fiona is red.
("Fiona" "is" "red" "+")
triple11
((triple8) -> (rule5 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((triple10 triple9) -> (rule1 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
triple12
Gary is kind.
("Gary" "is" "kind" "+")
triple13
Gary is not white.
("Gary" "is" "white" "-")
triple16
Gary is red.
("Gary" "is" "red" "+")
triple14
((triple12) -> (rule5 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
triple15