@@ -782,13 +782,13 @@ module MC = struct
782782
783783 match tyd.tyd_type with
784784 | Concrete _ -> mc
785- | Abstract _ -> mc
785+ | Abstract -> mc
786786
787787 | Datatype dtype ->
788788 let cs = dtype.tydt_ctors in
789789 let schelim = dtype.tydt_schelim in
790790 let schcase = dtype.tydt_schcase in
791- let params = List. map ( fun ( x , _ ) -> tvar x) tyd.tyd_params in
791+ let params = List. map tvar tyd.tyd_params in
792792 let for1 i (c , aty ) =
793793 let aty = EcTypes. toarrow aty (tconstr mypath params) in
794794 let aty = EcSubst. freshen_type (tyd.tyd_params, aty) in
@@ -829,7 +829,7 @@ module MC = struct
829829 ) mc projs
830830
831831 | Record (scheme , fields ) ->
832- let params = List. map ( fun ( x , _ ) -> tvar x) tyd.tyd_params in
832+ let params = List. map tvar tyd.tyd_params in
833833 let nfields = List. length fields in
834834 let cfields =
835835 let for1 i (f , aty ) =
@@ -911,7 +911,7 @@ module MC = struct
911911 let opname = EcIdent. name opid in
912912 let optype = EcSubst. subst_ty tsubst optype in
913913 let opdecl =
914- mk_op ~opaque: optransparent [(self, Sp. singleton mypath )]
914+ mk_op ~opaque: optransparent [(self)]
915915 optype (Some OP_TC ) loca
916916 in (opid, xpath opname, optype, opdecl)
917917 in
@@ -931,7 +931,7 @@ module MC = struct
931931 List. map
932932 (fun (x , ax ) ->
933933 let ax = EcSubst. subst_form fsubst ax in
934- (x, { ax_tparams = [(self, Sp. singleton mypath )];
934+ (x, { ax_tparams = [(self)];
935935 ax_spec = ax;
936936 ax_kind = `Lemma ;
937937 ax_loca = loca;
@@ -1107,9 +1107,6 @@ module MC = struct
11071107 else
11081108 (add2mc _up_theory xsubth cth mc, None )
11091109
1110- | Th_typeclass (x , tc ) ->
1111- (add2mc _up_typeclass x tc mc, None )
1112-
11131110 | Th_baserw (x , _ ) ->
11141111 (add2mc _up_rwbase x (expath x) mc, None )
11151112
@@ -1406,11 +1403,6 @@ module TypeClass = struct
14061403 let myself = EcPath. pqname (root env) name in
14071404 { env with env_tc = TC.Graph. add ~src: myself ~dst: prt env.env_tc }
14081405
1409- let bind ?(import = true ) name tc env =
1410- let env = rebind name tc env in
1411- let item = Th_typeclass (name, tc) in
1412- { env with env_item = mkitem ~import item :: env .env_item }
1413-
14141406 let lookup qname (env : env ) =
14151407 MC. lookup_typeclass qname env
14161408
@@ -2548,7 +2540,7 @@ module Ty = struct
25482540 match by_path_opt name env with
25492541 | Some ({ tyd_type = Concrete body } as tyd ) ->
25502542 Tvar. subst
2551- (Tvar. init ( List. map fst tyd.tyd_params) args)
2543+ (Tvar. init tyd.tyd_params args)
25522544 body
25532545 | _ -> raise (LookupFailure (`Path name))
25542546
@@ -2603,22 +2595,7 @@ module Ty = struct
26032595 | _ -> None
26042596
26052597 let rebind name ty env =
2606- let env = MC. bind_tydecl name ty env in
2607-
2608- match ty.tyd_type with
2609- | Abstract tc ->
2610- let myty =
2611- let myp = EcPath. pqname (root env) name in
2612- let typ = List. map (fst_map EcIdent. fresh) ty.tyd_params in
2613- (typ, EcTypes. tconstr myp (List. map (tvar |- fst) typ)) in
2614- let instr =
2615- Sp. fold
2616- (fun p inst -> TypeClass. bind_instance myty (`General p) inst)
2617- tc env.env_tci
2618- in
2619- { env with env_tci = instr }
2620-
2621- | _ -> env
2598+ MC. bind_tydecl name ty env
26222599
26232600 let bind ?(import = true ) name ty env =
26242601 let env = rebind name ty env in
@@ -2722,7 +2699,7 @@ module Op = struct
27222699
27232700 let reduce ?mode ?nargs env p tys =
27242701 let op, f = core_reduce ?mode ?nargs env p in
2725- Tvar. f_subst ~freshen: true ( List. map fst op.op_tparams) tys f
2702+ Tvar. f_subst ~freshen: true op.op_tparams tys f
27262703
27272704 let is_projection env p =
27282705 try EcDecl. is_proj (by_path p env)
@@ -2815,7 +2792,7 @@ module Ax = struct
28152792 let instantiate p tys env =
28162793 match by_path_opt p env with
28172794 | Some ({ ax_spec = f } as ax ) ->
2818- Tvar. f_subst ~freshen: true ( List. map fst ax.ax_tparams) tys f
2795+ Tvar. f_subst ~freshen: true ax.ax_tparams tys f
28192796 | _ -> raise (LookupFailure (`Path p))
28202797
28212798 let iter ?name f (env : env ) =
@@ -2930,20 +2907,6 @@ module Theory = struct
29302907 | Th_theory (x , cth ) when cth.cth_mode = `Concrete ->
29312908 bind_instance_th (xpath x) inst cth.cth_items
29322909
2933- | Th_type (x , tyd ) -> begin
2934- match tyd.tyd_type with
2935- | Abstract tc ->
2936- let myty =
2937- let typ = List. map (fst_map EcIdent. fresh) tyd.tyd_params in
2938- (typ, EcTypes. tconstr (xpath x) (List. map (tvar |- fst) typ))
2939- in
2940- Sp. fold
2941- (fun p inst -> TypeClass. bind_instance myty (`General p) inst)
2942- tc inst
2943-
2944- | _ -> inst
2945- end
2946-
29472910 | _ -> inst
29482911
29492912 (* ------------------------------------------------------------------ *)
@@ -2964,17 +2927,6 @@ module Theory = struct
29642927 end
29652928 | _ -> odfl base (tx path base item.ti_item)
29662929
2967- (* ------------------------------------------------------------------ *)
2968- let bind_tc_th =
2969- let for1 path base = function
2970- | Th_typeclass (x , tc ) ->
2971- tc.tc_prt |> omap (fun prt ->
2972- let src = EcPath. pqname path x in
2973- TC.Graph. add ~src ~dst: prt base)
2974- | _ -> None
2975-
2976- in bind_base_th for1
2977-
29782930 (* ------------------------------------------------------------------ *)
29792931 let bind_br_th =
29802932 let for1 path base = function
@@ -3047,14 +2999,13 @@ module Theory = struct
30472999 | _ , `Concrete ->
30483000 let thname = EcPath. pqname (root env) cth.name in
30493001 let env_tci = bind_instance_th thname env.env_tci items in
3050- let env_tc = bind_tc_th thname env.env_tc items in
30513002 let env_rwbase = bind_br_th thname env.env_rwbase items in
30523003 let env_atbase = bind_at_th thname env.env_atbase items in
30533004 let env_ntbase = bind_nt_th thname env.env_ntbase items in
30543005 let env_redbase = bind_rd_th thname env.env_redbase items in
30553006 let env =
30563007 { env with
3057- env_tci ; env_tc ; env_rwbase;
3008+ env_tci ; env_rwbase;
30583009 env_atbase; env_ntbase; env_redbase; }
30593010 in
30603011 add_restr_th thname env items
@@ -3106,9 +3057,6 @@ module Theory = struct
31063057 | Th_theory (x , ({cth_mode = `Abstract } as th )) ->
31073058 MC. import_theory (xpath x) th env
31083059
3109- | Th_typeclass (x , tc ) ->
3110- MC. import_typeclass (xpath x) tc env
3111-
31123060 | Th_baserw (x , _ ) ->
31133061 MC. import_rwbase (xpath x) env
31143062
@@ -3265,7 +3213,6 @@ module Theory = struct
32653213 | `Concrete ->
32663214 { env with
32673215 env_tci = bind_instance_th thpath env.env_tci cth.cth_items;
3268- env_tc = bind_tc_th thpath env.env_tc cth.cth_items;
32693216 env_rwbase = bind_br_th thpath env.env_rwbase cth.cth_items;
32703217 env_atbase = bind_at_th thpath env.env_atbase cth.cth_items;
32713218 env_ntbase = bind_nt_th thpath env.env_ntbase cth.cth_items;
0 commit comments