Anne is cold. Anne is young. Erin is round. Fiona is big. Fiona is kind. Fiona is nice. Gary is round. If something is cold and furry then it is kind. All young things are nice. If something is young then it is furry. All furry, nice things are kind. If something is kind then it is big. All big, round things are cold.
Anne is cold.
("Anne" "is" "cold" "+")
Anne is young.
("Anne" "is" "young" "+")
Erin is round.
("Erin" "is" "round" "+")
Fiona is big.
("Fiona" "is" "big" "+")
Fiona is kind.
("Fiona" "is" "kind" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Gary is round.
("Gary" "is" "round" "+")
If something is cold and furry then it is kind.
((("something" "is" "cold" "+") ("something" "is" "furry" "+")) -> ("something" "is" "kind" "+"))
All young things are nice.
((("something" "is" "young" "+")) -> ("something" "is" "nice" "+"))
If something is young then it is furry.
((("something" "is" "young" "+")) -> ("something" "is" "furry" "+"))
All furry, nice things are kind.
((("something" "is" "furry" "+") ("something" "is" "nice" "+")) -> ("something" "is" "kind" "+"))
If something is kind then it is big.
((("something" "is" "kind" "+")) -> ("something" "is" "big" "+"))
All big, round things are cold.
((("something" "is" "big" "+") ("something" "is" "round" "+")) -> ("something" "is" "cold" "+"))
Fiona is nice.
True
1
proof
[(triple6)]
("Fiona" "is" "nice" "+")
triple6
Erin is not round.
False
1
inv-proof
[(triple3)]
("Erin" "is" "round" "-")
triple3
Anne is furry.
True
2
proof
[(((triple2) -> rule3))]
("Anne" "is" "furry" "+")
((triple2) -> (rule3 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is not nice.
False
2
inv-proof
[(((triple2) -> rule2))]
("Anne" "is" "nice" "-")
((triple2) -> (rule2 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Anne is kind.
True
4
proof
[(((triple1 ((triple2) -> rule3)) -> rule1) OR ((((triple2) -> rule3) ((triple2) -> rule2)) -> rule4))]
("Anne" "is" "kind" "+")
((triple1 ((triple2) -> (rule3 % int2))) -> (rule1 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
((((triple2) -> (rule3 % int3)) ((triple2) -> (rule2 % int2))) -> (rule4 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is furry.
("Anne" "is" "furry" "+")
int3
Anne is not kind.
False
4
inv-proof
[(((triple1 ((triple2) -> rule3)) -> rule1) OR ((((triple2) -> rule3) ((triple2) -> rule2)) -> rule4))]
("Anne" "is" "kind" "-")
((triple1 ((triple2) -> (rule3 % int2))) -> (rule1 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
((((triple2) -> (rule3 % int3)) ((triple2) -> (rule2 % int2))) -> (rule4 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is furry.
("Anne" "is" "furry" "+")
int3
Anne is big.
True
5
proof
[(((((triple1 ((triple2) -> rule3)) -> rule1)) -> rule5) OR ((((((triple2) -> rule3) ((triple2) -> rule2)) -> rule4)) -> rule5))]
("Anne" "is" "big" "+")
((((triple1 ((triple2) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
int2
Anne is furry.
("Anne" "is" "furry" "+")
int3
((((((triple2) -> (rule3 % int4)) ((triple2) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule5 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
int2
Anne is nice.
("Anne" "is" "nice" "+")
int3
Anne is furry.
("Anne" "is" "furry" "+")
int4
Anne is not big.
False
5
inv-proof
[(((((triple1 ((triple2) -> rule3)) -> rule1)) -> rule5) OR ((((((triple2) -> rule3) ((triple2) -> rule2)) -> rule4)) -> rule5))]
("Anne" "is" "big" "-")
((((triple1 ((triple2) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
int2
Anne is furry.
("Anne" "is" "furry" "+")
int3
((((((triple2) -> (rule3 % int4)) ((triple2) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule5 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
int2
Anne is nice.
("Anne" "is" "nice" "+")
int3
Anne is furry.
("Anne" "is" "furry" "+")
int4
Erin is not cold.
Unknown
inv-rconc
[@4: Erin is cold.[CWA. Example of deepest failure = (rule6 <- rule5 <- rule4 <- rule3 <- FAIL)]]
("Erin" "is" "cold" "-")
Erin is furry.
Unknown
rconc
[@1: Erin is furry.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Erin" "is" "furry" "+")
Gary is not big.
Unknown
inv-rconc
[@3: Gary is big.[CWA. Example of deepest failure = (rule5 <- rule1 <- rule6 <- FAIL)]]
("Gary" "is" "big" "-")
Erin is kind.
Unknown
rconc
[@2: Erin is kind.[CWA. Example of deepest failure = (rule1 <- rule3 <- FAIL)]]
("Erin" "is" "kind" "+")
Gary is not young.
Unknown
inv-random
[@0: Gary is young.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "young" "-")
Fiona is round.
Unknown
random
[@0: Fiona is round.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "round" "+")
Anne is not round.
Unknown
inv-random
[@0: Anne is round.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "round" "-")
Erin is young.
Unknown
random
[@0: Erin is young.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "young" "+")
@0: Anne is cold.[(triple1)] Anne is young.[(triple2)] Erin is round.[(triple3)] Fiona is big.[(triple4 OR ((triple5) -> rule5))] Fiona is kind.[(triple5)] Fiona is nice.[(triple6)] Gary is round.[(triple7)] @1: Anne is furry.[(((triple2) -> rule3))] Anne is nice.[(((triple2) -> rule2))] @2: Anne is kind.[(((triple1 ((triple2) -> rule3)) -> rule1) OR ((((triple2) -> rule3) ((triple2) -> rule2)) -> rule4))] @3: Anne is big.[(((((triple1 ((triple2) -> rule3)) -> rule1)) -> rule5) OR ((((((triple2) -> rule3) ((triple2) -> rule2)) -> rule4)) -> rule5))]
Anne is cold.
("Anne" "is" "cold" "+")
triple1
Anne is young.
("Anne" "is" "young" "+")
triple2
Erin is round.
("Erin" "is" "round" "+")
triple3
Fiona is big.
("Fiona" "is" "big" "+")
triple4
((triple5) -> (rule5 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
triple5
Fiona is nice.
("Fiona" "is" "nice" "+")
triple6
Gary is round.
("Gary" "is" "round" "+")
triple7
Anne is furry.
("Anne" "is" "furry" "+")
((triple2) -> (rule3 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
((triple2) -> (rule2 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
((triple1 ((triple2) -> (rule3 % int2))) -> (rule1 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
((((triple2) -> (rule3 % int3)) ((triple2) -> (rule2 % int2))) -> (rule4 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is nice.
("Anne" "is" "nice" "+")
int2
Anne is furry.
("Anne" "is" "furry" "+")
int3
Anne is big.
("Anne" "is" "big" "+")
((((triple1 ((triple2) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule5 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
int2
Anne is furry.
("Anne" "is" "furry" "+")
int3
((((((triple2) -> (rule3 % int4)) ((triple2) -> (rule2 % int3))) -> (rule4 % int2))) -> (rule5 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
int2
Anne is nice.
("Anne" "is" "nice" "+")
int3
Anne is furry.
("Anne" "is" "furry" "+")
int4