f(x,y) = imp(not(x),y)
imp(imp(x,y),y) = imp(imp(y,x),x)
imp(imp(not(x),not(y)),imp(y,x)) = true
imp(imp(x,y),imp(imp(y,z),imp(x,z))) = true
imp(true,x) = x
f(cx,f(cy,cz)) != f(f(cx,cy),cz)
f(cx,cy) != f(cy,cx)
!preorder imp > f > not > true

