Bob is big. Bob is furry. Bob is quiet. Bob is rough. Bob is round. Erin is big. Erin is furry. Erin is green. Erin is quiet. Erin is round. Fiona is big. Fiona is furry. Fiona is green. Fiona is quiet. Fiona is red. Fiona is rough. Rough people are round. If Fiona is red and Fiona is green then Fiona is round. If someone is round and furry then they are big. All rough people are furry. If Fiona is green then Fiona is quiet. Green people are rough.
Bob is big.
("Bob" "is" "big" "+")
Bob is furry.
("Bob" "is" "furry" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Bob is round.
("Bob" "is" "round" "+")
Erin is big.
("Erin" "is" "big" "+")
Erin is furry.
("Erin" "is" "furry" "+")
Erin is green.
("Erin" "is" "green" "+")
Erin is quiet.
("Erin" "is" "quiet" "+")
Erin is round.
("Erin" "is" "round" "+")
Fiona is big.
("Fiona" "is" "big" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is green.
("Fiona" "is" "green" "+")
Fiona is quiet.
("Fiona" "is" "quiet" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Rough people are round.
((("someone" "is" "rough" "+")) -> ("someone" "is" "round" "+"))
If Fiona is red and Fiona is green then Fiona is round.
((("Fiona" "is" "red" "+") ("Fiona" "is" "green" "+")) -> ("Fiona" "is" "round" "+"))
If someone is round and furry then they are big.
((("someone" "is" "round" "+") ("someone" "is" "furry" "+")) -> ("someone" "is" "big" "+"))
All rough people are furry.
((("someone" "is" "rough" "+")) -> ("someone" "is" "furry" "+"))
If Fiona is green then Fiona is quiet.
((("Fiona" "is" "green" "+")) -> ("Fiona" "is" "quiet" "+"))
Green people are rough.
((("someone" "is" "green" "+")) -> ("someone" "is" "rough" "+"))
Fiona is red.
True
1
proof
[(triple15)]
("Fiona" "is" "red" "+")
triple15
Fiona is not big.
False
1
inv-proof
[(triple11 OR ((((triple16) -> rule1) triple12) -> rule3) OR ((((triple15 triple13) -> rule2) triple12) -> rule3) OR ((((triple16) -> rule1) ((triple16) -> rule4)) -> rule3) OR ((((triple15 triple13) -> rule2) ((triple16) -> rule4)) -> rule3) OR ((((((triple13) -> rule6)) -> rule1) triple12) -> rule3) OR ((((triple16) -> rule1) ((((triple13) -> rule6)) -> rule4)) -> rule3) OR ((((((triple13) -> rule6)) -> rule1) ((triple16) -> rule4)) -> rule3) OR ((((triple15 triple13) -> rule2) ((((triple13) -> rule6)) -> rule4)) -> rule3) OR ((((((triple13) -> rule6)) -> rule1) ((((triple13) -> rule6)) -> rule4)) -> rule3))]
("Fiona" "is" "big" "-")
triple11
((((triple16) -> (rule1 % int2)) triple12) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
((((triple15 triple13) -> (rule2 % int2)) triple12) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
((((triple16) -> (rule1 % int3)) ((triple16) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3
((((triple15 triple13) -> (rule2 % int3)) ((triple16) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3
((((((triple13) -> (rule6 % int3))) -> (rule1 % int2)) triple12) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((triple16) -> (rule1 % int4)) ((((triple13) -> (rule6 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is round.
("Fiona" "is" "round" "+")
int4
((((((triple13) -> (rule6 % int4))) -> (rule1 % int3)) ((triple16) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3
Fiona is rough.
("Fiona" "is" "rough" "+")
int4
((((triple15 triple13) -> (rule2 % int4)) ((((triple13) -> (rule6 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is round.
("Fiona" "is" "round" "+")
int4
((((((triple13) -> (rule6 % int4))) -> (rule1 % int3)) ((((triple13) -> (rule6 % int4))) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3
Fiona is rough.
("Fiona" "is" "rough" "+")
int4
Erin is not red.
Unknown
inv-random
[@0: Erin is red.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "red" "-")
Bob is green.
Unknown
random
[@0: Bob is green.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "green" "+")
@0: Bob is big.[(triple1 OR ((triple5 triple2) -> rule3) OR ((triple5 ((triple4) -> rule4)) -> rule3) OR ((((triple4) -> rule1) triple2) -> rule3) OR ((((triple4) -> rule1) ((triple4) -> rule4)) -> rule3))] Bob is furry.[(triple2 OR ((triple4) -> rule4))] Bob is quiet.[(triple3)] Bob is rough.[(triple4)] Bob is round.[(triple5 OR ((triple4) -> rule1))] Erin is big.[(triple6 OR ((triple10 triple7) -> rule3) OR ((triple10 ((((triple8) -> rule6)) -> rule4)) -> rule3) OR ((((((triple8) -> rule6)) -> rule1) triple7) -> rule3) OR ((((((triple8) -> rule6)) -> rule1) ((((triple8) -> rule6)) -> rule4)) -> rule3))] Erin is furry.[(triple7 OR ((((triple8) -> rule6)) -> rule4))] Erin is green.[(triple8)] Erin is quiet.[(triple9)] Erin is round.[(triple10 OR ((((triple8) -> rule6)) -> rule1))] Fiona is big.[(triple11 OR ((((triple16) -> rule1) triple12) -> rule3) OR ((((triple15 triple13) -> rule2) triple12) -> rule3) OR ((((triple16) -> rule1) ((triple16) -> rule4)) -> rule3) OR ((((triple15 triple13) -> rule2) ((triple16) -> rule4)) -> rule3) OR ((((((triple13) -> rule6)) -> rule1) triple12) -> rule3) OR ((((triple16) -> rule1) ((((triple13) -> rule6)) -> rule4)) -> rule3) OR ((((((triple13) -> rule6)) -> rule1) ((triple16) -> rule4)) -> rule3) OR ((((triple15 triple13) -> rule2) ((((triple13) -> rule6)) -> rule4)) -> rule3) OR ((((((triple13) -> rule6)) -> rule1) ((((triple13) -> rule6)) -> rule4)) -> rule3))] Fiona is furry.[(triple12 OR ((triple16) -> rule4) OR ((((triple13) -> rule6)) -> rule4))] Fiona is green.[(triple13)] Fiona is quiet.[(triple14 OR ((triple13) -> rule5))] Fiona is red.[(triple15)] Fiona is rough.[(triple16 OR ((triple13) -> rule6))] @1: Erin is rough.[(((triple8) -> rule6))] Fiona is round.[(((triple16) -> rule1) OR ((triple15 triple13) -> rule2) OR ((((triple13) -> rule6)) -> rule1))]
Bob is big.
("Bob" "is" "big" "+")
triple1
((triple5 triple2) -> (rule3 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
((triple5 ((triple4) -> (rule4 % int2))) -> (rule3 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((((triple4) -> (rule1 % int2)) triple2) -> (rule3 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
((((triple4) -> (rule1 % int3)) ((triple4) -> (rule4 % int2))) -> (rule3 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
triple2
((triple4) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is quiet.
("Bob" "is" "quiet" "+")
triple3
Bob is rough.
("Bob" "is" "rough" "+")
triple4
Bob is round.
("Bob" "is" "round" "+")
triple5
((triple4) -> (rule1 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Erin is big.
("Erin" "is" "big" "+")
triple6
((triple10 triple7) -> (rule3 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
((triple10 ((((triple8) -> (rule6 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
((((((triple8) -> (rule6 % int3))) -> (rule1 % int2)) triple7) -> (rule3 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is round.
("Erin" "is" "round" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
((((((triple8) -> (rule6 % int4))) -> (rule1 % int3)) ((((triple8) -> (rule6 % int4))) -> (rule4 % int2))) -> (rule3 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
int2
Erin is round.
("Erin" "is" "round" "+")
int3
Erin is rough.
("Erin" "is" "rough" "+")
int4
Erin is furry.
("Erin" "is" "furry" "+")
triple7
((((triple8) -> (rule6 % int2))) -> (rule4 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Erin is green.
("Erin" "is" "green" "+")
triple8
Erin is quiet.
("Erin" "is" "quiet" "+")
triple9
Erin is round.
("Erin" "is" "round" "+")
triple10
((((triple8) -> (rule6 % int2))) -> (rule1 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
triple11
((((triple16) -> (rule1 % int2)) triple12) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
((((triple15 triple13) -> (rule2 % int2)) triple12) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
((((triple16) -> (rule1 % int3)) ((triple16) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3
((((triple15 triple13) -> (rule2 % int3)) ((triple16) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3
((((((triple13) -> (rule6 % int3))) -> (rule1 % int2)) triple12) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
((((triple16) -> (rule1 % int4)) ((((triple13) -> (rule6 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is round.
("Fiona" "is" "round" "+")
int4
((((((triple13) -> (rule6 % int4))) -> (rule1 % int3)) ((triple16) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3
Fiona is rough.
("Fiona" "is" "rough" "+")
int4
((((triple15 triple13) -> (rule2 % int4)) ((((triple13) -> (rule6 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is round.
("Fiona" "is" "round" "+")
int4
((((((triple13) -> (rule6 % int4))) -> (rule1 % int3)) ((((triple13) -> (rule6 % int4))) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3
Fiona is rough.
("Fiona" "is" "rough" "+")
int4
Fiona is furry.
("Fiona" "is" "furry" "+")
triple12
((triple16) -> (rule4 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
((((triple13) -> (rule6 % int2))) -> (rule4 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
triple13
Fiona is quiet.
("Fiona" "is" "quiet" "+")
triple14
((triple13) -> (rule5 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
triple15
Fiona is rough.
("Fiona" "is" "rough" "+")
triple16
((triple13) -> (rule6 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
((triple8) -> (rule6 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
((triple16) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((triple15 triple13) -> (rule2 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((((triple13) -> (rule6 % int2))) -> (rule1 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2