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.Data.Dualisable

Description

data admitting a kind of duality.

Synopsis

Dual

type family Dual (x :: k) :: k Source #

the assigned dual kind.

Instances

Instances details
type Dual 'LeftToRight Source # 
Instance details

Defined in OAlg.Data.Dualisable

type Dual 'RightToLeft Source # 
Instance details

Defined in OAlg.Data.Dualisable

type Dual 'LeftSide Source # 
Instance details

Defined in OAlg.Data.Dualisable

type Dual 'RightSide Source # 
Instance details

Defined in OAlg.Data.Dualisable

type Dual 'From Source # 
Instance details

Defined in OAlg.Data.Dualisable

type Dual 'From = 'To
type Dual 'To Source # 
Instance details

Defined in OAlg.Data.Dualisable

type Dual 'To = 'From
type Dual 'Discrete Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

type Dual 'Empty Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

type Dual 'Empty = 'Empty
type Dual 'General Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

type Dual 'Injective Source # 
Instance details

Defined in OAlg.Limes.Perspective

type Dual 'Projective Source # 
Instance details

Defined in OAlg.Limes.Perspective

type Dual ('Chain 'From) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

type Dual ('Chain 'From) = 'Chain 'To
type Dual ('Chain 'To) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

type Dual ('Chain 'To) = 'Chain 'From
type Dual ('Parallel 'LeftToRight) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

type Dual ('Parallel 'RightToLeft) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

type Dual ('Star 'From) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

type Dual ('Star 'From) = 'Star 'To
type Dual ('Star 'To) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

type Dual ('Star 'To) = 'Star 'From
type Dual (SomeObjectClass m :: Type) Source # 
Instance details

Defined in OAlg.Category.Unify

type Dual (SomePath m :: Type) Source # 
Instance details

Defined in OAlg.Category.Unify

type Dual (SomePath m :: Type) = SomePath (Op2 m)
type Dual (SomeDiagram a :: Type) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

type Dual (SomeDiagram a :: Type) = SomeDiagram (Op a)
type Dual (Matrix x :: Type) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

type Dual (Matrix x :: Type) = Matrix (Op x)
type Dual (SomeApplMltp2 h :: Type) Source # 
Instance details

Defined in OAlg.Hom.Multiplicative.Proposition

type Dual (SomeApplPnt h :: Type) Source # 
Instance details

Defined in OAlg.Hom.Multiplicative.Proposition

type Dual (XHomMlt h :: Type) Source # 
Instance details

Defined in OAlg.Hom.Multiplicative.Proposition

type Dual (XHomMlt h :: Type) = XHomMlt (OpHom h)
type Dual (Adbl2 a :: Type) Source # 
Instance details

Defined in OAlg.Structure.Additive.Proposition

type Dual (Adbl2 a :: Type) = Adbl2 (Op a)
type Dual (Adbl3 a :: Type) Source # 
Instance details

Defined in OAlg.Structure.Additive.Proposition

type Dual (Adbl3 a :: Type) = Adbl3 (Op a)
type Dual (Sheaf f :: Type) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

type Dual (Sheaf f :: Type) = Sheaf (Op f)
type Dual (Mltp2 c :: Type) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Proposition

type Dual (Mltp2 c :: Type) = Mltp2 (Op c)
type Dual (Mltp3 c :: Type) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Proposition

type Dual (Mltp3 c :: Type) = Mltp3 (Op c)
type Dual (XMlt c :: Type) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Proposition

type Dual (XMlt c :: Type) = XMlt (Op c)
type Dual (Path q :: Type) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

type Dual (Path q :: Type) = Path (Op q)
type Dual (XOrtOrientation q :: Type) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

type Dual (XMrphSite s m :: Type) Source # 
Instance details

Defined in OAlg.Category.Proposition

type Dual (XMrphSite s m :: Type) = XMrphSite (Dual s) (Op2 m)
type Dual (Quiver n m :: Type) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Quiver

type Dual (Quiver n m :: Type) = Quiver n m
type Dual (DstRootSide s d :: Type) Source # 
Instance details

Defined in OAlg.Structure.Distributive.Proposition

type Dual (DstRootSide s d :: Type) = DstRootSide (Dual s) (Op d)
type Dual (DstSide s d :: Type) Source # 
Instance details

Defined in OAlg.Structure.Distributive.Proposition

type Dual (DstSide s d :: Type) = DstSide (Dual s) (Op d)
type Dual (XOrtSite s q :: Type) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

type Dual (XOrtSite s q :: Type) = XOrtSite (Dual s) (Op q)
type Dual (Adjunction h d c :: Type) Source # 
Instance details

Defined in OAlg.Adjunction.Definition

type Dual (Adjunction h d c :: Type) = Adjunction (OpHom h) (Op c) (Op d)
type Dual (Path m x y :: Type) Source # 
Instance details

Defined in OAlg.Category.Path

type Dual (Path m x y :: Type) = Path (Op2 m) y x
type Dual (SomeMorphismSite s m y :: Type) Source # 
Instance details

Defined in OAlg.Category.Unify

type Dual (SomeMorphismSite s m y :: Type) = SomeMorphismSite (Dual s) (Op2 m) y
type Dual (SomePathSite s m y :: Type) Source # 
Instance details

Defined in OAlg.Category.Unify

type Dual (SomePathSite s m y :: Type) = SomePathSite (Dual s) (Op2 m) y
type Dual (Slice s i c :: Type) Source # 
Instance details

Defined in OAlg.Entity.Slice.Definition

type Dual (Slice s i c :: Type) = Slice (Dual s) i (Op c)
type Dual (SliceFactor s i c :: Type) Source # 
Instance details

Defined in OAlg.Entity.Slice.Definition

type Dual (SliceFactor s i c :: Type) = SliceFactor (Dual s) i (Op c)
type Dual (Diagram t n m a :: Type) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

type Dual (Diagram t n m a :: Type) = Diagram (Dual t) n m (Op a)
type Dual (XDiagram t n m a :: Type) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Definition

type Dual (XDiagram t n m a :: Type) = XDiagram (Dual t) n m (Op a)
type Dual (Transformation t n m a :: Type) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

type Dual (Transformation t n m a :: Type) = Transformation (Dual t) n m (Op a)
type Dual (Cone s p t n m a :: Type) Source # 
Instance details

Defined in OAlg.Limes.Cone.Definition

type Dual (Cone s p t n m a :: Type) = Cone s (Dual p) (Dual t) n m (Op a)
type Dual (EligibleFactor s p t n m a :: Type) Source # 
Instance details

Defined in OAlg.Limes.Cone.EligibleFactor

type Dual (EligibleFactor s p t n m a :: Type) = EligibleFactor s (Dual p) (Dual t) n m (Op a)
type Dual (Limes s p t n m a :: Type) Source # 
Instance details

Defined in OAlg.Limes.Definition

type Dual (Limes s p t n m a :: Type) = Limes s (Dual p) (Dual t) n m (Op a)
type Dual (Row j (Col i x) :: TYPE LiftedRep) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Entries

type Dual (Row j (Col i x) :: TYPE LiftedRep) = Col j (Row i (Op x))
type Dual (Entries i j x :: TYPE LiftedRep) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Entries

type Dual (Entries i j x :: TYPE LiftedRep) = Entries j i (Op x)
type Dual (ConeZeroHead s p t n m a :: TYPE LiftedRep) Source # 
Instance details

Defined in OAlg.Limes.Cone.Definition

type Dual (ConeZeroHead s p t n m a :: TYPE LiftedRep) = ConeZeroHead s (Dual p) (Dual t) n m (Op a)
type Dual (Limits s p t n m a :: TYPE LiftedRep) Source # 
Instance details

Defined in OAlg.Limes.Limits

type Dual (Limits s p t n m a :: TYPE LiftedRep) = Limits s (Dual p) (Dual t) n m (Op a)

Dualisable

class Dualisable x where Source #

admitting a duality.

Property Let x be Dualisable, than holds: toDual is a bijection with its inverse fromDual.

Methods

toDual :: x -> Dual x Source #

fromDual :: Dual x -> x Source #

Instances

Instances details
Dualisable (SomeObjectClass m) Source # 
Instance details

Defined in OAlg.Category.Unify

Morphism m => Dualisable (SomePath m) Source # 
Instance details

Defined in OAlg.Category.Unify

EntityPoint x => Dualisable (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

toDual :: Matrix x -> Dual (Matrix x) Source #

fromDual :: Dual (Matrix x) -> Matrix x Source #

FibredOriented a => Dualisable (Adbl2 a) Source # 
Instance details

Defined in OAlg.Structure.Additive.Proposition

Methods

toDual :: Adbl2 a -> Dual (Adbl2 a) Source #

fromDual :: Dual (Adbl2 a) -> Adbl2 a Source #

FibredOriented a => Dualisable (Adbl3 a) Source # 
Instance details

Defined in OAlg.Structure.Additive.Proposition

Methods

toDual :: Adbl3 a -> Dual (Adbl3 a) Source #

fromDual :: Dual (Adbl3 a) -> Adbl3 a Source #

FibredOriented f => Dualisable (Sheaf f) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

toDual :: Sheaf f -> Dual (Sheaf f) Source #

fromDual :: Dual (Sheaf f) -> Sheaf f Source #

Oriented c => Dualisable (Mltp2 c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Proposition

Methods

toDual :: Mltp2 c -> Dual (Mltp2 c) Source #

fromDual :: Dual (Mltp2 c) -> Mltp2 c Source #

Oriented c => Dualisable (Mltp3 c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Proposition

Methods

toDual :: Mltp3 c -> Dual (Mltp3 c) Source #

fromDual :: Dual (Mltp3 c) -> Mltp3 c Source #

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

Defined in OAlg.Structure.Oriented.Definition

Methods

toDual :: Path q -> Dual (Path q) Source #

fromDual :: Dual (Path q) -> Path q Source #

Dualisable (XMrphSite 'To m) Source # 
Instance details

Defined in OAlg.Category.Proposition

Distributive d => Dualisable (DstRootSide 'RightSide d) Source # 
Instance details

Defined in OAlg.Structure.Distributive.Proposition

Distributive d => Dualisable (DstSide 'RightSide d) Source # 
Instance details

Defined in OAlg.Structure.Distributive.Proposition

Dualisable (XOrtSite 'To q) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Morphism m => Dualisable (Path m x y) Source # 
Instance details

Defined in OAlg.Category.Path

Methods

toDual :: Path m x y -> Dual (Path m x y) Source #

fromDual :: Dual (Path m x y) -> Path m x y Source #

Dualisable (SomeMorphismSite 'To m y) Source # 
Instance details

Defined in OAlg.Category.Unify

Morphism m => Dualisable (SomePathSite 'To m y) Source # 
Instance details

Defined in OAlg.Category.Unify

fromDual' :: Dualisable x => p x -> Dual x -> x Source #

fromDual enriched with a parameterized type p which serves as a proxy - e.g. Proxy or Id will serve - and will not be evaluated. It serves for the type checker to pick the right fromDual.

Reflexive

class Reflexive x where Source #

admitting reflection.

Property Let x be Reflexive, than holds:

  1. toBidual is a bijection with its inverse fromBidual.

Methods

toBidual :: x -> Dual (Dual x) Source #

fromBidual :: Dual (Dual x) -> x Source #

Instances

Instances details
Reflexive (Path q) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

Methods

toBidual :: Path q -> Dual (Dual (Path q)) Source #

fromBidual :: Dual (Dual (Path q)) -> Path q Source #

fromBidual' :: Reflexive x => p x -> Dual (Dual x) -> x Source #

fromBidual enriched with a parameterized type p which serves as a proxy - e.g. Proxy or Id will serve - and will not be evaluated. It serves for the type checker to pick the right fromBidual.

Transposable

class Transposable x where Source #

transposable types..

Property Let x be a Transposable, then holds: For all x in x holds: transpose (transpose x) == x.

Methods

transpose :: x -> x Source #

Instances

Instances details
Transposable Direction Source # 
Instance details

Defined in OAlg.Data.Dualisable

Transposable Side Source # 
Instance details

Defined in OAlg.Data.Dualisable

Methods

transpose :: Side -> Side Source #

Transposable Site Source # 
Instance details

Defined in OAlg.Data.Dualisable

Methods

transpose :: Site -> Site Source #

Transposable N Source # 
Instance details

Defined in OAlg.Data.Number

Methods

transpose :: N -> N Source #

Transposable Q Source # 
Instance details

Defined in OAlg.Data.Number

Methods

transpose :: Q -> Q Source #

Transposable Z Source # 
Instance details

Defined in OAlg.Data.Number

Methods

transpose :: Z -> Z Source #

(Distributive x, TransposableDistributive x) => Transposable (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

transpose :: Matrix x -> Matrix x Source #

(Galoisian x, TransposableDistributive x) => Transposable (GL2 x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Methods

transpose :: GL2 x -> GL2 x Source #

TransposableMultiplicative c => Transposable (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

transpose :: Inv c -> Inv c Source #

Transposable (Orientation p) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Definition

(Transposable x, Ord n) => Transposable (Entries n n x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Entries

Methods

transpose :: Entries n n x -> Entries n n x Source #

Site

data Site Source #

concept of the sites From and To.

Constructors

From 
To 

Instances

Instances details
Bounded Site Source # 
Instance details

Defined in OAlg.Data.Dualisable

Enum Site Source # 
Instance details

Defined in OAlg.Data.Dualisable

Methods

succ :: Site -> Site #

pred :: Site -> Site #

toEnum :: Int -> Site #

fromEnum :: Site -> Int #

enumFrom :: Site -> [Site] #

enumFromThen :: Site -> Site -> [Site] #

enumFromTo :: Site -> Site -> [Site] #

enumFromThenTo :: Site -> Site -> Site -> [Site] #

Show Site Source # 
Instance details

Defined in OAlg.Data.Dualisable

Methods

showsPrec :: Int -> Site -> ShowS #

show :: Site -> String #

showList :: [Site] -> ShowS #

Eq Site Source # 
Instance details

Defined in OAlg.Data.Dualisable

Methods

(==) :: Site -> Site -> Bool #

(/=) :: Site -> Site -> Bool #

Ord Site Source # 
Instance details

Defined in OAlg.Data.Dualisable

Methods

compare :: Site -> Site -> Ordering #

(<) :: Site -> Site -> Bool #

(<=) :: Site -> Site -> Bool #

(>) :: Site -> Site -> Bool #

(>=) :: Site -> Site -> Bool #

max :: Site -> Site -> Site #

min :: Site -> Site -> Site #

Transposable Site Source # 
Instance details

Defined in OAlg.Data.Dualisable

Methods

transpose :: Site -> Site Source #

type Dual 'From Source # 
Instance details

Defined in OAlg.Data.Dualisable

type Dual 'From = 'To
type Dual 'To Source # 
Instance details

Defined in OAlg.Data.Dualisable

type Dual 'To = 'From

Side

data Side Source #

concept of sides LeftSide and RightSide

Constructors

LeftSide 
RightSide 

Instances

Instances details
Bounded Side Source # 
Instance details

Defined in OAlg.Data.Dualisable

Enum Side Source # 
Instance details

Defined in OAlg.Data.Dualisable

Methods

succ :: Side -> Side #

pred :: Side -> Side #

toEnum :: Int -> Side #

fromEnum :: Side -> Int #

enumFrom :: Side -> [Side] #

enumFromThen :: Side -> Side -> [Side] #

enumFromTo :: Side -> Side -> [Side] #

enumFromThenTo :: Side -> Side -> Side -> [Side] #

Show Side Source # 
Instance details

Defined in OAlg.Data.Dualisable

Methods

showsPrec :: Int -> Side -> ShowS #

show :: Side -> String #

showList :: [Side] -> ShowS #

Eq Side Source # 
Instance details

Defined in OAlg.Data.Dualisable

Methods

(==) :: Side -> Side -> Bool #

(/=) :: Side -> Side -> Bool #

Ord Side Source # 
Instance details

Defined in OAlg.Data.Dualisable

Methods

compare :: Side -> Side -> Ordering #

(<) :: Side -> Side -> Bool #

(<=) :: Side -> Side -> Bool #

(>) :: Side -> Side -> Bool #

(>=) :: Side -> Side -> Bool #

max :: Side -> Side -> Side #

min :: Side -> Side -> Side #

Transposable Side Source # 
Instance details

Defined in OAlg.Data.Dualisable

Methods

transpose :: Side -> Side Source #

type Dual 'LeftSide Source # 
Instance details

Defined in OAlg.Data.Dualisable

type Dual 'RightSide Source # 
Instance details

Defined in OAlg.Data.Dualisable

Direction

data Direction Source #

concept of the directions LeftToRight and RightToLeft.

Constructors

LeftToRight 
RightToLeft 

Instances

Instances details
Bounded Direction Source # 
Instance details

Defined in OAlg.Data.Dualisable

Enum Direction Source # 
Instance details

Defined in OAlg.Data.Dualisable

Show Direction Source # 
Instance details

Defined in OAlg.Data.Dualisable

Eq Direction Source # 
Instance details

Defined in OAlg.Data.Dualisable

Ord Direction Source # 
Instance details

Defined in OAlg.Data.Dualisable

Transposable Direction Source # 
Instance details

Defined in OAlg.Data.Dualisable

type Dual 'LeftToRight Source # 
Instance details

Defined in OAlg.Data.Dualisable

type Dual 'RightToLeft Source # 
Instance details

Defined in OAlg.Data.Dualisable