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.Fibred.Definition

Description

fibred structures, i.e. type f with an associated root type Root f such that every value in f has a root.

Synopsis

Fibred

class (Entity f, EntityRoot f) => Fibred f where Source #

types with a Fibred structure. An entity of a Fibred structure will be called a stalk.

Note

  1. On should accept the default for root only if one intens to implement a FibredOriented structure!
  2. For Distributive structures the only thing to be implemented is the Root type and should be defined as Root d = Orientation p where-- p = Point d (see the default implementation of root).

Minimal complete definition

Nothing

Methods

root :: f -> Root f Source #

the root of a stalk in f.

default root :: (Root f ~ Orientation (Point f), Oriented f) => f -> Root f Source #

Instances

Instances details
Fibred N Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

root :: N -> Root N Source #

Fibred Q Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

root :: Q -> Root Q Source #

Fibred Z Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

root :: Z -> Root Z Source #

Fibred N' Source # 
Instance details

Defined in OAlg.Entity.Natural

Methods

root :: N' -> Root N' Source #

Fibred W' Source # 
Instance details

Defined in OAlg.Entity.Natural

Methods

root :: W' -> Root W' Source #

Fibred Integer Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Fibred () Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

root :: () -> Root () Source #

Fibred Int Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

root :: Int -> Root Int Source #

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

Defined in OAlg.Structure.Fibred.Definition

Methods

root :: Id x -> Root (Id x) Source #

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

Defined in OAlg.Entity.Matrix.Definition

Methods

root :: Matrix x -> Root (Matrix x) Source #

Semiring r => Fibred (Vector r) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Vector

Methods

root :: Vector r -> Root (Vector r) Source #

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

Defined in OAlg.Structure.Fibred.Definition

Methods

root :: Sheaf f -> Root (Sheaf f) Source #

Entity a => Fibred (R a) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

root :: R a -> Root (R a) Source #

FibredOriented x => Fibred (Op x) Source # 
Instance details

Defined in OAlg.Structure.FibredOriented

Methods

root :: Op x -> Root (Op x) Source #

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

Defined in OAlg.Structure.Fibred.Definition

(Fibred a, Semiring r, Commutative r) => Fibred (Sum r a) Source # 
Instance details

Defined in OAlg.Entity.Sum.Definition

Methods

root :: Sum r a -> Root (Sum r a) Source #

(Fibred a, Semiring r, Commutative r) => Fibred (SumForm r a) Source # 
Instance details

Defined in OAlg.Entity.Sum.Definition

Methods

root :: SumForm r a -> Root (SumForm r a) Source #

(Semiring r, Commutative r, Entity a) => Fibred (SumSymbol r a) Source # 
Instance details

Defined in OAlg.Entity.Sum.SumSymbol

Methods

root :: SumSymbol r a -> Root (SumSymbol r a) Source #

(Entity d, Entity i, Ord i, Entity x) => Fibred (FSequenceForm d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

root :: FSequenceForm d i x -> Root (FSequenceForm d i x) Source #

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

Defined in OAlg.Entity.Slice.Definition

Methods

root :: Slice s i x -> Root (Slice s i x) Source #

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

Defined in OAlg.Limes.Exact.ConsecutiveZero

(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 #

(DefaultValue d i x, Entity d, Entity i, Entity x, Ord i, Typeable s) => Fibred (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

root :: FSequence s d i x -> Root (FSequence s d i x) Source #

data Fbr Source #

type representing the class of Fibred structures.

Instances

Instances details
TransformableTyp Fbr Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

TransformableFbr Fbr Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Transformable Abl Fbr Source # 
Instance details

Defined in OAlg.Structure.Additive.Definition

Methods

tau :: Struct Abl x -> Struct Fbr x Source #

Transformable Add Fbr Source # 
Instance details

Defined in OAlg.Structure.Additive.Definition

Methods

tau :: Struct Add x -> Struct Fbr x Source #

Transformable Dst Fbr Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Methods

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

Transformable DstX Fbr Source # 
Instance details

Defined in OAlg.Structure.Distributive.Proposition

Methods

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

Transformable Fbr Ent Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

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

Transformable Fbr Typ Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

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

Transformable FbrOrt Fbr Source # 
Instance details

Defined in OAlg.Structure.FibredOriented

Methods

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

Transformable FbrOrtX Fbr Source # 
Instance details

Defined in OAlg.Structure.FibredOriented

Methods

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

Transformable (Alg k) Fbr Source # 
Instance details

Defined in OAlg.Structure.Algebraic.Definition

Methods

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

Transformable (Vec k) Fbr Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Methods

tau :: Struct (Vec k) x -> Struct Fbr x Source #

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

Defined in OAlg.Entity.Slice.Free

Methods

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

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

Defined in OAlg.Entity.Slice.Sliced

Methods

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

type Structure Fbr x Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

type Structure Fbr x = Fibred x

class Transformable s Fbr => TransformableFbr s Source #

helper class to avoid undecidable instances.

Sheaf

data Sheaf f Source #

a list in a Fibred structure having all the same root.

Definition Let f be a Fibred structure and s = Sheaf r [t 0 .. t (n-1)] a sheaf in Sheaf f, then s is valid if and only if

  1. r is valid and t i are valid for all i = 0..n-1.
  2. root (t i) == r for all i = 0..n-1.

furthermore n is called the length of s.

If two sheafs have the same root then there stalks can be composed - via (++) - to a new sheaf having the same root. But as (++) is not commutative they are equipped with a Multiplicative structure.

Constructors

Sheaf (Root f) [f] 

Instances

Instances details
Foldable Sheaf Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

fold :: Monoid m => Sheaf m -> m #

foldMap :: Monoid m => (a -> m) -> Sheaf a -> m #

foldMap' :: Monoid m => (a -> m) -> Sheaf a -> m #

foldr :: (a -> b -> b) -> b -> Sheaf a -> b #

foldr' :: (a -> b -> b) -> b -> Sheaf a -> b #

foldl :: (b -> a -> b) -> b -> Sheaf a -> b #

foldl' :: (b -> a -> b) -> b -> Sheaf a -> b #

foldr1 :: (a -> a -> a) -> Sheaf a -> a #

foldl1 :: (a -> a -> a) -> Sheaf a -> a #

toList :: Sheaf a -> [a] #

null :: Sheaf a -> Bool #

length :: Sheaf a -> Int #

elem :: Eq a => a -> Sheaf a -> Bool #

maximum :: Ord a => Sheaf a -> a #

minimum :: Ord a => Sheaf a -> a #

sum :: Num a => Sheaf a -> a #

product :: Num a => Sheaf a -> a #

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

Defined in OAlg.Structure.Fibred.Definition

Methods

inj :: f -> Sheaf f Source #

(Show f, ShowRoot f) => Show (Sheaf f) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

showsPrec :: Int -> Sheaf f -> ShowS #

show :: Sheaf f -> String #

showList :: [Sheaf f] -> ShowS #

(Eq f, EqRoot f) => Eq (Sheaf f) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

(==) :: Sheaf f -> Sheaf f -> Bool #

(/=) :: Sheaf f -> Sheaf f -> Bool #

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

Defined in OAlg.Structure.FibredOriented

Methods

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

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

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

Defined in OAlg.Structure.Fibred.Definition

Methods

valid :: Sheaf f -> Statement Source #

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

Defined in OAlg.Structure.Fibred.Definition

Methods

root :: Sheaf f -> Root (Sheaf f) Source #

EqRoot f => EqRoot (Sheaf f) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

ShowRoot f => ShowRoot (Sheaf f) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

TypeableRoot f => TypeableRoot (Sheaf f) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

ValidableRoot f => ValidableRoot (Sheaf f) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

Fibred f => Multiplicative (Sheaf f) Source #

'Data.List.(++)' is not commutative!

Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

one :: Point (Sheaf f) -> Sheaf f Source #

(*) :: Sheaf f -> Sheaf f -> Sheaf f Source #

npower :: Sheaf f -> N -> Sheaf f Source #

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

Defined in OAlg.Structure.Fibred.Definition

EqRoot f => EqPoint (Sheaf f) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

ShowRoot f => ShowPoint (Sheaf f) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

TypeableRoot f => TypeablePoint (Sheaf f) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

ValidableRoot f => ValidablePoint (Sheaf f) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

(Fibred a, Ord a, Semiring r, Commutative r) => Projectible (Sum r a) (Sheaf a) Source # 
Instance details

Defined in OAlg.Entity.Sum.Definition

Methods

prj :: Sheaf a -> Sum r a Source #

type Dual (Sheaf f :: Type) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

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

Defined in OAlg.Structure.Fibred.Definition

type Root (Sheaf f) = Root f
type Point (Sheaf f) Source # 
Instance details

Defined in OAlg.Structure.Fibred.Definition

type Point (Sheaf f) = Root f

X

type XFbr = X Source #

random variable for validating Fibred structures.

xoFbr :: XOrtOrientation f -> XFbr f Source #

the associated random variable for validating Fibred structures.

xFbrOrnt :: X p -> XFbr (Orientation p) Source #

random variable for the Fibred structure of Orientation p.

Stalk

data XStalk x Source #

random variable for stalks.

Constructors

XStalk (X (Root x)) (Root x -> X x) 

xRoot :: XStalk x -> X (Root x) Source #

the underlying random variable of roots.

xSheafRootMax :: Fibred f => XStalk f -> N -> Root f -> X (Sheaf f) Source #

random variable of sheafs in a Fibred structure all rooted in the given root and with a length of either 0 - for empty roots - or with the given length.

xSheafMax :: Fibred f => XStalk f -> N -> X (Sheaf f) Source #

random variable of sheafs, based on the underlying random variable of roots, with a length of either 0 - for empty roots - or with the given length.

xStalkOrnt :: X p -> XStalk (Orientation p) Source #

random variable of XStalk on Orientation p.