@@ -2413,75 +2413,6 @@ module NormMp = struct
2413
2413
let g = (norm_glob env mhr mp) in
2414
2414
g.f_ty
2415
2415
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
-
2485
2416
let is_abstract_fun f env =
2486
2417
let f = norm_xfun env f in
2487
2418
match (Fun. by_xpath f env).f_def with
@@ -2704,7 +2635,6 @@ module Op = struct
2704
2635
2705
2636
let bind ?(import = import0) name op env =
2706
2637
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
2708
2638
let env_ntbase = update_ntbase (root env) (name, op) env.env_ntbase in
2709
2639
2710
2640
{ env with
@@ -2829,7 +2759,6 @@ module Ax = struct
2829
2759
fst (lookup name env)
2830
2760
2831
2761
let bind ?(import = import0) name ax env =
2832
- let ax = NormMp. norm_ax env ax in
2833
2762
let env = if import.im_immediate then MC. bind_axiom name ax env else env in
2834
2763
{ env with env_item = mkitem import (Th_axiom (name, ax)) :: env.env_item }
2835
2764
0 commit comments