https://github.com/EasyCrypt/easycrypt
Tip revision: 846710a2a656834065e745d19416ebdc83158f55 authored by Benjamin Gregoire on 14 July 2019, 06:50:07 UTC
Start restructuration of the code to be able to avant mutual dependency between type and mpath
Start restructuration of the code to be able to avant mutual dependency between type and mpath
Tip revision: 846710a
ecSymbols.mli
(* --------------------------------------------------------------------
* Copyright (c) - 2012--2016 - IMDEA Software Institute
* Copyright (c) - 2012--2018 - Inria
* Copyright (c) - 2012--2018 - Ecole Polytechnique
*
* Distributed under the terms of the CeCILL-C-V1 license
* -------------------------------------------------------------------- *)
(* -------------------------------------------------------------------- *)
open EcMaps
(* -------------------------------------------------------------------- *)
type symbol = string
type qsymbol = symbol list * symbol
type msymbol = (symbol * msymbol list) list
(* -------------------------------------------------------------------- *)
val sym_equal : symbol -> symbol -> bool
val sym_compare : symbol -> symbol -> int
(* -------------------------------------------------------------------- *)
module Msym : Map.S with type key = symbol
module Ssym : Set.S with module M = Map.MakeBase(Msym)
module MMsym : sig
type +'a t
val empty : 'a t
val add : symbol -> 'a -> 'a t -> 'a t
val last : symbol -> 'a t -> 'a option
val all : symbol -> 'a t -> 'a list
val fold : (symbol -> 'a list -> 'b -> 'b) -> 'a t -> 'b -> 'b
val map_at : ('a list -> 'a list) -> symbol -> 'a t -> 'a t
val iter : (symbol -> 'a -> unit) -> 'a t -> unit
end
(* -------------------------------------------------------------------- *)
val pp_symbol : Format.formatter -> symbol -> unit
val pp_qsymbol : Format.formatter -> qsymbol -> unit
val pp_msymbol : Format.formatter -> msymbol -> unit
val string_of_qsymbol : qsymbol -> string