Anne is furry. Anne is nice. Anne is quiet. Anne is red. Anne is round. Anne is young. Charlie is nice. Charlie is quiet. Charlie is red. Fiona is nice. Fiona is quiet. Fiona is young. All young, red things are furry. Round, red things are furry. All big, furry things are young. All nice things are red. Quiet things are big. If something is young and red then it is quiet. If Anne is round and Anne is red then Anne is quiet. If Fiona is big then Fiona is furry.
Anne is furry.
("Anne" "is" "furry" "+")
Anne is nice.
("Anne" "is" "nice" "+")
Anne is quiet.
("Anne" "is" "quiet" "+")
Anne is red.
("Anne" "is" "red" "+")
Anne is round.
("Anne" "is" "round" "+")
Anne is young.
("Anne" "is" "young" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is quiet.
("Charlie" "is" "quiet" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Fiona is quiet.
("Fiona" "is" "quiet" "+")
Fiona is young.
("Fiona" "is" "young" "+")
All young, red things are furry.
((("something" "is" "young" "+") ("something" "is" "red" "+")) -> ("something" "is" "furry" "+"))
Round, red things are furry.
((("something" "is" "round" "+") ("something" "is" "red" "+")) -> ("something" "is" "furry" "+"))
All big, furry things are young.
((("something" "is" "big" "+") ("something" "is" "furry" "+")) -> ("something" "is" "young" "+"))
All nice things are red.
((("something" "is" "nice" "+")) -> ("something" "is" "red" "+"))
Quiet things are big.
((("something" "is" "quiet" "+")) -> ("something" "is" "big" "+"))
If something is young and red then it is quiet.
((("something" "is" "young" "+") ("something" "is" "red" "+")) -> ("something" "is" "quiet" "+"))
If Anne is round and Anne is red then Anne is quiet.
((("Anne" "is" "round" "+") ("Anne" "is" "red" "+")) -> ("Anne" "is" "quiet" "+"))
If Fiona is big then Fiona is furry.
((("Fiona" "is" "big" "+")) -> ("Fiona" "is" "furry" "+"))
Anne is young.
True
1
proof
[(triple6 OR ((((triple3) -> rule5) triple1) -> rule3) OR ((((triple3) -> rule5) ((triple5 triple4) -> rule2)) -> rule3) OR ((((((triple5 triple4) -> rule7)) -> rule5) triple1) -> rule3) OR ((((triple3) -> rule5) ((triple5 ((triple2) -> rule4)) -> rule2)) -> rule3) OR ((((((triple5 triple4) -> rule7)) -> rule5) ((triple5 triple4) -> rule2)) -> rule3) OR ((((((triple5 triple4) -> rule7)) -> rule5) ((triple5 ((triple2) -> rule4)) -> rule2)) -> rule3) OR ((((((triple5 ((triple2) -> rule4)) -> rule7)) -> rule5) triple1) -> rule3) OR ((((((triple5 ((triple2) -> rule4)) -> rule7)) -> rule5) ((triple5 triple4) -> rule2)) -> rule3) OR ((((((triple5 ((triple2) -> rule4)) -> rule7)) -> rule5) ((triple5 ((triple2) -> rule4)) -> rule2)) -> rule3))]
("Anne" "is" "young" "+")
triple6
((((triple3) -> (rule5 % int2)) triple1) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
((((triple3) -> (rule5 % int3)) ((triple5 triple4) -> (rule2 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
((((((triple5 triple4) -> (rule7 % int3))) -> (rule5 % int2)) triple1) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is quiet.
("Anne" "is" "quiet" "+")
int3
((((triple3) -> (rule5 % int4)) ((triple5 ((triple2) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
int3
Anne is big.
("Anne" "is" "big" "+")
int4
((((((triple5 triple4) -> (rule7 % int4))) -> (rule5 % int3)) ((triple5 triple4) -> (rule2 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
Anne is quiet.
("Anne" "is" "quiet" "+")
int4
((((((triple5 triple4) -> (rule7 % int5))) -> (rule5 % int4)) ((triple5 ((triple2) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
int3
Anne is big.
("Anne" "is" "big" "+")
int4
Anne is quiet.
("Anne" "is" "quiet" "+")
int5
((((((triple5 ((triple2) -> (rule4 % int4))) -> (rule7 % int3))) -> (rule5 % int2)) triple1) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is quiet.
("Anne" "is" "quiet" "+")
int3
Anne is red.
("Anne" "is" "red" "+")
int4
((((((triple5 ((triple2) -> (rule4 % int5))) -> (rule7 % int4))) -> (rule5 % int3)) ((triple5 triple4) -> (rule2 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
Anne is quiet.
("Anne" "is" "quiet" "+")
int4
Anne is red.
("Anne" "is" "red" "+")
int5
((((((triple5 ((triple2) -> (rule4 % int5))) -> (rule7 % int4))) -> (rule5 % int3)) ((triple5 ((triple2) -> (rule4 % int5))) -> (rule2 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
Anne is quiet.
("Anne" "is" "quiet" "+")
int4
Anne is red.
("Anne" "is" "red" "+")
int5
Fiona is not young.
False
1
inv-proof
[(triple12 OR ((((triple11) -> rule5) ((((triple11) -> rule5)) -> rule8)) -> rule3))]
("Fiona" "is" "young" "-")
triple12
((((triple11) -> (rule5 % int3)) ((((triple11) -> (rule5 % int3))) -> (rule8 % int2))) -> (rule3 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
int3
Charlie is not young.
Unknown
inv-rconc
[@2: Charlie is young.[CWA. Example of deepest failure = (rule3 <- rule1 <- FAIL)]]
("Charlie" "is" "young" "-")
Fiona is round.
Unknown
random
[@0: Fiona is round.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "round" "+")
@0: Anne is furry.[(triple1 OR ((triple5 triple4) -> rule2) OR ((triple6 triple4) -> rule1) OR ((triple5 ((triple2) -> rule4)) -> rule2) OR ((triple6 ((triple2) -> rule4)) -> rule1))] Anne is nice.[(triple2)] Anne is quiet.[(triple3 OR ((triple5 triple4) -> rule7) OR ((triple6 triple4) -> rule6) OR ((triple5 ((triple2) -> rule4)) -> rule7) OR ((triple6 ((triple2) -> rule4)) -> rule6))] Anne is red.[(triple4 OR ((triple2) -> rule4))] Anne is round.[(triple5)] Anne is young.[(triple6 OR ((((triple3) -> rule5) triple1) -> rule3) OR ((((triple3) -> rule5) ((triple5 triple4) -> rule2)) -> rule3) OR ((((((triple5 triple4) -> rule7)) -> rule5) triple1) -> rule3) OR ((((triple3) -> rule5) ((triple5 ((triple2) -> rule4)) -> rule2)) -> rule3) OR ((((((triple5 triple4) -> rule7)) -> rule5) ((triple5 triple4) -> rule2)) -> rule3) OR ((((((triple5 triple4) -> rule7)) -> rule5) ((triple5 ((triple2) -> rule4)) -> rule2)) -> rule3) OR ((((((triple5 ((triple2) -> rule4)) -> rule7)) -> rule5) triple1) -> rule3) OR ((((((triple5 ((triple2) -> rule4)) -> rule7)) -> rule5) ((triple5 triple4) -> rule2)) -> rule3) OR ((((((triple5 ((triple2) -> rule4)) -> rule7)) -> rule5) ((triple5 ((triple2) -> rule4)) -> rule2)) -> rule3))] Charlie is nice.[(triple7)] Charlie is quiet.[(triple8)] Charlie is red.[(triple9 OR ((triple7) -> rule4))] Fiona is nice.[(triple10)] Fiona is quiet.[(triple11 OR ((triple12 ((triple10) -> rule4)) -> rule6))] Fiona is young.[(triple12 OR ((((triple11) -> rule5) ((((triple11) -> rule5)) -> rule8)) -> rule3))] @1: Anne is big.[(((triple3) -> rule5) OR ((((triple5 triple4) -> rule7)) -> rule5) OR ((((triple6 triple4) -> rule6)) -> rule5) OR ((((triple5 ((triple2) -> rule4)) -> rule7)) -> rule5) OR ((((triple6 ((triple2) -> rule4)) -> rule6)) -> rule5))] Charlie is big.[(((triple8) -> rule5))] Fiona is big.[(((triple11) -> rule5) OR ((((triple12 ((triple10) -> rule4)) -> rule6)) -> rule5))] Fiona is red.[(((triple10) -> rule4))] @2: Fiona is furry.[(((((triple11) -> rule5)) -> rule8) OR ((triple12 ((triple10) -> rule4)) -> rule1) OR ((((((triple12 ((triple10) -> rule4)) -> rule6)) -> rule5)) -> rule8))]
Anne is furry.
("Anne" "is" "furry" "+")
triple1
((triple5 triple4) -> (rule2 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
((triple6 triple4) -> (rule1 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
((triple5 ((triple2) -> (rule4 % int2))) -> (rule2 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2
((triple6 ((triple2) -> (rule4 % int2))) -> (rule1 % int1))
Anne is furry.
("Anne" "is" "furry" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2
Anne is nice.
("Anne" "is" "nice" "+")
triple2
Anne is quiet.
("Anne" "is" "quiet" "+")
triple3
((triple5 triple4) -> (rule7 % int1))
Anne is quiet.
("Anne" "is" "quiet" "+")
int1
((triple6 triple4) -> (rule6 % int1))
Anne is quiet.
("Anne" "is" "quiet" "+")
int1
((triple5 ((triple2) -> (rule4 % int2))) -> (rule7 % int1))
Anne is quiet.
("Anne" "is" "quiet" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2
((triple6 ((triple2) -> (rule4 % int2))) -> (rule6 % int1))
Anne is quiet.
("Anne" "is" "quiet" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
triple4
((triple2) -> (rule4 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
Anne is round.
("Anne" "is" "round" "+")
triple5
Anne is young.
("Anne" "is" "young" "+")
triple6
((((triple3) -> (rule5 % int2)) triple1) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
((((triple3) -> (rule5 % int3)) ((triple5 triple4) -> (rule2 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
((((((triple5 triple4) -> (rule7 % int3))) -> (rule5 % int2)) triple1) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is quiet.
("Anne" "is" "quiet" "+")
int3
((((triple3) -> (rule5 % int4)) ((triple5 ((triple2) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
int3
Anne is big.
("Anne" "is" "big" "+")
int4
((((((triple5 triple4) -> (rule7 % int4))) -> (rule5 % int3)) ((triple5 triple4) -> (rule2 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
Anne is quiet.
("Anne" "is" "quiet" "+")
int4
((((((triple5 triple4) -> (rule7 % int5))) -> (rule5 % int4)) ((triple5 ((triple2) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
int3
Anne is big.
("Anne" "is" "big" "+")
int4
Anne is quiet.
("Anne" "is" "quiet" "+")
int5
((((((triple5 ((triple2) -> (rule4 % int4))) -> (rule7 % int3))) -> (rule5 % int2)) triple1) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is quiet.
("Anne" "is" "quiet" "+")
int3
Anne is red.
("Anne" "is" "red" "+")
int4
((((((triple5 ((triple2) -> (rule4 % int5))) -> (rule7 % int4))) -> (rule5 % int3)) ((triple5 triple4) -> (rule2 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
Anne is quiet.
("Anne" "is" "quiet" "+")
int4
Anne is red.
("Anne" "is" "red" "+")
int5
((((((triple5 ((triple2) -> (rule4 % int5))) -> (rule7 % int4))) -> (rule5 % int3)) ((triple5 ((triple2) -> (rule4 % int5))) -> (rule2 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
int2
Anne is big.
("Anne" "is" "big" "+")
int3
Anne is quiet.
("Anne" "is" "quiet" "+")
int4
Anne is red.
("Anne" "is" "red" "+")
int5
Charlie is nice.
("Charlie" "is" "nice" "+")
triple7
Charlie is quiet.
("Charlie" "is" "quiet" "+")
triple8
Charlie is red.
("Charlie" "is" "red" "+")
triple9
((triple7) -> (rule4 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
triple10
Fiona is quiet.
("Fiona" "is" "quiet" "+")
triple11
((triple12 ((triple10) -> (rule4 % int2))) -> (rule6 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is young.
("Fiona" "is" "young" "+")
triple12
((((triple11) -> (rule5 % int3)) ((((triple11) -> (rule5 % int3))) -> (rule8 % int2))) -> (rule3 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
int3
Anne is big.
("Anne" "is" "big" "+")
((triple3) -> (rule5 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
((((triple5 triple4) -> (rule7 % int2))) -> (rule5 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is quiet.
("Anne" "is" "quiet" "+")
int2
((((triple6 triple4) -> (rule6 % int2))) -> (rule5 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is quiet.
("Anne" "is" "quiet" "+")
int2
((((triple5 ((triple2) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule5 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is quiet.
("Anne" "is" "quiet" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
int3
((((triple6 ((triple2) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is quiet.
("Anne" "is" "quiet" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
int3
Charlie is big.
("Charlie" "is" "big" "+")
((triple8) -> (rule5 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
((triple11) -> (rule5 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
((((triple12 ((triple10) -> (rule4 % int3))) -> (rule6 % int2))) -> (rule5 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
((triple10) -> (rule4 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
((((triple11) -> (rule5 % int2))) -> (rule8 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
int2
((triple12 ((triple10) -> (rule4 % int2))) -> (rule1 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
((((((triple12 ((triple10) -> (rule4 % int4))) -> (rule6 % int3))) -> (rule5 % int2))) -> (rule8 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
int2
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
int4