oalg-base-1.1.4.0: Algebraic structures on oriented entities and limits as a tool kit to solve algebraic problems.
Copyright(c) Erich Gut
LicenseBSD3
Maintainerzerich.gut@gmail.com
Safe HaskellSafe-Inferred
LanguageHaskell2010

OAlg.Hom.Oriented.Definition

Description

definition of homomorphisms between Oriented structures.

Synopsis

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: start (amap f x) == pmap f (start x) and 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 (Op a) b or h a (Op b) will be called a contravariant oriented homomorphism between a and b.

Note

  1. As h is an instance of EmbeddableMorphism h Ort it follows that for all a, b and f in h a b holds: tauHom (homomorphous f) :: Homomorphous Ort a b and thus a and b are Oriented structures! How to work with this concretely see the implementation of prpHomOrt where the property above is stated.
  2. The constraint EmbeddableMorphismTyp for a family h of homomorphisms between Oriented structures ensures that the type Path h is a instances of Eq2.

Methods

pmap :: h a b -> Point a -> Point b Source #

Instances

Instances details
HomOriented GLApp Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Methods

pmap :: GLApp a b -> Point a -> Point b Source #

HomOriented TrApp Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Methods

pmap :: TrApp a b -> Point a -> Point b Source #

HomOriented h => HomOriented (Path h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: Path h a b -> Point a -> Point b Source #

Typeable s => HomOriented (SliceFactorDrop s) Source # 
Instance details

Defined in OAlg.Entity.Slice.Definition

Methods

pmap :: SliceFactorDrop s a b -> Point a -> Point b Source #

(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => HomOriented (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: HomOp s a b -> Point a -> Point b Source #

(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => HomOriented (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: IdHom s a b -> Point a -> Point b Source #

(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => HomOriented (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: IsoOp s a b -> Point a -> Point b Source #

HomOriented h => HomOriented (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: OpHom h a b -> Point a -> Point b Source #

(HomOriented h, Transformable1 Op t, ForgetfulOrt t, ForgetfulTyp t, Typeable t) => HomOriented (Forget t h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: Forget t h a b -> Point a -> Point b Source #

(Distributive c, SliceCokernelTo i c, SliceKernelFrom i c) => HomOriented (SliceCokernelKernel i c) Source # 
Instance details

Defined in OAlg.Entity.Slice.Adjunction

Methods

pmap :: SliceCokernelKernel i c a b -> Point a -> Point b Source #

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomOriented (IsoOpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

pmap :: IsoOpMap Matrix s a b -> Point a -> Point b Source #

(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => HomOriented (IsoOpMap Path s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: IsoOpMap Path s a b -> Point a -> Point b Source #

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomOriented (OpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

pmap :: OpMap Matrix s a b -> Point a -> Point b Source #

(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => HomOriented (OpMap Path s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: OpMap Path s a b -> Point a -> Point b Source #

omap :: HomOriented h => h a b -> Orientation (Point a) -> Orientation (Point b) Source #

the induced mapping of Orientation.

type IsoOrt s h = (FunctorialHomOriented h, Cayleyan2 h, Hom s h) Source #

s-isomoprhisms.

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:

  1. For all types a and s in Struct (ObjectClass h) a holds: pmap (cOne s) = id.
  2. For all types a, b, c and f in h b c, g in h a b holds: pmap (f . g) = pmap f . pmap g.

IdHom

data IdHom s a b where Source #

identity morphism.

Constructors

IdHom :: Structure s a => IdHom s a a 

Instances

Instances details
(TransformableOp (s k), ForgetfulAlg k s, ForgetfulTyp (s k), Typeable s, Typeable k) => HomAlgebraic k (IdHom (s k)) Source # 
Instance details

Defined in OAlg.Hom.Algebraic

(ForgetfulVec k s, ForgetfulTyp (s k), Typeable s, Typeable k) => HomVectorial k (IdHom (s k)) Source # 
Instance details

Defined in OAlg.Hom.Vectorial

Applicative (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

amap :: IdHom s a b -> a -> b Source #

Category (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

cOne :: Struct (ObjectClass (IdHom s)) x -> IdHom s x x Source #

(.) :: IdHom s y z -> IdHom s x y -> IdHom s x z Source #

Cayleyan2 (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

invert2 :: IdHom s x y -> IdHom s y x Source #

ForgetfulTyp s => EmbeddableMorphismTyp (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Functorial (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Morphism (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Associated Types

type ObjectClass (IdHom s) Source #

Eq2 (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

eq2 :: IdHom s x y -> IdHom s x y -> Bool Source #

Show2 (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

show2 :: IdHom s a b -> String Source #

Validable2 (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

valid2 :: IdHom s x y -> Statement Source #

Typeable s => Entity2 (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

(ForgetfulAdd s, ForgetfulTyp s, Typeable s) => HomAdditive (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Additive

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomDistributive (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Distributive

(ForgetfulFbr s, ForgetfulTyp s, Typeable s) => HomFibred (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Fibred

Methods

rmap :: IdHom s a b -> Root a -> Root b Source #

(TransformableOp s, ForgetfulFbrOrt s, ForgetfulTyp s, Typeable s) => HomFibredOriented (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Fibred

(TransformableOp s, ForgetfulMlt s, ForgetfulTyp s, Typeable s) => HomMultiplicative (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Multiplicative.Definition

(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => FunctorialHomOriented (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => HomOriented (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: IdHom s a b -> Point a -> Point b Source #

Transformable s t => EmbeddableMorphism (IdHom s) t Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Show (IdHom s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

showsPrec :: Int -> IdHom s a b -> ShowS #

show :: IdHom s a b -> String #

showList :: [IdHom s a b] -> ShowS #

Eq (IdHom s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

(==) :: IdHom s a b -> IdHom s a b -> Bool #

(/=) :: IdHom s a b -> IdHom s a b -> Bool #

Validable (IdHom s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

valid :: IdHom s a b -> Statement Source #

(Typeable s, Typeable a, Typeable b) => Entity (IdHom s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

type ObjectClass (IdHom s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

type ObjectClass (IdHom s) = s

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

Instances details
Applicative h => Applicative (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

amap :: OpHom h a b -> a -> b Source #

EmbeddableMorphismTyp h => EmbeddableMorphismTyp (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Morphism h => Morphism (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Associated Types

type ObjectClass (OpHom h) Source #

Eq2 h => Eq2 (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

eq2 :: OpHom h x y -> OpHom h x y -> Bool Source #

Show2 h => Show2 (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

show2 :: OpHom h a b -> String Source #

Validable2 h => Validable2 (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

valid2 :: OpHom h x y -> Statement Source #

Entity2 h => Entity2 (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

(HomAdditive h, HomFibredOriented h) => HomAdditive (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Additive

HomDistributive h => HomDistributive (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Distributive

HomFibredOriented h => HomFibred (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Fibred

Methods

rmap :: OpHom h a b -> Root a -> Root b Source #

HomFibredOriented h => HomFibredOriented (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Fibred

HomMultiplicative h => HomMultiplicative (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Multiplicative.Definition

HomOriented h => HomOriented (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: OpHom h a b -> Point a -> Point b Source #

EmbeddableMorphism h Add => EmbeddableMorphism (OpHom h) Add Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

EmbeddableMorphism h Typ => EmbeddableMorphism (OpHom h) Typ Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

EmbeddableMorphism h Dst => EmbeddableMorphism (OpHom h) Dst Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

EmbeddableMorphism h Fbr => EmbeddableMorphism (OpHom h) Fbr Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

EmbeddableMorphism h FbrOrt => EmbeddableMorphism (OpHom h) FbrOrt Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

EmbeddableMorphism h Mlt => EmbeddableMorphism (OpHom h) Mlt Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

EmbeddableMorphism h Ort => EmbeddableMorphism (OpHom h) Ort Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

type ObjectClass (OpHom h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

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

Instances details
ForgetfulOrt s => Applicative (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

amap :: HomOp s a b -> a -> b Source #

ForgetfulTyp s => EmbeddableMorphismTyp (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Morphism (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Associated Types

type ObjectClass (HomOp s) Source #

Eq2 (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

eq2 :: HomOp s x y -> HomOp s x y -> Bool Source #

Show2 (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

show2 :: HomOp s a b -> String Source #

Validable2 (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

valid2 :: HomOp s x y -> Statement Source #

Typeable s => Entity2 (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

(TransformableOp s, ForgetfulFbrOrt s, ForgetfulAdd s, ForgetfulTyp s, Typeable s) => HomAdditive (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Additive

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomDistributive (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Distributive

(TransformableOp s, ForgetfulFbrOrt s, ForgetfulTyp s, Typeable s) => HomFibred (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Fibred

Methods

rmap :: HomOp s a b -> Root a -> Root b Source #

(TransformableOp s, ForgetfulFbrOrt s, ForgetfulTyp s, Typeable s) => HomFibredOriented (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Fibred

(TransformableOp s, ForgetfulMlt s, ForgetfulTyp s, Typeable s) => HomMultiplicative (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Multiplicative.Definition

(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => HomOriented (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: HomOp s a b -> Point a -> Point b Source #

Transformable s t => EmbeddableMorphism (HomOp s) t Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Show (HomOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

showsPrec :: Int -> HomOp s a b -> ShowS #

show :: HomOp s a b -> String #

showList :: [HomOp s a b] -> ShowS #

Eq (HomOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

(==) :: HomOp s a b -> HomOp s a b -> Bool #

(/=) :: HomOp s a b -> HomOp s a b -> Bool #

Reducible (PathHomOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

reduce :: PathHomOp s a b -> PathHomOp s a b Source #

Validable (HomOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

valid :: HomOp s a b -> Statement Source #

(Typeable s, Typeable a, Typeable b) => Entity (HomOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

type ObjectClass (HomOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

type ObjectClass (HomOp s) = s

IsoOp

data IsoOp s a b Source #

isomorphisms induced by paths of HomOp.

Instances

Instances details
ForgetfulOrt s => Applicative (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

amap :: IsoOp s a b -> a -> b Source #

Category (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

cOne :: Struct (ObjectClass (IsoOp s)) x -> IsoOp s x x Source #

(.) :: IsoOp s y z -> IsoOp s x y -> IsoOp s x z Source #

ForgetfulTyp s => Cayleyan2 (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

invert2 :: IsoOp s x y -> IsoOp s y x Source #

ForgetfulTyp s => EmbeddableMorphismTyp (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

ForgetfulOrt s => Functorial (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Morphism (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Associated Types

type ObjectClass (IsoOp s) Source #

ForgetfulTyp s => Eq2 (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

eq2 :: IsoOp s x y -> IsoOp s x y -> Bool Source #

Show2 (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

show2 :: IsoOp s a b -> String Source #

Validable2 (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

valid2 :: IsoOp s x y -> Statement Source #

(ForgetfulTyp s, Typeable s) => Entity2 (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

(TransformableOp s, ForgetfulFbrOrt s, ForgetfulAdd s, ForgetfulTyp s, Typeable s) => HomAdditive (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Additive

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomDistributive (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Distributive

(TransformableOp s, ForgetfulFbrOrt s, ForgetfulTyp s, Typeable s) => HomFibred (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Fibred

Methods

rmap :: IsoOp s a b -> Root a -> Root b Source #

(TransformableOp s, ForgetfulFbrOrt s, ForgetfulTyp s, Typeable s) => HomFibredOriented (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Fibred

(TransformableOp s, ForgetfulMlt s, ForgetfulTyp s, Typeable s) => HomMultiplicative (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Multiplicative.Definition

(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => FunctorialHomOriented (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => HomOriented (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: IsoOp s a b -> Point a -> Point b Source #

Transformable s t => EmbeddableMorphism (IsoOp s) t Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Show (IsoOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

showsPrec :: Int -> IsoOp s a b -> ShowS #

show :: IsoOp s a b -> String #

showList :: [IsoOp s a b] -> ShowS #

ForgetfulTyp s => Eq (IsoOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

(==) :: IsoOp s a b -> IsoOp s a b -> Bool #

(/=) :: IsoOp s a b -> IsoOp s a b -> Bool #

Constructable (IsoOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

make :: Form (IsoOp s a b) -> IsoOp s a b Source #

Exposable (IsoOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Associated Types

type Form (IsoOp s a b) Source #

Methods

form :: IsoOp s a b -> Form (IsoOp s a b) Source #

Validable (IsoOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

valid :: IsoOp s a b -> Statement Source #

(ForgetfulTyp s, Typeable s, Typeable a, Typeable b) => Entity (IsoOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

type ObjectClass (IsoOp s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

type ObjectClass (IsoOp s) = s
type Form (IsoOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

type Form (IsoOp s a b) = PathHomOp s a b

type PathHomOp s a b = Path (HomOp s) a b Source #

paths of HomOp.

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

Instances details
ForgetfulDst s => Applicative (IsoOpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

amap :: IsoOpMap Matrix s a b -> a -> b Source #

ForgetfulOrt s => Applicative (IsoOpMap Path s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

amap :: IsoOpMap Path s a b -> a -> b Source #

Category (IsoOpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

cOne :: Struct (ObjectClass (IsoOpMap f s)) x -> IsoOpMap f s x x Source #

(.) :: IsoOpMap f s y z -> IsoOpMap f s x y -> IsoOpMap f s x z Source #

ForgetfulTyp s => Cayleyan2 (IsoOpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

invert2 :: IsoOpMap f s x y -> IsoOpMap f s y x Source #

ForgetfulTyp s => EmbeddableMorphismTyp (IsoOpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

ForgetfulDst s => Functorial (IsoOpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

ForgetfulOrt s => Functorial (IsoOpMap Path s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Morphism (IsoOpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Associated Types

type ObjectClass (IsoOpMap f s) Source #

ForgetfulTyp s => Eq2 (IsoOpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

eq2 :: IsoOpMap f s x y -> IsoOpMap f s x y -> Bool Source #

Show2 (IsoOpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

show2 :: IsoOpMap f s a b -> String Source #

Validable2 (IsoOpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

valid2 :: IsoOpMap f s x y -> Statement Source #

(ForgetfulTyp s, Typeable f, Typeable s) => Entity2 (IsoOpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomAdditive (IsoOpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomDistributive (IsoOpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomFibred (IsoOpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

rmap :: IsoOpMap Matrix s a b -> Root a -> Root b Source #

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomFibredOriented (IsoOpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomMultiplicative (IsoOpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => FunctorialHomOriented (IsoOpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => FunctorialHomOriented (IsoOpMap Path s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomOriented (IsoOpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

pmap :: IsoOpMap Matrix s a b -> Point a -> Point b Source #

(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => HomOriented (IsoOpMap Path s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: IsoOpMap Path s a b -> Point a -> Point b Source #

Transformable s t => EmbeddableMorphism (IsoOpMap f s) t Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Show (IsoOpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

showsPrec :: Int -> IsoOpMap f s a b -> ShowS #

show :: IsoOpMap f s a b -> String #

showList :: [IsoOpMap f s a b] -> ShowS #

ForgetfulTyp s => Eq (IsoOpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

(==) :: IsoOpMap f s a b -> IsoOpMap f s a b -> Bool #

(/=) :: IsoOpMap f s a b -> IsoOpMap f s a b -> Bool #

Constructable (IsoOpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

make :: Form (IsoOpMap f s a b) -> IsoOpMap f s a b Source #

Exposable (IsoOpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Associated Types

type Form (IsoOpMap f s a b) Source #

Methods

form :: IsoOpMap f s a b -> Form (IsoOpMap f s a b) Source #

Validable (IsoOpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

valid :: IsoOpMap f s a b -> Statement Source #

(ForgetfulTyp s, Typeable f, Typeable s, Typeable a, Typeable b) => Entity (IsoOpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

type ObjectClass (IsoOpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

type ObjectClass (IsoOpMap f s) = s
type Form (IsoOpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

type Form (IsoOpMap f s a b) = PathOpMap f s a b

type PathOpMap f s = Path (OpMap f s) Source #

paths of OpMap.

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 s-isomorphism from f x to f (Op x).

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 ToOp1.

Instances

Instances details
ForgetfulDst s => Applicative (OpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

amap :: OpMap Matrix s a b -> a -> b Source #

ForgetfulOrt s => Applicative (OpMap Path s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

amap :: OpMap Path s a b -> a -> b Source #

ForgetfulTyp s => EmbeddableMorphismTyp (OpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Morphism (OpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Associated Types

type ObjectClass (OpMap f s) Source #

Methods

homomorphous :: OpMap f s x y -> Homomorphous (ObjectClass (OpMap f s)) x y Source #

domain :: OpMap f s x y -> Struct (ObjectClass (OpMap f s)) x Source #

range :: OpMap f s x y -> Struct (ObjectClass (OpMap f s)) y Source #

Eq2 (OpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

eq2 :: OpMap f s x y -> OpMap f s x y -> Bool Source #

Show2 (OpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

show2 :: OpMap f s a b -> String Source #

Validable2 (OpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

valid2 :: OpMap f s x y -> Statement Source #

(Typeable f, Typeable s) => Entity2 (OpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomAdditive (OpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomDistributive (OpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomFibred (OpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

rmap :: OpMap Matrix s a b -> Root a -> Root b Source #

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomFibredOriented (OpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomMultiplicative (OpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableOp s, ForgetfulDst s, ForgetfulTyp s, Typeable s) => HomOriented (OpMap Matrix s) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

pmap :: OpMap Matrix s a b -> Point a -> Point b Source #

(TransformableOp s, ForgetfulOrt s, ForgetfulTyp s, Typeable s) => HomOriented (OpMap Path s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

pmap :: OpMap Path s a b -> Point a -> Point b Source #

Transformable s t => EmbeddableMorphism (OpMap f s) t Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Show (OpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

showsPrec :: Int -> OpMap f s a b -> ShowS #

show :: OpMap f s a b -> String #

showList :: [OpMap f s a b] -> ShowS #

Eq (OpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

(==) :: OpMap f s a b -> OpMap f s a b -> Bool #

(/=) :: OpMap f s a b -> OpMap f s a b -> Bool #

Reducible (PathOpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

reduce :: PathOpMap f s a b -> PathOpMap f s a b Source #

Validable (OpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

valid :: OpMap f s a b -> Statement Source #

(Typeable f, Typeable s, Typeable a, Typeable b) => Entity (OpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

type ObjectClass (OpMap f s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

type ObjectClass (OpMap f s) = s

toOp1Struct :: OpMap f s (Op (f x)) (f (Op x)) -> Struct s x Source #

structural attest for ToOp1.

fromOp1Struct :: OpMap f s (f (Op x)) (Op (f x)) -> Struct s x Source #

structural attest for FromOp1.

Path

isoCoPath :: Oriented x => IsoOpMap Path Ort (Op (Path x)) (Path (Op x)) Source #

contravariant isomorphism from Path x to Path (Opx) .