List of Import References :
See BOOL
See DENOTATION
See Nat
See Option
See Pair
See Seq
SIGNATURE Bag [data,< : data**data->bool]
$Date: 2010-09-30 18:24:17 +0200 (Do, 30. Sep 2010) $ ($Revision: 616 $)
-- multisets IMPORT Nat ONLY nat Pair[data,nat] ONLY pair Option[data] ONLY option -- Parameter SORT data FUN < : data ** data -> bool -- total strict-order; in -- ~(x < y) AND ~(y < x) => x = y -- should = represent semantic equality -- The type itself SORT bag -- non free constructors FUN {} : bag -- empty bag FUN incl : data ** bag->bag -- include -- constructing a bag from datas FUN % : data -> bag FUN % : data ** data -> bag FUN % : data ** data ** data -> bag FUN % : data ** data ** data ** data -> bag FUN % : data ** data ** data ** data ** data -> bag FUN % : data ** data ** data ** data ** data ** data -> bag FUN % : data ** data ** data ** data ** data ** data ** data -> bag FUN % : data ** data ** data ** data ** data ** data ** data ** data -> bag
(d1, ..., dn) = {{d1, ..., dn}}
FUN incl excl: data ** bag -> bag -- include/exclude FUN inclCt : data ** nat ** bag -> bag -- include ct times FUN exclAll : data ** bag -> bag -- exclude all occurrences -- constructing a bag from a function FUN .. : nat ** nat -> (nat -> data) -> bag -- (n1 .. n2)(f) = {{ f(n1), f(n1 + 1), ..., f(n2) }} FUN iter : data ** (data -> data) ** (data -> bool) -> bag -- iter(start, it, P) == -- {{start, it(start), ... it^n(start)}} -- where P(it^i(start)) for 0 <= i <= n -- and ~(P(it^(n+1)(start))) -- combining bags FUN + - * : bag ** bag -> bag -- union/diff./intersection FUN U : bag**bag->bag -- union taking maximal occurrences of all elements -- accessing datas in a bag FUN arb : bag -> data -- select arbitrary element -- undefined for empty bag -- information about a bag FUN {}? : bag -> bool -- test for empty bag FUN in : data ** bag -> bool -- membership FUN # : bag -> nat -- cardinality FUN ct : data ** bag -> nat -- number of occurrences FUN exist? : (data -> bool) ** bag->bool -- exist? (p, s) -- is there any element of b fulfilling predicate p? FUN find? : (data -> bool) ** bag -> option[data] -- find? (p, s) -- return some component of s fulfilling p FUN forall? : (data -> bool) ** bag->bool -- forall? (p, s) -- do all elements of s fulfill predicate p? -- comparing bags FUN = <= < : bag ** bag -> bool -- equality/subbag/proper subbag -- not for user purpose ----------------------------------------------- -- representation IMPORT Seq[pair] ONLY seq FUN abs: seq -> bag rep: bag -> seq
next node: BagConv,
prev node: Subsystem Bags,
up to node: Subsystem Bags