| Copyright | (c) Erich Gut |
|---|---|
| License | BSD3 |
| Maintainer | zerich.gut@gmail.com |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
OAlg.Hom.Oriented.Definition
Description
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
his an instance ofit follows that for allEmbeddableMorphismhOrta,bandfinh a bholds:and thustauHom(homomorphousf) ::HomomorphousOrta baandbareOrientedstructures! How to work with this concretely see the implementation ofprpHomOrtwhere the property above is stated. - The constraint
EmbeddableMorphismTypfor a familyhof homomorphisms betweenOrientedstructures ensures that the typeis a instances ofPathhEq2.
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.
Constructors
| 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.
Constructors
| 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
>>>tOSIsoOp Path[ToOpOp]
>>>t . t . tOSIsoOp Path[ToOpOp,ToOpOp,ToOpOp]
>>>f . f . t . f . t . tOSIsoOp Path[]
>>>f . f . t . f . t . tOS == cOne StructTrue
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)
Constructors
| 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.