Structure mlibMultiset


Source File Identifier index Theory binding index

(* ========================================================================= *)
(* A MULTISET DATATYPE FOR ML                                                *)
(* Copyright (c) 2002-2004 Joe Hurd.                                         *)
(* ========================================================================= *)

signature mlibMultiset =
sig

type 'a mset

val empty    : ('a * 'a -> order) -> 'a mset
val insert   : 'a * int -> 'a mset -> 'a mset
val count    : 'a mset -> 'a -> int
val union    : 'a mset -> 'a mset -> 'a mset
val compl    : 'a mset -> 'a mset
val subtract : 'a mset -> 'a mset -> 'a mset
val subset   : 'a mset -> 'a mset -> bool
val equal    : 'a mset -> 'a mset -> bool
val compare  : 'a mset * 'a mset -> order option
val sign     : 'a mset -> order option                (* compare to empty *)
val app      : ('a * int -> unit) -> 'a mset -> unit
val foldl    : ('a * int * 'b -> 'b) -> 'b -> 'a mset -> 'b
val foldr    : ('a * int * 'b -> 'b) -> 'b -> 'a mset -> 'b
val exists   : ('a * int -> bool) -> 'a mset -> bool
val all      : ('a * int -> bool) -> 'a mset -> bool
val map      : ('a * int -> int) -> 'a mset -> 'a mset
val nonzero  : 'a mset -> int
val to_list  : 'a mset -> ('a * int) list
val pp_mset  : 'a mlibUseful.pp -> 'a mset mlibUseful.pp

end


Source File Identifier index Theory binding index

HOL 4, Kananaskis-10