le s x 0 false le 0 y true le s x s y le x y double 0 0 double s x s s double x log 0 logError log s x loop s x s 0 0 loop x s y z if le x s y x s y z if true x y z z if false x y z loop x double y s z maplog xs mapIter xs nil mapIter xs ys ifmap isempty xs xs ys ifmap true xs ys ys ifmap false xs ys mapIter droplast xs cons log last xs ys isempty nil true isempty cons x xs false last nil error last cons x nil x last cons x cons y xs last cons y xs droplast nil nil droplast cons x nil nil droplast cons x cons y xs cons x droplast cons y xs a b a c 2.2 mapIter xs ys ifmap isempty xs xs ys ifmap false xs ys log last xs last cons x cons y xs last cons y xs if false x y z loop x double y s z double s x double x droplast cons x cons y xs droplast cons y xs le s x s y le x y ifmap false xs ys last xs if false x y z double y ifmap false xs ys droplast xs loop x s y z le x s y mapIter xs ys isempty xs maplog xs mapIter xs nil log s x loop s x s 0 0 loop x s y z if le x s y x s y z ifmap false xs ys mapIter droplast xs cons log last xs ys true maplog xs mapIter xs nil false ifmap false xs ys mapIter droplast xs cons log last xs ys mapIter xs ys ifmap isempty xs xs ys true Failed! NaTT certifiable-1.6