oalg-base-3.0.0.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 HaskellNone
LanguageHaskell2010

OAlg.Data.HomCo

Description

mapping between an object m in m x and its co-object, where Dual1 m_ ~ m.

Synopsis

Category

data HomCo (m :: Type -> Type) s (o :: Type -> Type) x y Source #

homomorphism for applications of objects m over x.

Instances

Instances details
Disjunctive2 (HomCo m s o :: Type -> Type -> Type) Source # 
Instance details

Defined in OAlg.Data.HomCo

Methods

variant2 :: HomCo m s o x y -> Variant Source #

(ApplicativeMorCo d m s o (->), DualisableG s (->) o d) => ApplicativeG d (HomCo m s o) (->) Source # 
Instance details

Defined in OAlg.Data.HomCo

Methods

amapG :: HomCo m s o x y -> d x -> d y Source #

(FunctorialHomCo d m s o (->), DualisableG s (->) o d) => FunctorialG d (HomCo m s o) (->) Source # 
Instance details

Defined in OAlg.Data.HomCo

Category (HomCo m s o) Source # 
Instance details

Defined in OAlg.Data.HomCo

Methods

cOne :: Struct (ObjectClass (HomCo m s o)) x -> HomCo m s o x x Source #

(.) :: HomCo m s o y z -> HomCo m s o x y -> HomCo m s o x z Source #

Morphism (HomCo m s o) Source # 
Instance details

Defined in OAlg.Data.HomCo

Associated Types

type ObjectClass (HomCo m s o) 
Instance details

Defined in OAlg.Data.HomCo

type ObjectClass (HomCo m s o) = s

Methods

homomorphous :: HomCo m s o x y -> Homomorphous (ObjectClass (HomCo m s o)) x y Source #

domain :: HomCo m s o x y -> Struct (ObjectClass (HomCo m s o)) x Source #

range :: HomCo m s o x y -> Struct (ObjectClass (HomCo m s o)) y Source #

Show2 (HomCo m s o) Source # 
Instance details

Defined in OAlg.Data.HomCo

Methods

show2 :: HomCo m s o a b -> String Source #

CategoryDisjunctive (HomCo m s o) Source # 
Instance details

Defined in OAlg.Data.HomCo

(DualisableDistributive s o, TransformableGRefl o s, TransformableGRefl Matrix s, TransformableDst s) => HomAdditive (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(DualisableDistributive s o, TransformableGRefl o s, TransformableGRefl Matrix s, TransformableDst s) => HomDistributiveDisjunctive (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s, TransformableDst s) => FunctorialFibred (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s, TransformableDst s) => HomFibred (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(DualisableDistributive s o, TransformableGRefl o s, TransformableGRefl Matrix s, TransformableDst s) => HomFibredOrientedDisjunctive (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(DualisableDistributive s o, TransformableGRefl o s, TransformableGRefl Matrix s, TransformableDst s) => HomMultiplicativeDisjunctive (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s, TransformableDst s) => FunctorialOriented (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(DualisableDistributive s o, TransformableGRefl o s, TransformableGRefl Matrix s, TransformableDst s) => HomOrientedDisjunctive (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Show (HomCo m s o x y) Source # 
Instance details

Defined in OAlg.Data.HomCo

Methods

showsPrec :: Int -> HomCo m s o x y -> ShowS #

show :: HomCo m s o x y -> String #

showList :: [HomCo m s o x y] -> ShowS #

Constructable (HomCo m s o x y) Source # 
Instance details

Defined in OAlg.Data.HomCo

Methods

make :: Form (HomCo m s o x y) -> HomCo m s o x y Source #

Exposable (HomCo m s o x y) Source # 
Instance details

Defined in OAlg.Data.HomCo

Associated Types

type Form (HomCo m s o x y) 
Instance details

Defined in OAlg.Data.HomCo

type Form (HomCo m s o x y) = PathCo m s o x y

Methods

form :: HomCo m s o x y -> Form (HomCo m s o x y) Source #

Disjunctive (HomCo m s o x y) Source # 
Instance details

Defined in OAlg.Data.HomCo

Methods

variant :: HomCo m s o x y -> Variant Source #

type ObjectClass (HomCo m s o) Source # 
Instance details

Defined in OAlg.Data.HomCo

type ObjectClass (HomCo m s o) = s
type Form (HomCo m s o x y) Source # 
Instance details

Defined in OAlg.Data.HomCo

type Form (HomCo m s o x y) = PathCo m s o x y

toCo :: (TransformableG m s s, TransformableG o s s) => Struct s x -> MorCo m s o (o (m x)) (m (o x)) Source #

to the co-object.

fromCo :: (TransformableG m s s, TransformableG o s s) => Struct s x -> MorCo m s o (m (o x)) (o (m x)) Source #

from the co-cobject.

sHomCo :: forall s (o :: Type -> Type) (m :: Type -> Type) x y. SHom s s o (MorCo m s o) x y -> HomCo m s o x y Source #

functorial projection to HomCo.

newtype PathCo (m :: Type -> Type) s (o :: Type -> Type) x y Source #

path of SMorphism over MorCo.

Constructors

PathCo (Path (SMorphism s s o (MorCo m s o)) x y) 

Instances

Instances details
Show2 (PathCo m s o) Source # 
Instance details

Defined in OAlg.Data.HomCo

Methods

show2 :: PathCo m s o a b -> String Source #

Show (PathCo m s o x y) Source # 
Instance details

Defined in OAlg.Data.HomCo

Methods

showsPrec :: Int -> PathCo m s o x y -> ShowS #

show :: PathCo m s o x y -> String #

showList :: [PathCo m s o x y] -> ShowS #

Reducible (PathCo m s o x y) Source # 
Instance details

Defined in OAlg.Data.HomCo

Methods

reduce :: PathCo m s o x y -> PathCo m s o x y Source #

rdcCoToFromCo :: forall (m :: Type -> Type) s (o :: Type -> Type) x y. PathCo m s o x y -> Rdc (PathCo m s o x y) Source #

reducing a path according to the rules:

  1. SCov ToCo :. SCov FromCo :. p' reduces to p'.
  2. SCov FromCo :. SCov ToCo :. p' reduces to p'.

rdcCoToFromDual :: forall (m :: Type -> Type) s (o :: Type -> Type) x y. PathCo m s o x y -> Rdc (PathCo m s o x y) Source #

reducing a PathCo according to rdcPathSMorphism.

rdcPathCo :: forall (m :: Type -> Type) s (o :: Type -> Type) x y. PathCo m s o x y -> Rdc (PathCo m s o x y) Source #

applying the rules of rdcCoToFromCo and rdcCoToFromDual.

data MorCo (m :: Type -> Type) s (o :: Type -> Type) x y where Source #

morphism to and from the co-cobject.

Constructors

ToCo :: forall s x1 (m :: Type -> Type) (o :: Type -> Type). (Structure s x1, TransformableG m s s, TransformableG o s s) => MorCo m s o (o (m x1)) (m (o x1)) 
FromCo :: forall s x1 (m :: Type -> Type) (o :: Type -> Type). (Structure s x1, TransformableG m s s, TransformableG o s s) => MorCo m s o (m (o x1)) (o (m x1)) 

Instances

Instances details
(TransformableDst s, TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s) => ApplicativeG Id (MorCo Matrix s o) (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

amapG :: MorCo Matrix s o x y -> Id x -> Id y Source #

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s) => ApplicativeG Rt (MorCo Matrix s o) (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

amapG :: MorCo Matrix s o x y -> Rt x -> Rt y Source #

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s) => ApplicativeG Pnt (MorCo Matrix s o) (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

amapG :: MorCo Matrix s o x y -> Pnt x -> Pnt y Source #

Morphism (MorCo m s o) Source # 
Instance details

Defined in OAlg.Data.HomCo

Associated Types

type ObjectClass (MorCo m s o) 
Instance details

Defined in OAlg.Data.HomCo

type ObjectClass (MorCo m s o) = s

Methods

homomorphous :: MorCo m s o x y -> Homomorphous (ObjectClass (MorCo m s o)) x y Source #

domain :: MorCo m s o x y -> Struct (ObjectClass (MorCo m s o)) x Source #

range :: MorCo m s o x y -> Struct (ObjectClass (MorCo m s o)) y Source #

Show2 (MorCo m s o) Source # 
Instance details

Defined in OAlg.Data.HomCo

Methods

show2 :: MorCo m s o a b -> String Source #

Show (MorCo m s o x y) Source # 
Instance details

Defined in OAlg.Data.HomCo

Methods

showsPrec :: Int -> MorCo m s o x y -> ShowS #

show :: MorCo m s o x y -> String #

showList :: [MorCo m s o x y] -> ShowS #

type ObjectClass (MorCo m s o) Source # 
Instance details

Defined in OAlg.Data.HomCo

type ObjectClass (MorCo m s o) = s

mcoStruct :: forall (m :: Type -> Type) s (o :: Type -> Type) i j x y. MorCo m s o (i (j x)) y -> Struct s x Source #

whitness that x is a s structure.

Functor

class ApplicativeG d (MorCo m s o) c => ApplicativeMorCo (d :: Type -> Type) (m :: Type -> Type) s (o :: Type -> Type) (c :: Type -> Type -> Type) Source #

helper class to avoid undecidable instances.

class (Category c, ApplicativeMorCo d m s o c, TransformableG m s s, TransformableG o s s, TransformableG d s (ObjectClass c)) => FunctorialHomCo (d :: Type -> Type) (m :: Type -> Type) s (o :: Type -> Type) (c :: Type -> Type -> Type) Source #

functorial predicat for HomCo.

Properties Let FunctorialHomCo d s m o c, then for all x and s in Struct s x holds:

  1. amapG (fromCo s) . amapG (toCo s) .=. cOneDOM f s.
  2. amapG (toCo s) . amapG (fromCo s) .=. cOneDMO f s.

where f is anay proxy in q d s m o c.

data FunctorHomCo (d :: Type -> Type) (m :: Type -> Type) s (o :: Type -> Type) (c :: Type -> Type -> Type) where Source #

whiteness of being FunctorialHomCo.

Constructors

FunctorHomCo :: forall (d :: Type -> Type) (m :: Type -> Type) s (o :: Type -> Type) (c :: Type -> Type -> Type). FunctorialHomCo d m s o c => FunctorHomCo d m s o c 

Iso

isoCo :: (TransformableG m s s, TransformableG o s s) => Struct s x -> Variant2 'Contravariant (IsoCo m s o) (m x) (m (o x)) Source #

contravariant isomorphism.

type IsoCo (m :: Type -> Type) s (o :: Type -> Type) = Inv2 (HomCo m s o) Source #

isomorphism for HomCo.

X

xscHomCo :: forall (o :: Type -> Type) s (m :: Type -> Type). TransformableG o s s => N -> X (SomeObjectClass (HomCo m s o)) -> X (SomeMorphism (MorCo m s o)) -> X (SomeCmpb2 (HomCo m s o)) Source #

random variable for some composable HomCos.

Proposition

prpFunctorialHomCo :: forall (c :: Type -> Type -> Type) (d :: Type -> Type) (m :: Type -> Type) s (o :: Type -> Type) x. EqExt c => FunctorHomCo d m s o c -> Struct s x -> Statement Source #

validity according to FunctorialHomCo.