Dave is big. Dave is blue. Dave is cold. Dave is furry. Dave is white. Dave is young. Fiona is blue. Fiona is round. Fiona is white. Fiona is young. If something is round then it is blue. If something is big then it is white. If something is young and big then it is blue. Round things are white. If something is big then it is white. If Fiona is furry then Fiona is young. White things are round. All round things are young.
Dave is big.
("Dave" "is" "big" "+")
Dave is blue.
("Dave" "is" "blue" "+")
Dave is cold.
("Dave" "is" "cold" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is white.
("Dave" "is" "white" "+")
Dave is young.
("Dave" "is" "young" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Fiona is white.
("Fiona" "is" "white" "+")
Fiona is young.
("Fiona" "is" "young" "+")
If something is round then it is blue.
((("something" "is" "round" "+")) -> ("something" "is" "blue" "+"))
If something is big then it is white.
((("something" "is" "big" "+")) -> ("something" "is" "white" "+"))
If something is young and big then it is blue.
((("something" "is" "young" "+") ("something" "is" "big" "+")) -> ("something" "is" "blue" "+"))
Round things are white.
((("something" "is" "round" "+")) -> ("something" "is" "white" "+"))
If something is big then it is white.
((("something" "is" "big" "+")) -> ("something" "is" "white" "+"))
If Fiona is furry then Fiona is young.
((("Fiona" "is" "furry" "+")) -> ("Fiona" "is" "young" "+"))
White things are round.
((("something" "is" "white" "+")) -> ("something" "is" "round" "+"))
All round things are young.
((("something" "is" "round" "+")) -> ("something" "is" "young" "+"))
Dave is big.
True
1
proof
[(triple1)]
("Dave" "is" "big" "+")
triple1
Dave is not white.
False
1
inv-proof
[(triple5 OR ((triple1) -> rule2) OR ((triple1) -> rule5))]
("Dave" "is" "white" "-")
triple5
((triple1) -> (rule2 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
((triple1) -> (rule5 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is round.
True
2
proof
[(((triple5) -> rule7) OR ((((triple1) -> rule2)) -> rule7) OR ((((triple1) -> rule5)) -> rule7))]
("Dave" "is" "round" "+")
((triple5) -> (rule7 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
((((triple1) -> (rule2 % int2))) -> (rule7 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
((((triple1) -> (rule5 % int2))) -> (rule7 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Dave is not round.
False
2
inv-proof
[(((triple5) -> rule7) OR ((((triple1) -> rule2)) -> rule7) OR ((((triple1) -> rule5)) -> rule7))]
("Dave" "is" "round" "-")
((triple5) -> (rule7 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
((((triple1) -> (rule2 % int2))) -> (rule7 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
((((triple1) -> (rule5 % int2))) -> (rule7 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Fiona is not furry.
Unknown
inv-random
[@0: Fiona is furry.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "furry" "-")
Fiona is big.
Unknown
random
[@0: Fiona is big.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "big" "+")
@0: Dave is big.[(triple1)] Dave is blue.[(triple2 OR ((triple6 triple1) -> rule3) OR ((((triple5) -> rule7)) -> rule1) OR ((((((triple1) -> rule2)) -> rule7)) -> rule1) OR ((((((triple1) -> rule5)) -> rule7)) -> rule1) OR ((((((triple5) -> rule7)) -> rule8) triple1) -> rule3) OR ((((((((triple1) -> rule2)) -> rule7)) -> rule8) triple1) -> rule3) OR ((((((((triple1) -> rule5)) -> rule7)) -> rule8) triple1) -> rule3))] Dave is cold.[(triple3)] Dave is furry.[(triple4)] Dave is white.[(triple5 OR ((triple1) -> rule2) OR ((triple1) -> rule5))] Dave is young.[(triple6 OR ((((triple5) -> rule7)) -> rule8) OR ((((((triple1) -> rule2)) -> rule7)) -> rule8) OR ((((((triple1) -> rule5)) -> rule7)) -> rule8))] Fiona is blue.[(triple7 OR ((triple8) -> rule1) OR ((((triple9) -> rule7)) -> rule1))] Fiona is round.[(triple8 OR ((triple9) -> rule7))] Fiona is white.[(triple9 OR ((triple8) -> rule4))] Fiona is young.[(triple10 OR ((triple8) -> rule8) OR ((((triple9) -> rule7)) -> rule8))] @1: Dave is round.[(((triple5) -> rule7) OR ((((triple1) -> rule2)) -> rule7) OR ((((triple1) -> rule5)) -> rule7))]
Dave is big.
("Dave" "is" "big" "+")
triple1
Dave is blue.
("Dave" "is" "blue" "+")
triple2
((triple6 triple1) -> (rule3 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
((((triple5) -> (rule7 % int2))) -> (rule1 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
((((((triple1) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
((((((triple1) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
((((((triple5) -> (rule7 % int3))) -> (rule8 % int2)) triple1) -> (rule3 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
int3
((((((((triple1) -> (rule2 % int4))) -> (rule7 % int3))) -> (rule8 % int2)) triple1) -> (rule3 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
int3
Dave is white.
("Dave" "is" "white" "+")
int4
((((((((triple1) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule8 % int2)) triple1) -> (rule3 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
int3
Dave is white.
("Dave" "is" "white" "+")
int4
Dave is cold.
("Dave" "is" "cold" "+")
triple3
Dave is furry.
("Dave" "is" "furry" "+")
triple4
Dave is white.
("Dave" "is" "white" "+")
triple5
((triple1) -> (rule2 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
((triple1) -> (rule5 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
triple6
((((triple5) -> (rule7 % int2))) -> (rule8 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
((((((triple1) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule8 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
((((((triple1) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule8 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
Fiona is blue.
("Fiona" "is" "blue" "+")
triple7
((triple8) -> (rule1 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
((((triple9) -> (rule7 % int2))) -> (rule1 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
triple8
((triple9) -> (rule7 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
triple9
((triple8) -> (rule4 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
triple10
((triple8) -> (rule8 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
((((triple9) -> (rule7 % int2))) -> (rule8 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
((triple5) -> (rule7 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
((((triple1) -> (rule2 % int2))) -> (rule7 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
((((triple1) -> (rule5 % int2))) -> (rule7 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2