https://github.com/EasyCrypt/easycrypt
Revision 89618ebb9290a5dbec3fe1a6a57b441bcba18a63 authored by Pierre-Yves Strub on 15 November 2017, 06:54:48 UTC, committed by Pierre-Yves Strub on 15 November 2017, 06:54:48 UTC
Syntax is: wlog: x1 ... xn / form. It transforms the goal G into:

  |- (forall x1 ... xn, form => G) => G
  |- form => G
1 parent 1923b91
Raw File
Tip revision: 89618ebb9290a5dbec3fe1a6a57b441bcba18a63 authored by Pierre-Yves Strub on 15 November 2017, 06:54:48 UTC
New tactic: wlog (without loss of generality).
Tip revision: 89618eb
ecSmt.mli
(* --------------------------------------------------------------------
 * Copyright (c) - 2012--2016 - IMDEA Software Institute
 * Copyright (c) - 2012--2017 - Inria
 *
 * Distributed under the terms of the CeCILL-C-V1 license
 * -------------------------------------------------------------------- *)

(* -------------------------------------------------------------------- *)
open EcPath
open EcFol
open EcEnv
open EcProvers

(* -------------------------------------------------------------------- *)
val check : ?notify:notify -> prover_infos -> LDecl.hyps -> form -> bool
val dump_why3 : env -> string -> unit

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 -> EcDecl.axiom -> unit

end



back to top