@@ -167,6 +167,11 @@ end = struct
167167 }
168168end
169169
170+ type actmem = [
171+ | `SS of EcMemory .memory
172+ | `TS of EcMemory .memory * EcMemory .memory
173+ ]
174+
170175(* -------------------------------------------------------------------- *)
171176type preenv = {
172177 env_top : EcPath .path option ;
@@ -176,8 +181,7 @@ type preenv = {
176181 env_comps : mc Mip .t ;
177182 env_locals : (EcIdent .t * EcTypes .ty ) MMsym .t ;
178183 env_memories : EcMemory .memtype Mmem .t ;
179- env_actmem_ss : EcMemory .memory option ;
180- env_actmem_ts : (EcMemory .memory * EcMemory .memory ) option ;
184+ env_actmem : actmem option ;
181185 env_abs_st : EcModules .abs_uses Mid .t ;
182186 env_tci : ((ty_params * ty ) * tcinstance ) list ;
183187 env_tc : TC .graph ;
@@ -306,8 +310,7 @@ let empty gstate =
306310 env_comps = Mip. singleton (IPPath path) (empty_mc None );
307311 env_locals = MMsym. empty;
308312 env_memories = Mmem. empty;
309- env_actmem_ss= None ;
310- env_actmem_ts= None ;
313+ env_actmem = None ;
311314 env_abs_st = Mid. empty;
312315 env_tci = [] ;
313316 env_tc = TC.Graph. empty;
@@ -1260,33 +1263,40 @@ module Memory = struct
12601263 let set_active_ss (me : memory ) (env : env ) =
12611264 match byid me env with
12621265 | None -> raise (MEError (UnknownMemory (`Memory me)))
1263- | Some _ -> { env with env_actmem_ss = Some me }
1266+ | Some _ -> { env with env_actmem = Some ( `SS me) }
12641267
12651268 let get_active_ss (env : env ) =
1266- env.env_actmem_ss
1269+ match env.env_actmem with
1270+ | Some (`SS me ) -> Some me
1271+ | _ -> None
12671272
12681273 let current_ss (env : env ) =
1269- match env.env_actmem_ss with
1270- | None -> None
1271- | Some me -> byid me env
1272-
1274+ match env.env_actmem with
1275+ | Some (`SS me ) -> byid me env
1276+ | _ -> None
1277+
1278+
12731279 let set_active_ts (ml : memory ) (mr : memory ) (env : env ) =
12741280 match byid ml env, byid mr env with
12751281 | None , _ -> raise (MEError (UnknownMemory (`Memory ml)))
12761282 | _ , None -> raise (MEError (UnknownMemory (`Memory mr)))
12771283 | Some _ , Some _ ->
1278- { env with env_actmem_ts = Some (ml, mr) }
1284+ { env with env_actmem = Some (`TS ( ml, mr) ) }
12791285
12801286 let get_active_ts (env : env ) =
1281- env.env_actmem_ts
1287+ match env.env_actmem with
1288+ | Some (`TS (ml , mr )) -> Some (ml, mr)
1289+ | _ -> None
12821290
12831291 let current_ts (env : env ) =
1284- match env.env_actmem_ts with
1285- | None -> None
1286- | Some (ml , mr ) ->
1292+ match env.env_actmem with
1293+ | Some (`TS (ml , mr )) -> begin
12871294 match byid ml env, byid mr env with
12881295 | Some mel , Some mer -> Some (mel, mer)
12891296 | _ -> None
1297+ end
1298+ | _ -> None
1299+
12901300
12911301 let update (me : EcMemory.memenv ) (env : env ) =
12921302 { env with env_memories = Mmem. add (fst me) (snd me) env.env_memories; }
0 commit comments