| B.Appl (_, v, t) ->
step st {m with s = (m.e, v) :: m.s} t
| B.Bind (a, B.Abst (n, w), t) ->
+ let i = tsteps m in
+ let n = if i = 0 then n else N.minus st n i in
if !G.si || N.is_not_zero st n then begin match m.s with
| [] ->
- let i = tsteps m in
if i = 0 then m, x, None else
- let n = N.minus st n i in
m, B.Bind (a, B.Abst (n, w), t), None
| (c, v) :: s ->
if !G.cc && not (N.assert_not_zero st n) then assert false;