Dave is cold. Dave is round. Fiona is not big. Fiona is cold. Fiona is red. Fiona is round. Fiona is young. Cold, round people are nice. If someone is nice then they are not furry. If someone is round then they are cold. If someone is red and not young then they are big. If someone is furry and cold then they are not red. If someone is nice and furry then they are not round.
Dave is cold.
("Dave" "is" "cold" "+")
Dave is round.
("Dave" "is" "round" "+")
Fiona is not big.
("Fiona" "is" "big" "-")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Fiona is young.
("Fiona" "is" "young" "+")
Cold, round people are nice.
((("someone" "is" "cold" "+") ("someone" "is" "round" "+")) -> ("someone" "is" "nice" "+"))
If someone is nice then they are not furry.
((("someone" "is" "nice" "+")) -> ("someone" "is" "furry" "-"))
If someone is round then they are cold.
((("someone" "is" "round" "+")) -> ("someone" "is" "cold" "+"))
If someone is red and not young then they are big.
((("someone" "is" "red" "+") ("someone" "is" "young" "~")) -> ("someone" "is" "big" "+"))
If someone is furry and cold then they are not red.
((("someone" "is" "furry" "+") ("someone" "is" "cold" "+")) -> ("someone" "is" "red" "-"))
If someone is nice and furry then they are not round.
((("someone" "is" "nice" "+") ("someone" "is" "furry" "+")) -> ("someone" "is" "round" "-"))
Fiona is round.
True
1
proof
[(triple6)]
("Fiona" "is" "round" "+")
triple6
Fiona is big.
False
1
inv-proof
[(triple3)]
("Fiona" "is" "big" "+")
triple3
Dave is not big.
Unknown
inv-rconc
[@1: Dave is big.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Dave" "is" "big" "-")
Dave is young.
Unknown
random
[@0: Dave is young.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "young" "+")
@0: Dave is cold.[(triple1 OR ((triple2) -> rule3))] Dave is round.[(triple2)] Fiona is cold.[(triple4 OR ((triple6) -> rule3))] Fiona is not big.[(triple3)] Fiona is red.[(triple5)] Fiona is round.[(triple6)] Fiona is young.[(triple7)] @1: Dave is nice.[(((triple1 triple2) -> rule1) OR ((((triple2) -> rule3) triple2) -> rule1))] Fiona is nice.[(((triple4 triple6) -> rule1) OR ((((triple6) -> rule3) triple6) -> rule1))] @2: Dave is not furry.[(((((triple1 triple2) -> rule1)) -> rule2) OR ((((((triple2) -> rule3) triple2) -> rule1)) -> rule2))] Fiona is not furry.[(((((triple4 triple6) -> rule1)) -> rule2) OR ((((((triple6) -> rule3) triple6) -> rule1)) -> rule2))]
Dave is cold.
("Dave" "is" "cold" "+")
triple1
((triple2) -> (rule3 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
triple2
Fiona is cold.
("Fiona" "is" "cold" "+")
triple4
((triple6) -> (rule3 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is not big.
("Fiona" "is" "big" "-")
triple3
Fiona is red.
("Fiona" "is" "red" "+")
triple5
Fiona is round.
("Fiona" "is" "round" "+")
triple6
Fiona is young.
("Fiona" "is" "young" "+")
triple7
Dave is nice.
("Dave" "is" "nice" "+")
((triple1 triple2) -> (rule1 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((((triple2) -> (rule3 % int2)) triple2) -> (rule1 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
((triple4 triple6) -> (rule1 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
((((triple6) -> (rule3 % int2)) triple6) -> (rule1 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Dave is not furry.
("Dave" "is" "furry" "-")
((((triple1 triple2) -> (rule1 % int2))) -> (rule2 % int1))
Dave is not furry.
("Dave" "is" "furry" "-")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((((triple2) -> (rule3 % int3)) triple2) -> (rule1 % int2))) -> (rule2 % int1))
Dave is not furry.
("Dave" "is" "furry" "-")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is cold.
("Dave" "is" "cold" "+")
int3
Fiona is not furry.
("Fiona" "is" "furry" "-")
((((triple4 triple6) -> (rule1 % int2))) -> (rule2 % int1))
Fiona is not furry.
("Fiona" "is" "furry" "-")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
((((((triple6) -> (rule3 % int3)) triple6) -> (rule1 % int2))) -> (rule2 % int1))
Fiona is not furry.
("Fiona" "is" "furry" "-")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
int3