Anne is furry. Anne is not nice. Anne is round. Anne is smart. Dave is not cold. Dave is furry. Dave is nice. Dave is rough. Dave is round. Dave is smart. Fiona is nice. Fiona is rough. Fiona is round. Fiona is smart. Fiona is young. Rough things are smart. If something is rough and smart then it is nice. Nice, smart things are young. Young things are round. If Dave is cold then Dave is young. If something is nice and not round then it is furry.
Anne is furry.
("Anne" "is" "furry" "+")
Anne is not nice.
("Anne" "is" "nice" "-")
Anne is round.
("Anne" "is" "round" "+")
Anne is smart.
("Anne" "is" "smart" "+")
Dave is not cold.
("Dave" "is" "cold" "-")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is nice.
("Dave" "is" "nice" "+")
Dave is rough.
("Dave" "is" "rough" "+")
Dave is round.
("Dave" "is" "round" "+")
Dave is smart.
("Dave" "is" "smart" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Fiona is smart.
("Fiona" "is" "smart" "+")
Fiona is young.
("Fiona" "is" "young" "+")
Rough things are smart.
((("something" "is" "rough" "+")) -> ("something" "is" "smart" "+"))
If something is rough and smart then it is nice.
((("something" "is" "rough" "+") ("something" "is" "smart" "+")) -> ("something" "is" "nice" "+"))
Nice, smart things are young.
((("something" "is" "nice" "+") ("something" "is" "smart" "+")) -> ("something" "is" "young" "+"))
Young things are round.
((("something" "is" "young" "+")) -> ("something" "is" "round" "+"))
If Dave is cold then Dave is young.
((("Dave" "is" "cold" "+")) -> ("Dave" "is" "young" "+"))
If something is nice and not round then it is furry.
((("something" "is" "nice" "+") ("something" "is" "round" "~")) -> ("something" "is" "furry" "+"))
Fiona is round.
True
1
proof
[(triple13 OR ((triple15) -> rule4) OR ((((triple11 triple14) -> rule3)) -> rule4) OR ((((triple11 ((triple12) -> rule1)) -> rule3)) -> rule4) OR ((((((triple12 triple14) -> rule2) triple14) -> rule3)) -> rule4) OR ((((((triple12 triple14) -> rule2) ((triple12) -> rule1)) -> rule3)) -> rule4) OR ((((((triple12 ((triple12) -> rule1)) -> rule2) triple14) -> rule3)) -> rule4) OR ((((((triple12 ((triple12) -> rule1)) -> rule2) ((triple12) -> rule1)) -> rule3)) -> rule4))]
("Fiona" "is" "round" "+")
triple13
((triple15) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((((triple11 triple14) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
((((triple11 ((triple12) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is smart.
("Fiona" "is" "smart" "+")
int3
((((((triple12 triple14) -> (rule2 % int3)) triple14) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
((((((triple12 triple14) -> (rule2 % int4)) ((triple12) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is smart.
("Fiona" "is" "smart" "+")
int3
Fiona is nice.
("Fiona" "is" "nice" "+")
int4
((((((triple12 ((triple12) -> (rule1 % int4))) -> (rule2 % int3)) triple14) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Fiona is smart.
("Fiona" "is" "smart" "+")
int4
((((((triple12 ((triple12) -> (rule1 % int4))) -> (rule2 % int3)) ((triple12) -> (rule1 % int4))) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Fiona is smart.
("Fiona" "is" "smart" "+")
int4
Fiona is not smart.
False
1
inv-proof
[(triple14 OR ((triple12) -> rule1))]
("Fiona" "is" "smart" "-")
triple14
((triple12) -> (rule1 % int1))
Fiona is smart.
("Fiona" "is" "smart" "+")
int1
Anne is not young.
Unknown
inv-rconc
[@1: Anne is young.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Anne" "is" "young" "-")
Anne is cold.
Unknown
random
[@0: Anne is cold.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "cold" "+")
@0: Anne is furry.[(triple1)] Anne is not nice.[(triple2)] Anne is round.[(triple3)] Anne is smart.[(triple4)] Dave is furry.[(triple6)] Dave is nice.[(triple7 OR ((triple8 triple10) -> rule2) OR ((triple8 ((triple8) -> rule1)) -> rule2))] Dave is not cold.[(triple5)] Dave is rough.[(triple8)] Dave is round.[(triple9 OR ((((triple7 triple10) -> rule3)) -> rule4) OR ((((triple7 ((triple8) -> rule1)) -> rule3)) -> rule4) OR ((((((triple8 triple10) -> rule2) triple10) -> rule3)) -> rule4) OR ((((((triple8 triple10) -> rule2) ((triple8) -> rule1)) -> rule3)) -> rule4) OR ((((((triple8 ((triple8) -> rule1)) -> rule2) triple10) -> rule3)) -> rule4) OR ((((((triple8 ((triple8) -> rule1)) -> rule2) ((triple8) -> rule1)) -> rule3)) -> rule4))] Dave is smart.[(triple10 OR ((triple8) -> rule1))] Fiona is nice.[(triple11 OR ((triple12 triple14) -> rule2) OR ((triple12 ((triple12) -> rule1)) -> rule2))] Fiona is rough.[(triple12)] Fiona is round.[(triple13 OR ((triple15) -> rule4) OR ((((triple11 triple14) -> rule3)) -> rule4) OR ((((triple11 ((triple12) -> rule1)) -> rule3)) -> rule4) OR ((((((triple12 triple14) -> rule2) triple14) -> rule3)) -> rule4) OR ((((((triple12 triple14) -> rule2) ((triple12) -> rule1)) -> rule3)) -> rule4) OR ((((((triple12 ((triple12) -> rule1)) -> rule2) triple14) -> rule3)) -> rule4) OR ((((((triple12 ((triple12) -> rule1)) -> rule2) ((triple12) -> rule1)) -> rule3)) -> rule4))] Fiona is smart.[(triple14 OR ((triple12) -> rule1))] Fiona is young.[(triple15 OR ((triple11 triple14) -> rule3) OR ((triple11 ((triple12) -> rule1)) -> rule3) OR ((((triple12 triple14) -> rule2) triple14) -> rule3) OR ((((triple12 triple14) -> rule2) ((triple12) -> rule1)) -> rule3) OR ((((triple12 ((triple12) -> rule1)) -> rule2) triple14) -> rule3) OR ((((triple12 ((triple12) -> rule1)) -> rule2) ((triple12) -> rule1)) -> rule3))] @1: Dave is young.[(((triple7 triple10) -> rule3) OR ((triple7 ((triple8) -> rule1)) -> rule3) OR ((((triple8 triple10) -> rule2) triple10) -> rule3) OR ((((triple8 triple10) -> rule2) ((triple8) -> rule1)) -> rule3) OR ((((triple8 ((triple8) -> rule1)) -> rule2) triple10) -> rule3) OR ((((triple8 ((triple8) -> rule1)) -> rule2) ((triple8) -> rule1)) -> rule3))]
Anne is furry.
("Anne" "is" "furry" "+")
triple1
Anne is not nice.
("Anne" "is" "nice" "-")
triple2
Anne is round.
("Anne" "is" "round" "+")
triple3
Anne is smart.
("Anne" "is" "smart" "+")
triple4
Dave is furry.
("Dave" "is" "furry" "+")
triple6
Dave is nice.
("Dave" "is" "nice" "+")
triple7
((triple8 triple10) -> (rule2 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((triple8 ((triple8) -> (rule1 % int2))) -> (rule2 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is smart.
("Dave" "is" "smart" "+")
int2
Dave is not cold.
("Dave" "is" "cold" "-")
triple5
Dave is rough.
("Dave" "is" "rough" "+")
triple8
Dave is round.
("Dave" "is" "round" "+")
triple9
((((triple7 triple10) -> (rule3 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
((((triple7 ((triple8) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
Dave is smart.
("Dave" "is" "smart" "+")
int3
((((((triple8 triple10) -> (rule2 % int3)) triple10) -> (rule3 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
((((((triple8 triple10) -> (rule2 % int4)) ((triple8) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
Dave is smart.
("Dave" "is" "smart" "+")
int3
Dave is nice.
("Dave" "is" "nice" "+")
int4
((((((triple8 ((triple8) -> (rule1 % int4))) -> (rule2 % int3)) triple10) -> (rule3 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Dave is smart.
("Dave" "is" "smart" "+")
int4
((((((triple8 ((triple8) -> (rule1 % int4))) -> (rule2 % int3)) ((triple8) -> (rule1 % int4))) -> (rule3 % int2))) -> (rule4 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Dave is smart.
("Dave" "is" "smart" "+")
int4
Dave is smart.
("Dave" "is" "smart" "+")
triple10
((triple8) -> (rule1 % int1))
Dave is smart.
("Dave" "is" "smart" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
triple11
((triple12 triple14) -> (rule2 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
((triple12 ((triple12) -> (rule1 % int2))) -> (rule2 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is smart.
("Fiona" "is" "smart" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
triple12
Fiona is round.
("Fiona" "is" "round" "+")
triple13
((triple15) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((((triple11 triple14) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
((((triple11 ((triple12) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is smart.
("Fiona" "is" "smart" "+")
int3
((((((triple12 triple14) -> (rule2 % int3)) triple14) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
((((((triple12 triple14) -> (rule2 % int4)) ((triple12) -> (rule1 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is smart.
("Fiona" "is" "smart" "+")
int3
Fiona is nice.
("Fiona" "is" "nice" "+")
int4
((((((triple12 ((triple12) -> (rule1 % int4))) -> (rule2 % int3)) triple14) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Fiona is smart.
("Fiona" "is" "smart" "+")
int4
((((((triple12 ((triple12) -> (rule1 % int4))) -> (rule2 % int3)) ((triple12) -> (rule1 % int4))) -> (rule3 % int2))) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Fiona is smart.
("Fiona" "is" "smart" "+")
int4
Fiona is smart.
("Fiona" "is" "smart" "+")
triple14
((triple12) -> (rule1 % int1))
Fiona is smart.
("Fiona" "is" "smart" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
triple15
((triple11 triple14) -> (rule3 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
((triple11 ((triple12) -> (rule1 % int2))) -> (rule3 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is smart.
("Fiona" "is" "smart" "+")
int2
((((triple12 triple14) -> (rule2 % int2)) triple14) -> (rule3 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
((((triple12 triple14) -> (rule2 % int3)) ((triple12) -> (rule1 % int2))) -> (rule3 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is smart.
("Fiona" "is" "smart" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
((((triple12 ((triple12) -> (rule1 % int3))) -> (rule2 % int2)) triple14) -> (rule3 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is smart.
("Fiona" "is" "smart" "+")
int3
((((triple12 ((triple12) -> (rule1 % int3))) -> (rule2 % int2)) ((triple12) -> (rule1 % int3))) -> (rule3 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is smart.
("Fiona" "is" "smart" "+")
int3
Dave is young.
("Dave" "is" "young" "+")
((triple7 triple10) -> (rule3 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
((triple7 ((triple8) -> (rule1 % int2))) -> (rule3 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is smart.
("Dave" "is" "smart" "+")
int2
((((triple8 triple10) -> (rule2 % int2)) triple10) -> (rule3 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((triple8 triple10) -> (rule2 % int3)) ((triple8) -> (rule1 % int2))) -> (rule3 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is smart.
("Dave" "is" "smart" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
((((triple8 ((triple8) -> (rule1 % int3))) -> (rule2 % int2)) triple10) -> (rule3 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is smart.
("Dave" "is" "smart" "+")
int3
((((triple8 ((triple8) -> (rule1 % int3))) -> (rule2 % int2)) ((triple8) -> (rule1 % int3))) -> (rule3 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is smart.
("Dave" "is" "smart" "+")
int3