| B.Appl (_, v, t) ->
step st {m with s = (m.e, v) :: m.s} t
| B.Bind (a, B.Abst (n, w), t) ->
-(* if not !G.cc && st.S.si && N.to_string st.S.lenv n = "0" then begin
- if !G.summary then O.add ~upsilon:1 ();
- let e = B.push m.e m.e a B.Void in
- step st {m with e = e} t
- end else *) begin match m.s with
+ 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 v = if assert_tstep m false then B.Cast (E.empty_node, w, v) else v in
let e = B.push m.e c a (B.abbr v) in
step st {m with e = e; s = s} t
+ end else begin
+ if !G.summary then O.add ~upsilon:1 ();
+ let e = B.push m.e m.e a B.Void in
+ step st {m with e = e} t
end
| B.Bind (a, b, t) ->
if !G.summary then O.add ~theta:(List.length m.s) ();