Converting natMaps to/from sequences and to strings/denotations
List of Import References : 
See  BOOL 
See  Char 
See  DENOTATION 
See  Nat 
See  NatMap 
See  Option 
See  Pair 
See  Seq 
See  Set 
See  String 
SIGNATURE NatMapConv[codom]
$Date: 2010-09-30 18:24:17 +0200 (Do, 30. Sep 2010) $ ($Revision: 616 $)
IMPORT NatMap[codom] ONLY natMap
       Seq[pair[nat, codom]] ONLY seq
       Pair[nat, codom] ONLY pair
       String ONLY string
       Nat ONLY nat
nat and codom are the types of the map domain and
codomain resp. 
SORT codom
Transform natMap m into a sequence of pairs, each pair
consisting of domain element and its associated codomain
element. Informally, asSeq({d1 -> c1, ..., dn -> cn) = <&(d1,
c1), ..., &(dn, cn)>} 
FUN asSeq: natMap -> seq[pair]
Transform a sequence of pairs into a natMap; each pair has to consist
of a nat and a codomain element.  Informally,
asNatMap(<&(d1, c1), ...,&(dn, cn)>) = {d1 -> c1, ..., dn ->
cn}.  If di = dj with i |= j, then
asMap(..)!di may be either ci or cj. 
FUN asNatMap: seq[pair] -> natMap
`(d,c)({d1 -> c1, d2 -> c2, ..., dn -> cn}) ==
	"{" d(d1) " -> " c(c1) "," d(d2) " -> " c(c2) "," ... "," 
					d(dn) " -> " c(cn) "}" 
FUN ` : (nat -> denotation) ** (codom -> denotation) -> natMap -> denotation FUN ` : (nat -> string) ** (codom -> string) -> natMap -> string
Here, you can replace "->", "{", ","
"}" by your favourite denotations: 
`(d,c)(m) == `("->")("{",",","}")(d,c)(m) 
FUN ` : denotation -> denotation ** denotation ** denotation ->
        (nat -> denotation) ** (codom -> denotation) -> natMap -> denotation
FUN ` : denotation -> denotation ** denotation ** denotation ->
        (nat -> string)     ** (codom -> string)     -> natMap -> string
next node: NatMapFilter,
 prev node: NatMapNotForUserPurpose,
 up to node: Subsystem Mapping Natural Numbers