[T.Note note]
else []
in
- assert (Ut.is_sober csty);
- assert (Ut.is_sober cety);
+ assert (Ut.is_sober st.context csty);
+ assert (Ut.is_sober st.context cety);
if Ut.alpha_equivalence csty cety then script else
let sty, ety = H.acic_bc st.context sty, H.acic_bc st.context ety in
match name with
in
if DTI.does_not_occur (succ i) (H.cic t) || compare premise name then
{st with context = Cn.clear st.context premise}, script name
- else
+ else begin
+ assert (Ut.is_sober st.context (H.cic ity));
+ let ity = H.acic_bc st.context ity in
let br1 = [T.Id ""] in
let br2 = List.rev (T.Apply (w, "assumption") :: script None) in
let text = "non linear rewrite" in
st, [T.Branch ([br2; br1], ""); T.Cut (name, ity, text)]
+ end
| _ -> assert false
let mk_rewrite st dtext where qs tl direction t =
| C.AAppl (_, hd :: tl) when is_fwd_rewrite_left hd tl ->
mk_fwd_rewrite st dtext intro tl false v t ity
| v ->
+ assert (Ut.is_sober st.context (H.cic ity));
+ let ity = H.acic_bc st.context ity in
let qs = [proc_proof (next st) v; [T.Id ""]] in
- let ity = H.acic_bc st.context ity in
st, [T.Branch (qs, ""); T.Cut (intro, ity, dtext)]
in
st, C.Decl (H.cic ity), rqv