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.Structure.Oriented.Definition

Description

General definition of Oriented structures.

Synopsis

Oriented

class (Entity q, EntityPoint q) => Oriented q where Source #

types with a Oriented structure. The values of an Oriented structure will be called arrows and the values of the associated Point type points. To each arrow there is a start and a end point assigned.

Property Let q be a type instance of the class Oriented, then holds:

  1. For all a in q holds: orientation a == start a :> end a.

Note

  1. If the types q and Point q are interpreted as sets A and P and start, end as functions from A to P then this structure forms a quiver with arrows in A and points in P.
  2. Morphisms can be interpreted as Oriented structures via SomeMorphism. The bad thing about this is that we lose the check for composability of two Morphisms given by the type checker, but we gain all the functionality of Oriented structures, i.e we can define homomorphisms, limits etc on Morphisms.

Minimal complete definition

orientation | start, end

Methods

orientation :: q -> Orientation (Point q) Source #

the orientation of an arrow.

start :: q -> Point q Source #

the start point of an arrow.

end :: q -> Point q Source #

the end point of an arrow.

Instances

Instances details
Oriented N Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Oriented Q Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Oriented Z Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Oriented Variant Source # 
Instance details

Defined in OAlg.Data.Variant

Oriented N' Source # 
Instance details

Defined in OAlg.Entity.Natural

Oriented W' Source # 
Instance details

Defined in OAlg.Entity.Natural

Oriented Integer Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Oriented () Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

orientation :: () -> Orientation (Point ()) Source #

start :: () -> Point () Source #

end :: () -> Point () Source #

Oriented Int Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

(Morphism m, TransformableObjectClassTyp m, Entity2 m) => Oriented (SomeMorphism m) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Oriented x => Oriented (Id x) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

orientation :: Id x -> Orientation (Point (Id x)) Source #

start :: Id x -> Point (Id x) Source #

end :: Id x -> Point (Id x) Source #

(Additive x, FibredOriented x) => Oriented (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Galoisian x => Oriented (GL2 x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Methods

orientation :: GL2 x -> Orientation (Point (GL2 x)) Source #

start :: GL2 x -> Point (GL2 x) Source #

end :: GL2 x -> Point (GL2 x) Source #

Oriented x => Oriented (GLT x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Methods

orientation :: GLT x -> Orientation (Point (GLT x)) Source #

start :: GLT x -> Point (GLT x) Source #

end :: GLT x -> Point (GLT x) Source #

Oriented x => Oriented (Transformation x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Oriented x => Oriented (ColTrafo x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

Oriented x => Oriented (RowTrafo x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

Entity x => Oriented (ProductSymbol x) Source # 
Instance details

Defined in OAlg.Entity.Product.ProductSymbol

(Entity i, Ord i) => Oriented (Permutation i) Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

(Entity i, Ord i) => Oriented (PermutationForm i) Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

Fibred f => Oriented (Sheaf f) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Multiplicative c => Oriented (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

orientation :: Inv c -> Orientation (Point (Inv c)) Source #

start :: Inv c -> Point (Inv c) Source #

end :: Inv c -> Point (Inv c) Source #

Oriented q => Oriented (Op q) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Opposite

Methods

orientation :: Op q -> Orientation (Point (Op q)) Source #

start :: Op q -> Point (Op q) Source #

end :: Op q -> Point (Op q) Source #

Entity p => Oriented (Orientation p) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Oriented q => Oriented (Path q) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Path

Methods

orientation :: Path q -> Orientation (Point (Path q)) Source #

start :: Path q -> Point (Path q) Source #

end :: Path q -> Point (Path q) Source #

Entity x => Oriented (U x) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

orientation :: U x -> Orientation (Point (U x)) Source #

start :: U x -> Point (U x) Source #

end :: U x -> Point (U x) Source #

(Oriented x, Typeable p) => Oriented (Dim x p) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Dim

Methods

orientation :: Dim x p -> Orientation (Point (Dim x p)) Source #

start :: Dim x p -> Point (Dim x p) Source #

end :: Dim x p -> Point (Dim x p) Source #

(Oriented a, Integral r) => Oriented (Product r a) Source # 
Instance details

Defined in OAlg.Entity.Product.Definition

Methods

orientation :: Product r a -> Orientation (Point (Product r a)) Source #

start :: Product r a -> Point (Product r a) Source #

end :: Product r a -> Point (Product r a) Source #

(Oriented a, Number r) => Oriented (ProductForm r a) Source # 
Instance details

Defined in OAlg.Entity.Product.Definition

(Semiring r, Commutative r, FibredOriented m) => Oriented (Sum r m) Source # 
Instance details

Defined in OAlg.Entity.Sum.Definition

Methods

orientation :: Sum r m -> Orientation (Point (Sum r m)) Source #

start :: Sum r m -> Point (Sum r m) Source #

end :: Sum r m -> Point (Sum r m) Source #

(Semiring r, Commutative r, FibredOriented m) => Oriented (SumForm r m) Source # 
Instance details

Defined in OAlg.Entity.Sum.Definition

Methods

orientation :: SumForm r m -> Orientation (Point (SumForm r m)) Source #

start :: SumForm r m -> Point (SumForm r m) Source #

end :: SumForm r m -> Point (SumForm r m) Source #

(Oriented x, Sliced i x, Typeable s) => Oriented (Slice s i x) Source # 
Instance details

Defined in OAlg.Entity.Slice.Definition

Methods

orientation :: Slice s i x -> Orientation (Point (Slice s i x)) Source #

start :: Slice s i x -> Point (Slice s i x) Source #

end :: Slice s i x -> Point (Slice s i x) Source #

(Multiplicative x, Sliced i x, Typeable s) => Oriented (SliceFactor s i x) Source # 
Instance details

Defined in OAlg.Entity.Slice.Definition

(Distributive x, Typeable t, Typeable n) => Oriented (ConsecutiveZeroHom t n x) Source # 
Instance details

Defined in OAlg.Limes.Exact.ConsecutiveZero

(Oriented a, Typeable t, Typeable n, Typeable m) => Oriented (Diagram ('Chain t) n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

Methods

orientation :: Diagram ('Chain t) n m a -> Orientation (Point (Diagram ('Chain t) n m a)) Source #

start :: Diagram ('Chain t) n m a -> Point (Diagram ('Chain t) n m a) Source #

end :: Diagram ('Chain t) n m a -> Point (Diagram ('Chain t) n m a) Source #

(Oriented a, Typeable d, Typeable n, Typeable m) => Oriented (Diagram ('Parallel d) n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

Methods

orientation :: Diagram ('Parallel d) n m a -> Orientation (Point (Diagram ('Parallel d) n m a)) Source #

start :: Diagram ('Parallel d) n m a -> Point (Diagram ('Parallel d) n m a) Source #

end :: Diagram ('Parallel d) n m a -> Point (Diagram ('Parallel d) 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 #

(Oriented a, Diagrammatic d, Entity (d ('Parallel t) N2 m a), Typeable d, Typeable s, Typeable p, Typeable t, Typeable m) => Oriented (Cone s p d ('Parallel t) N2 m a) Source # 
Instance details

Defined in OAlg.Limes.Cone.Definition

Methods

orientation :: Cone s p d ('Parallel t) N2 m a -> Orientation (Point (Cone s p d ('Parallel t) N2 m a)) Source #

start :: Cone s p d ('Parallel t) N2 m a -> Point (Cone s p d ('Parallel t) N2 m a) Source #

end :: Cone s p d ('Parallel t) N2 m a -> Point (Cone s p d ('Parallel t) N2 m a) Source #

isEndo :: Oriented q => q -> Bool Source #

check for being an endo.

Definition Let q be a Oriented structure, then an arrow a in q is called endo if and only if start a == end a.

isEndoAt :: Oriented a => Point a -> a -> Bool Source #

check for being an endo at the given point.

data Ort Source #

type representing the class of Oriented structures.

Instances

Instances details
TransformableTyp Ort Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

TransformableType Ort Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

TransformableOrt Ort Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

TransformableOp Ort Source # 
Instance details

Defined in OAlg.Structure.Oriented.Opposite

Transformable Dst Ort Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Methods

tau :: Struct Dst x -> Struct Ort x Source #

Transformable DstX Ort Source # 
Instance details

Defined in OAlg.Structure.Distributive.Proposition

Methods

tau :: Struct DstX x -> Struct Ort x Source #

Transformable FbrOrt Ort Source # 
Instance details

Defined in OAlg.Structure.FibredOriented

Methods

tau :: Struct FbrOrt x -> Struct Ort x Source #

Transformable FbrOrtX Ort Source # 
Instance details

Defined in OAlg.Structure.FibredOriented

Methods

tau :: Struct FbrOrtX x -> Struct Ort x Source #

Transformable Mlt Ort Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

tau :: Struct Mlt x -> Struct Ort x Source #

Transformable MltX Ort Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Proposition

Methods

tau :: Struct MltX x -> Struct Ort x Source #

Transformable Ort Ent Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tau :: Struct Ort x -> Struct Ent x Source #

Transformable Ort Typ Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tau :: Struct Ort x -> Struct Typ x Source #

Transformable Ort Type Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tau :: Struct Ort x -> Struct Type x Source #

Transformable OrtX Ort Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tau :: Struct OrtX x -> Struct Ort x Source #

Transformable OrtSiteX Ort Source # 
Instance details

Defined in OAlg.Structure.Oriented.X

Methods

tau :: Struct OrtSiteX x -> Struct Ort x Source #

TransformableGRefl Op Ort Source # 
Instance details

Defined in OAlg.Structure.Oriented.Opposite

TransformableG Op Ort Ort Source # 
Instance details

Defined in OAlg.Structure.Oriented.Opposite

Methods

tauG :: Struct Ort x -> Struct Ort (Op x) Source #

TransformableGRefl Op (Ort, Sld i) Source # 
Instance details

Defined in OAlg.Entity.Slice.Sliced

TransformableG Op (Ort, t) Ort Source # 
Instance details

Defined in OAlg.Structure.Oriented.Opposite

Methods

tauG :: Struct (Ort, t) x -> Struct Ort (Op x) Source #

Transformable (Alg k) Ort Source # 
Instance details

Defined in OAlg.Structure.Algebraic.Definition

Methods

tau :: Struct (Alg k) x -> Struct Ort x Source #

TransformableOp (Ort, Sld i) Source # 
Instance details

Defined in OAlg.Entity.Slice.Sliced

Transformable s Ort => Transformable (s, SldFr) Ort Source # 
Instance details

Defined in OAlg.Entity.Slice.Free

Methods

tau :: Struct (s, SldFr) x -> Struct Ort x Source #

Transformable s Ort => Transformable (s, Sld i) Ort Source # 
Instance details

Defined in OAlg.Entity.Slice.Sliced

Methods

tau :: Struct (s, Sld i) x -> Struct Ort x Source #

type Structure Ort x Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

tauOrt :: Transformable s Ort => Struct s x -> Struct Ort x Source #

transforming to Ort.

Duality

Transposable

Extensional Equlity

type EqualExtOrt = Sub EqEOrt (->) Source #

category of extensional equality for Oriented structures.

data EqEOrt Source #

type representing extensional equality for Oriented structures.

Instances

Instances details
EqExt EqualExtOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

(.=.) :: EqualExtOrt x y -> EqualExtOrt x y -> Statement Source #

TransformableObjectClass OrtX EqualExtOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Transformable EqEOrt Type Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tau :: Struct EqEOrt x -> Struct Type x Source #

Transformable OrtX EqEOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tau :: Struct OrtX x -> Struct EqEOrt x Source #

TransformableGObjectClassRange Id OrtX EqualExtOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

TransformableGObjectClassRange Pnt OrtX EqualExtOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

TransformableG Id OrtX EqEOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tauG :: Struct OrtX x -> Struct EqEOrt (Id x) Source #

TransformableG Op EqEOrt EqEOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Opposite

Methods

tauG :: Struct EqEOrt x -> Struct EqEOrt (Op x) Source #

TransformableG Pnt OrtX EqEOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tauG :: Struct OrtX x -> Struct EqEOrt (Pnt x) Source #

DualisableG OrtX EqualExtOrt Op Id Source # 
Instance details

Defined in OAlg.Category.Dualisable

Methods

toDualG :: Struct OrtX x -> EqualExtOrt (Id x) (Id (Op x)) Source #

fromDualG :: Struct OrtX x -> EqualExtOrt (Id (Op x)) (Id x) Source #

DualisableG OrtX EqualExtOrt Op Pnt Source # 
Instance details

Defined in OAlg.Category.Dualisable

Methods

toDualG :: Struct OrtX x -> EqualExtOrt (Pnt x) (Pnt (Op x)) Source #

fromDualG :: Struct OrtX x -> EqualExtOrt (Pnt (Op x)) (Pnt x) Source #

ReflexiveG OrtX EqualExtOrt Op Id Source # 
Instance details

Defined in OAlg.Category.Dualisable

Methods

reflG :: Struct OrtX x -> Inv2 EqualExtOrt (Id x) (Id (Op (Op x))) Source #

ReflexiveG OrtX EqualExtOrt Op Pnt Source # 
Instance details

Defined in OAlg.Category.Dualisable

Methods

reflG :: Struct OrtX x -> Inv2 EqualExtOrt (Pnt x) (Pnt (Op (Op x))) Source #

TransformableGObjectClassDomain Id (HomDisj OrtX Op (HomEmpty OrtX)) EqEOrt Source # 
Instance details

Defined in OAlg.Hom.Definition

TransformableGObjectClassDomain Pnt (HomDisj OrtX Op (HomEmpty OrtX)) EqEOrt Source # 
Instance details

Defined in OAlg.Hom.Definition

type Structure EqEOrt x Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

X

data OrtX Source #

type representing the class of Oriented structures with associated standard random variables.

Instances

Instances details
TransformableTyp OrtX Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

TransformableType OrtX Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

TransformableOrt OrtX Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

TransformableOp OrtX Source # 
Instance details

Defined in OAlg.Structure.Oriented.Opposite

TransformableObjectClass OrtX EqualExtOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Transformable OrtX XStd Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tau :: Struct OrtX x -> Struct XStd x Source #

Transformable OrtX Typ Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tau :: Struct OrtX x -> Struct Typ x Source #

Transformable OrtX EqEOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tau :: Struct OrtX x -> Struct EqEOrt x Source #

Transformable OrtX Ort Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tau :: Struct OrtX x -> Struct Ort x Source #

Transformable OrtX Type Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tau :: Struct OrtX x -> Struct Type x Source #

TransformableGRefl Op OrtX Source # 
Instance details

Defined in OAlg.Structure.Oriented.Opposite

TransformableGObjectClassRange Id OrtX EqualExtOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

TransformableGObjectClassRange Pnt OrtX EqualExtOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

TransformableG Id OrtX EqE Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tauG :: Struct OrtX x -> Struct EqE (Id x) Source #

TransformableG Id OrtX EqEOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tauG :: Struct OrtX x -> Struct EqEOrt (Id x) Source #

TransformableG Op OrtX OrtX Source # 
Instance details

Defined in OAlg.Structure.Oriented.Opposite

Methods

tauG :: Struct OrtX x -> Struct OrtX (Op x) Source #

TransformableG Pnt OrtX EqE Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tauG :: Struct OrtX x -> Struct EqE (Pnt x) Source #

TransformableG Pnt OrtX EqEOrt Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

tauG :: Struct OrtX x -> Struct EqEOrt (Pnt x) Source #

DualisableG OrtX EqualExtOrt Op Id Source # 
Instance details

Defined in OAlg.Category.Dualisable

Methods

toDualG :: Struct OrtX x -> EqualExtOrt (Id x) (Id (Op x)) Source #

fromDualG :: Struct OrtX x -> EqualExtOrt (Id (Op x)) (Id x) Source #

DualisableG OrtX EqualExtOrt Op Pnt Source # 
Instance details

Defined in OAlg.Category.Dualisable

Methods

toDualG :: Struct OrtX x -> EqualExtOrt (Pnt x) (Pnt (Op x)) Source #

fromDualG :: Struct OrtX x -> EqualExtOrt (Pnt (Op x)) (Pnt x) Source #

ReflexiveG OrtX EqualExtOrt Op Id Source # 
Instance details

Defined in OAlg.Category.Dualisable

Methods

reflG :: Struct OrtX x -> Inv2 EqualExtOrt (Id x) (Id (Op (Op x))) Source #

ReflexiveG OrtX EqualExtOrt Op Pnt Source # 
Instance details

Defined in OAlg.Category.Dualisable

Methods

reflG :: Struct OrtX x -> Inv2 EqualExtOrt (Pnt x) (Pnt (Op (Op x))) Source #

TransformableObjectClass OrtX (HomDisj OrtX Op (HomEmpty OrtX)) Source # 
Instance details

Defined in OAlg.Hom.Definition

TransformableGObjectClassDomain Id (HomDisj OrtX Op (HomEmpty OrtX)) EqEOrt Source # 
Instance details

Defined in OAlg.Hom.Definition

TransformableGObjectClassDomain Pnt (HomDisj OrtX Op (HomEmpty OrtX)) EqEOrt Source # 
Instance details

Defined in OAlg.Hom.Definition

type Structure OrtX x Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition