Inverting Maps.
List of Import References :
See BOOL
See BSTree
See DENOTATION
See MapByBST
See Nat
See Option
See Pair
See Seq
See SetByBST
See Tree
SIGNATURE MapByBSTInvert[dom, < : dom ** dom -> bool,
$Date: 2010-09-30 18:24:17 +0200 (Do, 30. Sep 2010) $ ($Revision: 616 $)
codom, < : codom ** codom -> bool] IMPORT MapByBST[dom, <, codom] ONLY map MapByBST[codom, <, dom] ONLY map
dom
is the type of the domain, dodom
the type of
the codomain. <
is a total strict
order: the formula ALL x y. ~(x < y) AND ~(y < x) => x === y must
hold. As the old codomain is the new domain, we need also a strict
order on the codomain.
SORT dom codom FUN < : dom ** dom -> bool FUN < : codom ** codom -> bool
Informally, invert{(d1->c1), (d2->c2), ...
= {(c1->d1),
(c2->d2), ...}}; invert
is undefined, if m
is not
injective.
FUN invert: map[dom, <, codom] -> map[codom, <, dom]
next node: MapByBST,
prev node: MapByBSTCompose,
up to node: Subsystem Maps By Binary Search Trees