swh:1:snp:f06d4d1f1c56d17a2f00ca108b0c7636a874db0d
Tip revision: 3f4a0bd5596888cd8d28b97687d477942187aa5f authored by Pierre-Yves Strub on 11 June 2022, 06:10:21 UTC
In loop fusion/fission, add more constraints on the epilog
In loop fusion/fission, add more constraints on the epilog
Tip revision: 3f4a0bd
ecBaseLogic.mli
(* -------------------------------------------------------------------- *)
open EcTypes
open EcCoreFol
(* -------------------------------------------------------------------- *)
module Epoch : sig
type t
val init : t
val lt : t -> t -> bool
val leq : t -> t -> bool
val next : t -> t
val max : t -> t -> t
val min : t -> t -> t
end
(* -------------------------------------------------------------------- *)
type local_kind =
| LD_var of ty * form option
| LD_mem of EcMemory.memtype
| LD_modty of mod_ns * EcModules.module_type
| LD_hyp of form
| LD_abs_st of EcModules.abs_uses
(* -------------------------------------------------------------------- *)
type l_local = {
l_id : EcIdent.t;
l_epoch : Epoch.t;
l_kind : local_kind;
}
type l_locals = l_local list
val l_id : l_local -> EcIdent.t
val l_epoch : l_local -> Epoch.t
(* -------------------------------------------------------------------- *)
type hyps = {
h_tvar : EcDecl.ty_params;
h_local : l_local list;
}
val hyps_epoch : hyps -> Epoch.t
val by_id_opt : EcIdent.t -> hyps -> l_local option