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.Entity.Diagram.Transformation

Description

natural transformations between Diagrams.

Synopsis

Documentation

data DiagramTrafo (t :: DiagramType) (n :: N') (m :: N') a Source #

natural transformations between two Diagrams.

Property Let DiagramTrafo a b t be in DiagramTrafo t n m a for a Multiplicative structure a, then holds

  1. dgQuiver a == dgQuiver b.
  2. For all 0 <= i < n holds: orientation (t i) == p i :> q i where p = dgPoints a and q = dgPoints b.
  3. For all 0 <= j < m holds: t (e j) * f j == g j * t (s j) where f = dgArrows a, g = dgArrows b, s j is the index of the start point of the j-th arrow and e j is the index of the end point.
                   t (s j)
   s j     p (s j) --------> q (s j)
    |         |                 |
  j |     f j |                 | g j
    |         |                 |
    v         v                 v
   e j     p (e j) --------> q (e j)
                   t (e j)

Constructors

DiagramTrafo (Diagram t n m a) (Diagram t n m a) (FinList n a) 

Instances

Instances details
(Eq a, EqPoint a) => EqDual1 (DiagramTrafo t n m :: Type -> Type) (a :: Type) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

(Show a, ShowPoint a) => ShowDual1 (DiagramTrafo t n m :: Type -> Type) (a :: Type) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

(HomMultiplicativeDisjunctive h, t ~ Dual (Dual t)) => ApplicativeG (SDualBi (DiagramTrafo t n m)) h (->) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Methods

amapG :: h x y -> SDualBi (DiagramTrafo t n m) x -> SDualBi (DiagramTrafo t n m) y Source #

(HomMultiplicativeDisjunctive h, FunctorialOriented h, t ~ Dual (Dual t)) => FunctorialG (SDualBi (DiagramTrafo t n m)) h (->) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

(ShowPoint a, Show a) => Show (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Methods

showsPrec :: Int -> DiagramTrafo t n m a -> ShowS #

show :: DiagramTrafo t n m a -> String #

showList :: [DiagramTrafo t n m a] -> ShowS #

(EqPoint a, Eq a) => Eq (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Methods

(==) :: DiagramTrafo t n m a -> DiagramTrafo t n m a -> Bool #

(/=) :: DiagramTrafo t n m a -> DiagramTrafo t n m a -> Bool #

Multiplicative a => Validable (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Methods

valid :: DiagramTrafo t n m a -> Statement Source #

(Distributive a, Abelian a, Typeable t, Typeable n, Typeable m) => Abelian (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Methods

negate :: DiagramTrafo t n m a -> DiagramTrafo t n m a Source #

(-) :: DiagramTrafo t n m a -> DiagramTrafo t n m a -> DiagramTrafo t n m a Source #

ztimes :: Z -> DiagramTrafo t n m a -> DiagramTrafo t n m a Source #

(Distributive a, Typeable t, Typeable n, Typeable m) => Additive (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Methods

zero :: Root (DiagramTrafo t n m a) -> DiagramTrafo t n m a Source #

(+) :: DiagramTrafo t n m a -> DiagramTrafo t n m a -> DiagramTrafo t n m a Source #

ntimes :: N -> DiagramTrafo t n m a -> DiagramTrafo t n m a Source #

(Algebraic a, Typeable t, Typeable n, Typeable m) => Algebraic (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

(Distributive a, Typeable t, Typeable n, Typeable m) => Distributive (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

(Distributive a, Typeable t, Typeable n, Typeable m) => Fibred (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Methods

root :: DiagramTrafo t n m a -> Root (DiagramTrafo t n m a) Source #

(Eq a, EqPoint a) => EqRoot (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

(Show a, ShowPoint a) => ShowRoot (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

(Typeable a, Typeable t, Typeable n, Typeable m) => TypeableRoot (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Oriented a => ValidableRoot (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

(Distributive a, Typeable t, Typeable n, Typeable m) => FibredOriented (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

(Multiplicative a, Typeable t, Typeable n, Typeable m) => Multiplicative (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Methods

one :: Point (DiagramTrafo t n m a) -> DiagramTrafo t n m a Source #

(*) :: DiagramTrafo t n m a -> DiagramTrafo t n m a -> DiagramTrafo t n m a Source #

npower :: DiagramTrafo t n m a -> N -> DiagramTrafo t n m a Source #

(Multiplicative a, Typeable t, Typeable n, Typeable m) => Oriented (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Methods

orientation :: DiagramTrafo t n m a -> Orientation (Point (DiagramTrafo t n m a)) Source #

start :: DiagramTrafo t n m a -> Point (DiagramTrafo t n m a) Source #

end :: DiagramTrafo t n m a -> Point (DiagramTrafo t n m a) Source #

(Eq a, EqPoint a) => EqPoint (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

(Show a, ShowPoint a) => ShowPoint (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

(Typeable a, Typeable t, Typeable n, Typeable m) => TypeablePoint (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Oriented a => ValidablePoint (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

(Algebraic a, Typeable t, Typeable n, Typeable m) => Vectorial (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Associated Types

type Scalar (DiagramTrafo t n m a) 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

type Scalar (DiagramTrafo t n m a) = Scalar a

Methods

(!) :: Scalar (DiagramTrafo t n m a) -> DiagramTrafo t n m a -> DiagramTrafo t n m a Source #

type Dual1 (DiagramTrafo t n m :: Type -> Type) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

type Dual1 (DiagramTrafo t n m :: Type -> Type) = DiagramTrafo (Dual t) n m
type Root (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

type Root (DiagramTrafo t n m a) = Orientation (Diagram t n m a)
type Point (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

type Point (DiagramTrafo t n m a) = Diagram t n m a
type Scalar (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

type Scalar (DiagramTrafo t n m a) = Scalar a

dgts :: forall (t :: DiagramType) (n :: N') (m :: N') a. DiagramTrafo t n m a -> FinList n a Source #

the underlying list of factors.

dgtTypeRefl :: forall (t :: DiagramType) (n :: N') (m :: N') a. DiagramTrafo t n m a -> Dual (Dual t) :~: t Source #

reflexivity of t for a diagram trafo.

dgtMapS :: forall h (t :: DiagramType) x y (n :: N') (m :: N'). (HomMultiplicativeDisjunctive h, t ~ Dual (Dual t)) => h x y -> SDualBi (DiagramTrafo t n m) x -> SDualBi (DiagramTrafo t n m) y Source #

mapping of DiagramTrafo

dgtMapCov :: forall (h :: Type -> Type -> Type) a b (t :: DiagramType) (n :: N') (m :: N'). HomMultiplicativeDisjunctive h => Variant2 'Covariant h a b -> DiagramTrafo t n m a -> DiagramTrafo t n m b Source #

covariant mapping of DiagramTrafo.

dgtMapCnt :: forall (h :: Type -> Type -> Type) a b (t :: DiagramType) (n :: N') (m :: N'). HomMultiplicativeDisjunctive h => Variant2 'Contravariant h a b -> DiagramTrafo t n m a -> DiagramTrafo (Dual t) n m b Source #

contravariant mapping of DiagramTrafo.