Anne is round. Bob is furry. Erin is nice. Gary is furry. Nice people are rough. If someone is rough and red then they are round. Blue people are green. All round, rough people are nice. All nice people are furry. If Erin is blue and Erin is nice then Erin is furry.
Anne is round.
("Anne" "is" "round" "+")
Bob is furry.
("Bob" "is" "furry" "+")
Erin is nice.
("Erin" "is" "nice" "+")
Gary is furry.
("Gary" "is" "furry" "+")
Nice people are rough.
((("someone" "is" "nice" "+")) -> ("someone" "is" "rough" "+"))
If someone is rough and red then they are round.
((("someone" "is" "rough" "+") ("someone" "is" "red" "+")) -> ("someone" "is" "round" "+"))
Blue people are green.
((("someone" "is" "blue" "+")) -> ("someone" "is" "green" "+"))
All round, rough people are nice.
((("someone" "is" "round" "+") ("someone" "is" "rough" "+")) -> ("someone" "is" "nice" "+"))
All nice people are furry.
((("someone" "is" "nice" "+")) -> ("someone" "is" "furry" "+"))
If Erin is blue and Erin is nice then Erin is furry.
((("Erin" "is" "blue" "+") ("Erin" "is" "nice" "+")) -> ("Erin" "is" "furry" "+"))
Bob is furry.
True
1
proof
[(triple2)]
("Bob" "is" "furry" "+")
triple2
Erin is not nice.
False
1
inv-proof
[(triple3)]
("Erin" "is" "nice" "-")
triple3
Erin is rough.
True
2
proof
[(((triple3) -> rule1))]
("Erin" "is" "rough" "+")
((triple3) -> (rule1 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
Erin is not furry.
False
2
inv-proof
[(((triple3) -> rule5))]
("Erin" "is" "furry" "-")
((triple3) -> (rule5 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Anne is not furry.
Unknown
inv-rconc
[@3: Anne is furry.[CWA. Example of deepest failure = (rule5 <- rule4 <- rule1 <- FAIL)]]
("Anne" "is" "furry" "-")
Anne is rough.
Unknown
rconc
[@2: Anne is rough.[CWA. Example of deepest failure = (rule1 <- rule4 <- FAIL)]]
("Anne" "is" "rough" "+")
Gary is not red.
Unknown
inv-random
[@0: Gary is red.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "red" "-")
Erin is red.
Unknown
random
[@0: Erin is red.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "red" "+")
@0: Anne is round.[(triple1)] Bob is furry.[(triple2)] Erin is nice.[(triple3)] Gary is furry.[(triple4)] @1: Erin is furry.[(((triple3) -> rule5))] Erin is rough.[(((triple3) -> rule1))]
Anne is round.
("Anne" "is" "round" "+")
triple1
Bob is furry.
("Bob" "is" "furry" "+")
triple2
Erin is nice.
("Erin" "is" "nice" "+")
triple3
Gary is furry.
("Gary" "is" "furry" "+")
triple4
Erin is furry.
("Erin" "is" "furry" "+")
((triple3) -> (rule5 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
((triple3) -> (rule1 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1