Bob is furry. Bob is rough. Dave is kind. Dave is white. Erin is furry. Erin is kind. Fiona is furry. Fiona is green. Fiona is red. Fiona is rough. If Bob is rough and Bob is furry then Bob is red. All furry things are rough. All kind things are round. Furry, round things are kind. If something is kind then it is green. All white, green things are kind.
Bob is furry.
("Bob" "is" "furry" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Dave is kind.
("Dave" "is" "kind" "+")
Dave is white.
("Dave" "is" "white" "+")
Erin is furry.
("Erin" "is" "furry" "+")
Erin is kind.
("Erin" "is" "kind" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is green.
("Fiona" "is" "green" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
If Bob is rough and Bob is furry then Bob is red.
((("Bob" "is" "rough" "+") ("Bob" "is" "furry" "+")) -> ("Bob" "is" "red" "+"))
All furry things are rough.
((("something" "is" "furry" "+")) -> ("something" "is" "rough" "+"))
All kind things are round.
((("something" "is" "kind" "+")) -> ("something" "is" "round" "+"))
Furry, round things are kind.
((("something" "is" "furry" "+") ("something" "is" "round" "+")) -> ("something" "is" "kind" "+"))
If something is kind then it is green.
((("something" "is" "kind" "+")) -> ("something" "is" "green" "+"))
All white, green things are kind.
((("something" "is" "white" "+") ("something" "is" "green" "+")) -> ("something" "is" "kind" "+"))
Fiona is furry.
True
1
proof
[(triple7)]
("Fiona" "is" "furry" "+")
triple7
Fiona is not rough.
False
1
inv-proof
[(triple10 OR ((triple7) -> rule2))]
("Fiona" "is" "rough" "-")
triple10
((triple7) -> (rule2 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is not kind.
Unknown
inv-rconc
[@3: Fiona is kind.[CWA. Example of deepest failure = (rule4 <- rule3 <- rule6 <- FAIL)]]
("Fiona" "is" "kind" "-")
Erin is red.
Unknown
random
[@0: Erin is red.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "red" "+")
@0: Bob is furry.[(triple1)] Bob is rough.[(triple2 OR ((triple1) -> rule2))] Dave is kind.[(triple3)] Dave is white.[(triple4)] Erin is furry.[(triple5)] Erin is kind.[(triple6)] Fiona is furry.[(triple7)] Fiona is green.[(triple8)] Fiona is red.[(triple9)] Fiona is rough.[(triple10 OR ((triple7) -> rule2))] @1: Bob is red.[(((triple2 triple1) -> rule1) OR ((((triple1) -> rule2) triple1) -> rule1))] Dave is green.[(((triple3) -> rule5))] Dave is round.[(((triple3) -> rule3))] Erin is green.[(((triple6) -> rule5))] Erin is rough.[(((triple5) -> rule2))] Erin is round.[(((triple6) -> rule3))]
Bob is furry.
("Bob" "is" "furry" "+")
triple1
Bob is rough.
("Bob" "is" "rough" "+")
triple2
((triple1) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
triple3
Dave is white.
("Dave" "is" "white" "+")
triple4
Erin is furry.
("Erin" "is" "furry" "+")
triple5
Erin is kind.
("Erin" "is" "kind" "+")
triple6
Fiona is furry.
("Fiona" "is" "furry" "+")
triple7
Fiona is green.
("Fiona" "is" "green" "+")
triple8
Fiona is red.
("Fiona" "is" "red" "+")
triple9
Fiona is rough.
("Fiona" "is" "rough" "+")
triple10
((triple7) -> (rule2 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
((triple2 triple1) -> (rule1 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
((((triple1) -> (rule2 % int2)) triple1) -> (rule1 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
((triple3) -> (rule5 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
((triple3) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
((triple6) -> (rule5 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
((triple5) -> (rule2 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
Erin is round.
("Erin" "is" "round" "+")
((triple6) -> (rule3 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1