plus x y ifPlus isZero x x inc y ifPlus true x y p y ifPlus false x y plus p x y times x y timesIter 0 x y 0 timesIter i x y z ifTimes ge i x i x y z ifTimes true i x y z z ifTimes false i x y z timesIter inc i x y plus z y isZero 0 true isZero s 0 false isZero s s x isZero s x inc 0 s 0 inc s x s inc x inc x s x p 0 0 p s x x p s s x s p s x ge x 0 true ge 0 s y false ge s x s y ge x y f0 0 y x f1 x y x f1 x y z f2 x y z f2 x 1 z f0 x z z f0 x y z d f1 x y z c 2.2 inc s x inc x ifTimes false i x y z plus z y p s s x p s x timesIter i x y z ge i x ge s x s y ge x y f1 x y z f2 x y z ifPlus false x y plus p x y isZero s s x isZero s x f2 x 1 z f0 x z z ifTimes false i x y z inc i plus x y isZero x times x y timesIter 0 x y 0 plus x y ifPlus isZero x x inc y f0 0 y x f1 x y x ifPlus true x y p y timesIter i x y z ifTimes ge i x i x y z ifPlus false x y p x ifTimes false i x y z timesIter inc i x y plus z y plus x y inc y true times x y timesIter 0 x y 0 false ifTimes false i x y z timesIter inc i x y plus z y timesIter i x y z ifTimes ge i x i x y z true Failed! NaTT certifiable-1.6