Copyright | (c) Erich Gut |
---|---|
License | BSD3 |
Maintainer | zerich.gut@gmail.com |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
definition of homomorphisms between Oriented
structures.
Synopsis
- class (EmbeddableMorphism h Ort, Applicative h, Entity2 h, EmbeddableMorphismTyp h, Transformable1 Op (ObjectClass h)) => HomOriented h where
- omap :: HomOriented h => h a b -> Orientation (Point a) -> Orientation (Point b)
- type IsoOrt s h = (FunctorialHomOriented h, Cayleyan2 h, Hom s h)
- type IsoOriented h = (FunctorialHomOriented h, Cayleyan2 h)
- class (Category h, Functorial h, HomOriented h) => FunctorialHomOriented h
- data IdHom s a b where
- data OpHom h x y where
- OpHom :: Transformable1 Op (ObjectClass h) => h x y -> OpHom h (Op x) (Op y)
- data HomOp s a b where
- FromOpOp :: (Structure s (Op (Op a)), Structure s a) => HomOp s (Op (Op a)) a
- ToOpOp :: (Structure s (Op (Op a)), Structure s a) => HomOp s a (Op (Op a))
- OpPath :: (Structure s a, Structure s (Op (Path a)), Structure s (Path (Op a))) => HomOp s (Op (Path a)) (Path (Op a))
- OpPathInv :: (Structure s a, Structure s (Op (Path a)), Structure s (Path (Op a))) => HomOp s (Path (Op a)) (Op (Path a))
- Opposite :: (Structure s (Op (Orientation p)), Structure s (Orientation p)) => HomOp s (Op (Orientation p)) (Orientation p)
- OppositeInv :: (Structure s (Op (Orientation p)), Structure s (Orientation p)) => HomOp s (Orientation p) (Op (Orientation p))
- data IsoOp s a b
- type PathHomOp s a b = Path (HomOp s) a b
- opPathOrt :: Oriented a => IsoOp Ort (Op (Path a)) (Path (Op a))
- isoFromOpOpOrt :: Oriented a => IsoOp Ort (Op (Op a)) a
- data IsoOpMap f s a b
- type PathOpMap f s = Path (OpMap f s)
- data OpMap f s a b where
- toOp1Struct :: OpMap f s (Op (f x)) (f (Op x)) -> Struct s x
- fromOp1Struct :: OpMap f s (f (Op x)) (Op (f x)) -> Struct s x
- isoCoPath :: Oriented x => IsoOpMap Path Ort (Op (Path x)) (Path (Op x))
Homomorphism
class (EmbeddableMorphism h Ort, Applicative h, Entity2 h, EmbeddableMorphismTyp h, Transformable1 Op (ObjectClass h)) => HomOriented h where Source #
type family of homomorphisms between Oriented
structures.
Property Let h
be an instance of HomOriented
, then
for all a
, b
and f
in h
a
b
and
x
in a
holds:
and
start
(amap
f x) ==
pmap
f (start
x)
.end
(amap
f x) ==
pmap
f (end
x)
We call such a h
a family of homomorphisms between oriented structures
and an entity f
in h
a
b
a
covariant oriented homomorphism - or oriented homomorphism for short -
between a
and b
. A covariant oriented homomorphism f
in
h (
or Op
a) bh a (
will be called a
contravariant oriented homomorphism between Op
b)a
and b
.
Note
- As
h
is an instance of
it follows that for allEmbeddableMorphism
hOrt
a
,b
andf
inh a b
holds:
and thustauHom
(homomorphous
f) ::Homomorphous
Ort
a ba
andb
areOriented
structures! How to work with this concretely see the implementation ofprpHomOrt
where the property above is stated. - The constraint
EmbeddableMorphismTyp
for a familyh
of homomorphisms betweenOriented
structures ensures that the type
is a instances ofPath
hEq2
.
Instances
omap :: HomOriented h => h a b -> Orientation (Point a) -> Orientation (Point b) Source #
the induced mapping of Orientation
.
type IsoOriented h = (FunctorialHomOriented h, Cayleyan2 h) Source #
isomorphisms between Oriented
structures.
Functorial
class (Category h, Functorial h, HomOriented h) => FunctorialHomOriented h Source #
functorial application on Oriented
structures.
Properties Let h
be an instance of the class FunctorialHomOriented
,
then holds:
Instances
FunctorialHomOriented h => FunctorialHomOriented (Path h) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => FunctorialHomOriented (IdHom s) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => FunctorialHomOriented (IsoOp s) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => FunctorialHomOriented (IsoOpMap Matrix s) Source # | |
Defined in OAlg.Entity.Matrix.Definition | |
(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => FunctorialHomOriented (IsoOpMap Path s) Source # | |
Defined in OAlg.Hom.Oriented.Definition |
IdHom
data IdHom s a b where Source #
identity morphism.
Instances
OpHom
data OpHom h x y where Source #
induced homomorphism on Op
.
OpHom :: Transformable1 Op (ObjectClass h) => h x y -> OpHom h (Op x) (Op y) |
Instances
HomOp
data HomOp s a b where Source #
some basic contravariant isomorphisms between s
-structures with there invert2
.
FromOpOp :: (Structure s (Op (Op a)), Structure s a) => HomOp s (Op (Op a)) a | |
ToOpOp :: (Structure s (Op (Op a)), Structure s a) => HomOp s a (Op (Op a)) | |
OpPath :: (Structure s a, Structure s (Op (Path a)), Structure s (Path (Op a))) => HomOp s (Op (Path a)) (Path (Op a)) | |
OpPathInv :: (Structure s a, Structure s (Op (Path a)), Structure s (Path (Op a))) => HomOp s (Path (Op a)) (Op (Path a)) | |
Opposite :: (Structure s (Op (Orientation p)), Structure s (Orientation p)) => HomOp s (Op (Orientation p)) (Orientation p) | |
OppositeInv :: (Structure s (Op (Orientation p)), Structure s (Orientation p)) => HomOp s (Orientation p) (Op (Orientation p)) |
Instances
IsoOp
isomorphisms induced by paths of HomOp
.
Instances
opPathOrt :: Oriented a => IsoOp Ort (Op (Path a)) (Path (Op a)) Source #
the induced isomorphism given by OpPath
.
isoFromOpOpOrt :: Oriented a => IsoOp Ort (Op (Op a)) a Source #
the induced isomorphism of Oriented
structures given by FromOpOp
.
Examples
let tOS = invert2 (isoFromOpOpOrt :: IsoOp Ort (Op (Op OS)) OS) let f = isoFromOpOpOrt :: Oriented a =>IsoOp Ort (Op (Op a)) a let t = invert2 f
>>>
tOS
IsoOp Path[ToOpOp]
>>>
t . t . tOS
IsoOp Path[ToOpOp,ToOpOp,ToOpOp]
>>>
f . f . t . f . t . tOS
IsoOp Path[]
>>>
f . f . t . f . t . tOS == cOne Struct
True
IsoOpMap
data IsoOpMap f s a b Source #
isomorphisms induced by paths of OpMap
.
Instances
data OpMap f s a b where Source #
contravariant s
-isomorphisms between f x
and f (
.Op
x)
ToOp1 :: (Structure s (Op (f x)), Structure s (f (Op x)), Structure s x) => OpMap f s (Op (f x)) (f (Op x)) | contravariant |
FromOp1 :: (Structure s (Op (f x)), Structure s (f (Op x)), Structure s x) => OpMap f s (f (Op x)) (Op (f x)) | the inverse of |
Instances
fromOp1Struct :: OpMap f s (f (Op x)) (Op (f x)) -> Struct s x Source #
structural attest for FromOp1
.