a a divides 0 a s y true a a divides a s x a s y a a a div2 x a s y y a a a div2 x y 0 a a divides x y a a a div2 0 y a s z false a a a div2 a s x y a s z a a a div2 x y z a a filter f nil nil a a filter f a a cons x xs a a a if a f x x a a filter f xs a a a if true x xs a a cons x xs a a a if false x xs xs a a not f x a not2 a f x a not2 true false a not2 false true a sieve nil nil a sieve a a cons x xs a a cons x a sieve a a filter a not a divides x xs 2.2 a a divides a s x a s y a a div2 x a s y a sieve a a cons x xs a a filter a not a divides x xs a a filter f a a cons x xs a f x a sieve a a cons x xs a divides x a a filter f a a cons x xs a a if a f x x a a a if true x xs a cons x a a filter f a a cons x xs a if a f x a a filter f a a cons x xs a a filter f xs a a a div2 x y 0 a a divides x y a sieve a a cons x xs a filter a not a divides x a a filter f a a cons x xs a a a if a f x x a a filter f xs a sieve a a cons x xs a sieve a a filter a not a divides x xs a a a if true x xs a a cons x xs a a a div2 a s x y a s z a a a div2 x y z a a a div2 a s x y a s z a div2 x a a a div2 x y 0 a divides x a a not f x a f x a a divides a s x a s y a div2 x a a divides a s x a s y a a a div2 x a s y y a sieve a a cons x xs a not a divides x a a not f x a not2 a f x a sieve a a cons x xs a a cons x a sieve a a filter a not a divides x xs a a a div2 a s x y a s z a a div2 x y true a a filter f a a cons x xs a a filter f xs a a not f x a f x a a filter f a a cons x xs a f x a sieve a a cons x xs a a filter a not a divides x xs a sieve a a cons x xs a sieve a a filter a not a divides x xs true Failed! NaTT certifiable-1.6