https://github.com/EasyCrypt/easycrypt
Tip revision: 546373e46b64bdcf42c6349a261e4a25ce0caa3f authored by Lionel Blatter on 14 March 2024, 09:18:14 UTC
Patch proof from theories and examples
Patch proof from theories and examples
Tip revision: 546373e
ecSmt.mli
(* -------------------------------------------------------------------- *)
open EcPath
open EcFol
open EcEnv
open EcProvers
(* -------------------------------------------------------------------- *)
val check : ?notify:notify -> prover_infos -> LDecl.hyps -> form -> bool
val dump_why3 : env -> string -> unit
type tenv
val select : EcEnv.env -> EcProvers.prover_infos -> EcBaseLogic.hyps ->
EcFol.form -> ((EcPath.path * EcDecl.axiom) list -> bool option) -> bool
val make_task : tenv -> EcBaseLogic.hyps -> EcFol.form ->
(EcPath.path * EcDecl.axiom) list -> Why3.Task.task
val init :env: Why3.Env.env -> EcEnv.env -> tenv
module Frequency : sig
(* -------------------------------------------------------------------- *)
type relevant = Sp.t * Sx.t
val r_empty : relevant
val r_inter : relevant -> relevant -> relevant
val r_diff : relevant -> relevant -> relevant
val r_card : relevant -> int
type all_rel = [ `OP of path | `PROC of xpath]
val r_fold : (all_rel -> 'a -> 'a) -> relevant -> 'a -> 'a
type frequency
val create : Sp.t -> frequency
val frequency : frequency -> all_rel -> int
val f_ops : Sp.t -> form -> relevant
val add : frequency -> EcFol.form -> unit
end