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.Path

Contents

Description

Paths

Synopsis

Path

data Path q Source #

a path in a Oriented structure q starting at a given point.

Definition Let q be a Oriented structure and p = Path s [a 0..a (n-1)] a path in q, then p is valid if and only if

  1. s is valid and a i are valid for all i = 0..n-1.
  2. start (a (n-1)) == s and start (a i) == end (a (n+1)) for all i = 0..n-2.

furthermore n is called the length of p.

Note Paths admit a canonical embedding in to Product.

Constructors

Path (Point q) [q] 

Instances

Instances details
Foldable Path Source # 
Instance details

Defined in OAlg.Structure.Oriented.Path

Methods

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

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

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

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

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

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

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

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

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

toList :: Path a -> [a] #

null :: Path a -> Bool #

length :: Path a -> Int #

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

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

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

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

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

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

Defined in OAlg.Structure.Oriented.Path

Methods

inj :: q -> Path q Source #

(Show q, ShowPoint q) => Show (Path q) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Path

Methods

showsPrec :: Int -> Path q -> ShowS #

show :: Path q -> String #

showList :: [Path q] -> ShowS #

(Eq q, EqPoint q) => Eq (Path q) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Path

Methods

(==) :: Path q -> Path q -> Bool #

(/=) :: Path q -> Path q -> Bool #

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

Defined in OAlg.Structure.Oriented.Path

Methods

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

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

Reflexive (Path q) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Path

Methods

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

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

LengthN (Path q) Source # 
Instance details

Defined in OAlg.Structure.Oriented.Path

Methods

lengthN :: Path q -> N Source #

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

Defined in OAlg.Structure.Oriented.Path

Methods

valid :: Path q -> Statement Source #

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

Defined in OAlg.Structure.Multiplicative.Definition

Methods

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

(*) :: Path q -> Path q -> Path q Source #

npower :: Path q -> N -> Path q Source #

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 #

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

Defined in OAlg.Structure.Oriented.Path

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

Defined in OAlg.Structure.Oriented.Path

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

Defined in OAlg.Structure.Oriented.Path

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

Defined in OAlg.Structure.Oriented.Path

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

Defined in OAlg.Structure.Oriented.Path

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

Defined in OAlg.Entity.Product.Definition

Methods

inj :: Path a -> Product r a Source #

Embeddable (Path a) (ProductForm r a) Source # 
Instance details

Defined in OAlg.Entity.Product.Definition

Methods

inj :: Path a -> ProductForm r a Source #

Oriented a => Projectible (Path a) (Product N a) Source # 
Instance details

Defined in OAlg.Entity.Product.Definition

Methods

prj :: Product N a -> Path a Source #

Oriented a => Projectible (Path a) (ProductForm N a) Source # 
Instance details

Defined in OAlg.Entity.Product.Definition

Methods

prj :: ProductForm N a -> Path a Source #

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

Defined in OAlg.Entity.Product.Definition

Methods

prj :: Path a -> Product r a Source #

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

Defined in OAlg.Structure.Oriented.Path

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

Defined in OAlg.Structure.Oriented.Path

type Point (Path q) = Point q

pthLength :: Path q -> N Source #

the length of a path.

pthOne :: Point q -> Path q Source #

path of length 0 at the given point.

pthMlt :: Oriented q => Path q -> Path q -> Path q Source #

composition of two paths.