foo = !x -> !y -> (ite (eqI x 0) 0 (ite (eqI x 1) (foo (sub x 1) 1) (foo (sub x 1) False) ) );