Bob is furry. Bob is nice. Bob is round. Dave is not green. Dave is kind. Dave is nice. Dave is rough. Fiona is cold. Fiona is kind. Fiona is nice. Fiona is rough. Gary is furry. Gary is not green. Gary is nice. Gary is rough. If someone is rough then they are kind. If someone is cold and not green then they are kind. If someone is green then they are nice. If someone is nice and not cold then they are round. If someone is kind then they are not round. If someone is green and not round then they are furry.
Bob is furry.
("Bob" "is" "furry" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is round.
("Bob" "is" "round" "+")
Dave is not green.
("Dave" "is" "green" "-")
Dave is kind.
("Dave" "is" "kind" "+")
Dave is nice.
("Dave" "is" "nice" "+")
Dave is rough.
("Dave" "is" "rough" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is kind.
("Fiona" "is" "kind" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Gary is furry.
("Gary" "is" "furry" "+")
Gary is not green.
("Gary" "is" "green" "-")
Gary is nice.
("Gary" "is" "nice" "+")
Gary is rough.
("Gary" "is" "rough" "+")
If someone is rough then they are kind.
((("someone" "is" "rough" "+")) -> ("someone" "is" "kind" "+"))
If someone is cold and not green then they are kind.
((("someone" "is" "cold" "+") ("someone" "is" "green" "~")) -> ("someone" "is" "kind" "+"))
If someone is green then they are nice.
((("someone" "is" "green" "+")) -> ("someone" "is" "nice" "+"))
If someone is nice and not cold then they are round.
((("someone" "is" "nice" "+") ("someone" "is" "cold" "~")) -> ("someone" "is" "round" "+"))
If someone is kind then they are not round.
((("someone" "is" "kind" "+")) -> ("someone" "is" "round" "-"))
If someone is green and not round then they are furry.
((("someone" "is" "green" "+") ("someone" "is" "round" "~")) -> ("someone" "is" "furry" "+"))
Gary is furry.
True
1
proof
[(triple12)]
("Gary" "is" "furry" "+")
triple12
Gary is not rough.
False
1
inv-proof
[(triple15)]
("Gary" "is" "rough" "-")
triple15
Dave is not round.
True
2
proof
[(((triple5) -> rule5) OR ((((triple7) -> rule1)) -> rule5))]
("Dave" "is" "round" "-")
((triple5) -> (rule5 % int1))
Dave is not round.
("Dave" "is" "round" "-")
int1
((((triple7) -> (rule1 % int2))) -> (rule5 % int1))
Dave is not round.
("Dave" "is" "round" "-")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Dave is round.
False
2
inv-proof
[(((triple5) -> rule5) OR ((((triple7) -> rule1)) -> rule5))]
("Dave" "is" "round" "+")
((triple5) -> (rule5 % int1))
Dave is not round.
("Dave" "is" "round" "-")
int1
((((triple7) -> (rule1 % int2))) -> (rule5 % int1))
Dave is not round.
("Dave" "is" "round" "-")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Gary is not round.
True
3
proof
[(((((triple15) -> rule1)) -> rule5))]
("Gary" "is" "round" "-")
((((triple15) -> (rule1 % int2))) -> (rule5 % int1))
Gary is not round.
("Gary" "is" "round" "-")
int1
Gary is kind.
("Gary" "is" "kind" "+")
int2
Gary is round.
False
3
inv-proof
[(((((triple15) -> rule1)) -> rule5))]
("Gary" "is" "round" "+")
((((triple15) -> (rule1 % int2))) -> (rule5 % int1))
Gary is not round.
("Gary" "is" "round" "-")
int1
Gary is kind.
("Gary" "is" "kind" "+")
int2
Dave is not furry.
Unknown
inv-rconc
[@1: Dave is furry.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Dave" "is" "furry" "-")
Fiona is furry.
Unknown
rconc
[@1: Fiona is furry.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Fiona" "is" "furry" "+")
Bob is not kind.
Unknown
inv-rconc
[@1: Bob is kind.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Bob" "is" "kind" "-")
Fiona is green.
Unknown
random
[@0: Fiona is green.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "green" "+")
Bob is not cold.
Unknown
inv-random
[@0: Bob is cold.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "cold" "-")
Dave is cold.
Unknown
random
[@0: Dave is cold.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "cold" "+")
@0: Bob is furry.[(triple1)] Bob is nice.[(triple2)] Bob is round.[(triple3)] Dave is kind.[(triple5 OR ((triple7) -> rule1))] Dave is nice.[(triple6)] Dave is not green.[(triple4)] Dave is rough.[(triple7)] Fiona is cold.[(triple8)] Fiona is kind.[(triple9 OR ((triple11) -> rule1))] Fiona is nice.[(triple10)] Fiona is rough.[(triple11)] Gary is furry.[(triple12)] Gary is nice.[(triple14)] Gary is not green.[(triple13)] Gary is rough.[(triple15)] @1: Dave is not round.[(((triple5) -> rule5) OR ((((triple7) -> rule1)) -> rule5))] Fiona is not round.[(((triple9) -> rule5) OR ((((triple11) -> rule1)) -> rule5))] Gary is kind.[(((triple15) -> rule1))] @2: Gary is not round.[(((((triple15) -> rule1)) -> rule5))]
Bob is furry.
("Bob" "is" "furry" "+")
triple1
Bob is nice.
("Bob" "is" "nice" "+")
triple2
Bob is round.
("Bob" "is" "round" "+")
triple3
Dave is kind.
("Dave" "is" "kind" "+")
triple5
((triple7) -> (rule1 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
triple6
Dave is not green.
("Dave" "is" "green" "-")
triple4
Dave is rough.
("Dave" "is" "rough" "+")
triple7
Fiona is cold.
("Fiona" "is" "cold" "+")
triple8
Fiona is kind.
("Fiona" "is" "kind" "+")
triple9
((triple11) -> (rule1 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
triple10
Fiona is rough.
("Fiona" "is" "rough" "+")
triple11
Gary is furry.
("Gary" "is" "furry" "+")
triple12
Gary is nice.
("Gary" "is" "nice" "+")
triple14
Gary is not green.
("Gary" "is" "green" "-")
triple13
Gary is rough.
("Gary" "is" "rough" "+")
triple15
Dave is not round.
("Dave" "is" "round" "-")
((triple5) -> (rule5 % int1))
Dave is not round.
("Dave" "is" "round" "-")
int1
((((triple7) -> (rule1 % int2))) -> (rule5 % int1))
Dave is not round.
("Dave" "is" "round" "-")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Fiona is not round.
("Fiona" "is" "round" "-")
((triple9) -> (rule5 % int1))
Fiona is not round.
("Fiona" "is" "round" "-")
int1
((((triple11) -> (rule1 % int2))) -> (rule5 % int1))
Fiona is not round.
("Fiona" "is" "round" "-")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Gary is kind.
("Gary" "is" "kind" "+")
((triple15) -> (rule1 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is not round.
("Gary" "is" "round" "-")
((((triple15) -> (rule1 % int2))) -> (rule5 % int1))
Gary is not round.
("Gary" "is" "round" "-")
int1
Gary is kind.
("Gary" "is" "kind" "+")
int2