@@ -2413,75 +2413,6 @@ module NormMp = struct
24132413 let g = (norm_glob env mhr mp) in
24142414 g.f_ty
24152415
2416- let rec norm_form env =
2417- let has_mod b =
2418- List. exists (fun (_ ,gty ) ->
2419- match gty with GTmodty _ -> true | _ -> false ) b in
2420-
2421- let norm_form = (* FIXME: use FSmart *)
2422- EcCoreFol.Hf. memo_rec 107 (fun aux f ->
2423- match f.f_node with
2424- | Fquant (q ,bd ,f ) ->
2425- if has_mod bd then
2426- let env = Mod. add_mod_binding bd env in
2427- f_quant q bd (norm_form env f)
2428- else
2429- f_quant q bd (aux f)
2430-
2431- | Fpvar (p ,m ) ->
2432- let p' = norm_pvar env p in
2433- if p == p' then f else
2434- f_pvar p' f.f_ty m
2435-
2436- | FhoareF hf ->
2437- let pre' = aux hf.hf_pr and p' = norm_xfun env hf.hf_f
2438- and post' = aux hf.hf_po in
2439- if hf.hf_pr == pre' && hf.hf_f == p' && hf.hf_po == post' then f else
2440- f_hoareF pre' p' post'
2441-
2442- (* TODO: missing cases: FbdHoareF and every F*HoareS *)
2443-
2444- | FequivF ef ->
2445- let pre' = aux ef.ef_pr and l' = norm_xfun env ef.ef_fl
2446- and r' = norm_xfun env ef.ef_fr and post' = aux ef.ef_po in
2447- if ef.ef_pr == pre' && ef.ef_fl == l' &&
2448- ef.ef_fr == r' && ef.ef_po == post' then f else
2449- f_equivF pre' l' r' post'
2450-
2451- | Fpr pr ->
2452- let pr' = {
2453- pr_mem = pr.pr_mem;
2454- pr_fun = norm_xfun env pr.pr_fun;
2455- pr_args = aux pr.pr_args;
2456- pr_event = aux pr.pr_event;
2457- } in f_pr_r pr'
2458-
2459- | _ -> f)
2460- in
2461- norm_form
2462-
2463- let norm_op env op =
2464- let kind =
2465- match op.op_kind with
2466- | OB_pred (Some (PR_Plain f )) ->
2467- OB_pred (Some (PR_Plain (norm_form env f)))
2468-
2469- | OB_pred (Some (PR_Ind pri )) ->
2470- let pri = { pri with pri_ctors =
2471- List. map (fun x ->
2472- { x with prc_spec = List. map (norm_form env) x.prc_spec })
2473- pri.pri_ctors }
2474- in OB_pred (Some (PR_Ind pri))
2475-
2476- | _ -> op.op_kind
2477- in
2478- { op with
2479- op_kind = kind;
2480- op_ty = op.op_ty; }
2481-
2482- let norm_ax env ax =
2483- { ax with ax_spec = norm_form env ax.ax_spec }
2484-
24852416 let is_abstract_fun f env =
24862417 let f = norm_xfun env f in
24872418 match (Fun. by_xpath f env).f_def with
@@ -2704,7 +2635,6 @@ module Op = struct
27042635
27052636 let bind ?(import = import0) name op env =
27062637 let env = if import.im_immediate then MC. bind_operator name op env else env in
2707- let op = NormMp. norm_op env op in
27082638 let env_ntbase = update_ntbase (root env) (name, op) env.env_ntbase in
27092639
27102640 { env with
@@ -2829,7 +2759,6 @@ module Ax = struct
28292759 fst (lookup name env)
28302760
28312761 let bind ?(import = import0) name ax env =
2832- let ax = NormMp. norm_ax env ax in
28332762 let env = if import.im_immediate then MC. bind_axiom name ax env else env in
28342763 { env with env_item = mkitem import (Th_axiom (name, ax)) :: env.env_item }
28352764
0 commit comments