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