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