swh:1:snp:0e3a7a90b5b85feca1ee6285ebc0301d2b85deae
Tip revision: 9e2f905f6ff3f028c5eaeccb8a5370ec4ab3abe2 authored by Pierre-Yves Strub on 23 January 2022, 15:46:16 UTC
Theory for R[X]/<X^n+1>
Theory for R[X]/<X^n+1>
Tip revision: 9e2f905
ecIdent.mli
(* --------------------------------------------------------------------
* Copyright (c) - 2012--2016 - IMDEA Software Institute
* Copyright (c) - 2012--2021 - Inria
* Copyright (c) - 2012--2021 - Ecole Polytechnique
*
* Distributed under the terms of the CeCILL-C-V1 license
* -------------------------------------------------------------------- *)
(* -------------------------------------------------------------------- *)
open EcMaps
open EcSymbols
(* -------------------------------------------------------------------- *)
type ident = private {
id_symb : symbol;
id_tag : int;
}
type idents = ident list
type t = ident
val create : symbol -> t
val fresh : t -> t
val name : t -> symbol
val tag : t -> int
val tostring : t -> string
(* -------------------------------------------------------------------- *)
val id_equal : t -> t -> bool
val id_compare : t -> t -> int
val id_hash : t -> int
val id_ntr_compare : t -> t -> int
(* -------------------------------------------------------------------- *)
module Mid : Map.S with type key = t
module Sid : Set.S with module M = Map.MakeBase(Mid)
module Hid : EcMaps.EHashtbl.S with type key = ident
(* -------------------------------------------------------------------- *)
val fv_singleton : ident -> int Mid.t
val fv_union : int Mid.t -> int Mid.t -> int Mid.t
val fv_diff : int Mid.t -> 'a Mid.t -> int Mid.t
val fv_add : ident -> int Mid.t -> int Mid.t
(* -------------------------------------------------------------------- *)
val pp_ident : Format.formatter -> t -> unit