h&f      !"#$%&'()*+,-./0123456789:;<=>?@A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                            !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""#####################################$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''((((((((((((()))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,-------------------------------------------------............................ . . . . . . . . . . . . . . . . . . . . . . / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 : : : ; ; ; ; ; ; ; ; < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ A A A A B B B B B B B B B CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKLLLLLLLLLLLLMMMNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^_____________________``````````````````````````````````aaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeffffffffffffffffffgggggggggggggggggggggggggghiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkllmnnnnooooooooooooooooooooooooooooopppppppppstatefull evaluation (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred<* oalg-baseaction over a state s., oalg-base%running an action on the gicen state.- oalg-basesets the state.. oalg-basegets the state.*+,-.*+,.-general algebraic exceptions (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred5>i2 oalg-base8general algebraic exception which are sub exceptions of 8.8 oalg-base0The root exception for all algebraic exceptions.: oalg-baseembedding an exception into 8.; oalg-basecasting an exception to 8.< oalg-basemessage for implementation errors. Mainly used for non-permissible or unreachable patterns.23456789:;<:;89234567< $reducing a value to head normal form (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred5AA oalg-base#data reducible to head normal form.B oalg-base=tries to reduce a value to its head normal form, throwing an  for undefined values.C oalg-basevalues in head normal form.F oalg-basefrom head normal form.Property Let x' be in C x then holds: If x' matches C x then the result of F x' is x.If x' matches E e then evaluation F x' will end up in a throwing e.G oalg-basetries to reduce a value x8 to its head normal form. If the reduction ends up in a  e then this will be catched and E e will be returned, otherwise @C will be returned.ABCDEFGCDEFABG solver with possible failure (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred5DM oalg-basemonad to solve algebraic problems which may fail because it is not solvable or ...N oalg-baseextracting the solution from the solver. If during solving an exception e occurs, then e! will be thrown via the regular throw mechanism of qr.Note solve extracts the solution lazy!O oalg-basechecks for solvability of a algebraic problem represented be a solver s (see also N). P oalg-basethrowing exception in to M to express unsolvable.Q oalg-basehandling exception.Note# Only exceptions expressed via the P mechanism can be handled by Q!MNOPQMPQNO constructing values (c) Erich GutBSD3zerich.gut@gmail.com Safe-InferredIVV oalg-basetypes with an associated form, which serves as a  blueprint% to construct a corresponding value.A common setting for this structure is a module with a reducible type f (see st) with public constructors - which serves as a form to be filled out - and in the same module a type e( with a private constructor - lets say E - to hold the u f!. Than an implementation would be make f = E (reduce f)and form (E f) = fProperty Let x be an instance of the class V than holds: For all x in x holds: W (Z x)  x.W oalg-base constructor.X oalg-basetypes with an associated form type and a function Z" which exposes its values to its form.Y oalg-base the form.Z oalg-basethe associated form.[ oalg-baserestriction of a f in Y x -> y.\ oalg-baserestriction of a f in Y x -> Y y. VWXYZ[\VW\XYZ[ concept of duality (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred01N" ] oalg-baseconcept of the directions ^ and _.` oalg-baseconcept of sides a and bc oalg-baseconcept of the sites d and e.f oalg-basetransposable types..Property Let x be a f, then holds: For all x in x holds: g (g x)  x.h oalg-baseadmitting reflection.Property Let x be h , than holds: i! is a bijection with its inverse j.k oalg-baseadmitting a duality.Property Let x be k, than holds: l$ is a bijection with its inverse m.n oalg-basethe assigned dual kind.o oalg-basem$ enriched with a parameterized type p# which serves as a proxy - e.g. vw or  x will serve - and will not be evaluated. It serves for the type checker to pick the right m.p oalg-basej$ enriched with a parameterized type p# which serves as a proxy - e.g. Proxy or  x will serve - and will not be evaluated. It serves for the type checker to pick the right j.]^_`abcdefghijklmnopnklmohijpfgcde`ab]^_equality on values (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred<O oalg-base/equality on values for two parameterized types.Note, We use this class meanly in the context of yz. oalg-base/equality on values for one parameterized types. oalg-baseequal. oalg-basenot greater than. ) ) identical predicate (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred8:Q oalg-baseidentical predicate. oalg-base deconstructs . oalg-basetransforming a  f :: x ->  y to a f' :: x -> i z. oalg-basetransforming a  f :: x -> y to a f' :: x -> Id y.maybe predicate (c) Erich GutBSD3zerich.gut@gmail.com Safe-InferredR oalg-base gets all the s - if there are any. oalg-base just p a   a if and only if p a.ordering (c) Erich GutBSD3zerich.gut@gmail.com Safe-InferredY oalg-basepartially ordered types. Properties Let a be an instance of  , then holds: For all x in a holds: x  x.For all x, y in a holds: If x  y and y  x then x  y.For all x, y, z in a holds: If x  y and y  z then x  z. oalg-basethe span type. oalg-basethe closer of a linear ordered x. oalg-base)comparing according to the mapped values. oalg-basecomparing according to the given ordering relation on the mapped values. oalg-basethe reverse ordering oalg-basecomparing of pairs. oalg-base)sorting according to the first component. oalg-base)sorting according to the first component. oalg-base*sorting according to the second component. oalg-base*sorting according to the second component. oalg-basethe maximum of the items of a list, i.e. the smallest upper bound.Property Let xs be in [x] for a linear ordered x, then holds: For all x in xs holds:  x   xs. oalg-basethe minimum of the items of a list, i.e. the biggest lower bound.Property Let xs be in [x] for a linear ordered x, then holds: For all x in xs holds:  xs   x. oalg-base(l,u) =  xs where l is the minimum and u the maximum of the items in xs.Example cspan "aeb"(It 'a',It 'e')cspan ""(PosInf,NegInf) oalg-base i0 h# enumerates the index, starting by i0 to h. $4reducible data (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred^  oalg-basereduction state. oalg-baseno reduction has been applied. oalg-basea reduction has been applied. oalg-base* according to the state type . oalg-base!types admitting reducible values. Definition  e is called the algebraic value of e. Reducing an e twice yield the 'same' value and the idea is that in an algebraic calculation it will be 'safe' to substitute any occurrence of e by its reduced value, i.e. both calculations will yield the same result.Property Let e7 be a reducible type admitting equality, then for all e in e holds:  ( e) ==  e. oalg-base reducing e to its algebraic value. Note The default implementation is  = . oalg-baseindicates that a term has the given reduction step, i.e. returns the given value and sets the state to . oalg-basereduces x= by the given rules until no more reductions are applicable.  oalg-basecomposition of two reductions.  1 showing data (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred<a6 oalg-base%showable for two parameterized types.Note, We use this class mearly in the context of yz. oalg-base%showable for one parameterized types. oalg-baseinserting the given value in between the elements of the given list.Examplestween ',' "12345" "1,2,3,4,5" tween ',' """" tween ',' "1""1" oalg-baseinserting the given list in between the elements of the given list and joining the result. Examplejtween ";" ["abcd","efg"] "abcd;efg" &$%  &$%  predicate for the opposite (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferredb oalg-base5Predicat for the opposite of a two parametrized type h where the two parameters x and y are switched oalg-base%Predicate for the opposite of a type x.  oalg-basefrom  x. oalg-basefrom  ( x).disjoint union of data (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*c oalg-base/disjoint union of two parameterized data types.application on values. (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferrede8 oalg-base+family of types having a representation in  f a -> f b. oalg-base application. oalg-base+family of types having a representation in (->). oalg-base application. oalg-base(right associative application on values.0verbosity on showing (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferredi  oalg-base$tagging for showing percentage of a . oalg-baseshows a in the context of verbosity. oalg-basethe default implementation is: vshow v a = vshowStr ( v) (show a) oalg-basekinds of verbosity. oalg-basedefault length for a string representation in context of verbosity. oalg-base/verbosely showing a string by the given length.ExamplevshowStr (Just 3) "123456789""123.."vshowStr Nothing "123456789" "123456789" oalg-basedefault number of entries for a list representation in context of verbosity. oalg-base-verbosely showing a list by the given length.Examples(vshowList Full (Just 3) "[" "]" "abcdef""['a','b','c'..]"vshowList Low (Just 3) "{" "}" ["abcdef","ghijklmn","op","qrst","uvwxyz"]'"{['a','b'..],['g','h'..],['o','p']..}" oalg-base5showing a double as percent with the given precision.ExampleshowPercent 2 0.912837 " 91.28%"singleton types (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferredk oalg-baseone parameterized types s# with exactly one element for each x which is called the unit1 of s x. oalg-basetypes s, with exactly one value which is called the unit of s.singular types (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferredm  oalg-base0parameterized types with at most on constructor. Definition A type function p is called singular if and only if for each type x' there is at most one constructor for p x. oalg-baseequivalence of witnesses in p x.Note p  q returns either  or an 5 will be thrown. a tool kit for making statistics (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferredn oalg-base=makes the statistics of the given list of wight, value pairs. oalg-base1makes the statistics of the given list of values. oalg-base=puts the statistics of the given list of wight, values pairs. oalg-base0puts the statistics of the given list of values.binary trees for lookup (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferredo oalg-base!binary tree with node element in i and leaf element in x. oalg-base lookup a value in a binary tree.{ type literals (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferredp6introducing the idiom of Hom (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred/q oalg-base5parameterized constraint that the values of the type h x y admit the constraints of a homomorphisms between the structures given by s.#introducing the idiom of structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*5t oalg-base,helper class to avoid undecidable instances. oalg-base,helper class to avoid undecidable instances. oalg-base transforming structural attests. oalg-base transforming structural attests. oalg-basetype for ordered structures. oalg-base structures. oalg-baseattest that the type x. admits the constrains given by the parameter s. oalg-base$parameterized constraint for a type x.   definition of boolean structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferredv oalg-basetype representing  structures. oalg-base types with a ' structure, allowing multivalent logic.Note Every  type which is also $ has a natural implementation as  = ",  = #, () = , () = 3 (as there are min and max bounds the operator () and ()2 should be implemented with a lazy variant of  and  ) and  b =  (! #  ! t).  2311canonical mappings (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferredz oalg-basecanonical projection from b on to a.Property  is surjective.if the two types a and b are also  a b then    is the identical mapping. oalg-basecanonical projection from b on to a oalg-basecanonical embedding from a in to b.Property  is injective.if the two types a and b are also  a b then    is the identical mapping. oalg-basecanonical injetion from a in to b.basic number types (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred}  oalg-baserational numbers q = zn with  q == z and  q == n. oalg-base integers  ..-1, 0, 1, 2.. . oalg-basetypes admitting a length. oalg-basenatural numbers  0, 1, 2... oalg-base enumeration.enum 3 6 :: [N] [3,4,5,6] oalg-base division for  oalg-base modulo for . oalg-basetakes the first n elements of the list. oalg-basesplits a list in left and right part according to the given number. oalg-basea >- b = a - b if b <= a, otherwise a 4 SubtrahendToBig exception will be thrown. oalg-base(Forms the ratio of two integral numbers. oalg-basedenominator of a rational.Exampledenominator (3/2)2 oalg-basenumerator of a rational.Exampledenominator (3/2)3! ! 67random variables (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred"- oalg-baserandom variable over x , possibly . Let x be a type and xx in  x, then we use the idiom x is in the range of xx if there exist a o in  such that x is an element of  xx o.Note For the empty set O there is exactly one sigma algebra, i.e. the power set of the empty set O, and for every set X- there is exactly one measurable function O -> X, i.e. the empty function, and hence exactly one random variable over O.To not run into non terminating programs, we restrict the implementation of xa  f to a maximal number of iterations to find a suitable sample in xa for which f a? is not empty. If the iterations exceed this maximum number, a  exception will be thrown. oalg-baseA possible state of the world. It is used for , or  to generate randomly values. oalg-base Exceptions for random variables. oalg-basemakes a state. oalg-basegets randomly a state. oalg-base!maximal number of iterations for . oalg-base,infinite list of randomly picked samples of xx according to a initial omega o. If xx" is empty then the result will be '[]'. oalg-base'gets a list of randomly picked samples. oalg-basethe first element of  xx o. If xx is empty then a  exception will be thrown. oalg-baserandom variable of . oalg-baserandom variable for pairs. oalg-baserandom variable for triples. oalg-baserandom variable of list. oalg-baserandom variable of list with the given length for non empty random variables. Otherwise the result will be . oalg-baserandom variable of lists with a length between the given bounds. oalg-base)uniformly distributed random variable of s. oalg-base)uniformly distributed random variable of s in the given range. If the lower bound is greater then the upper bound the result will be . oalg-base)uniformly distributed random variable of s. oalg-base)uniformly distributed random variable of s in the given range. If the lower bound is greater then the upper bound the result will be . oalg-base)uniformly distributed random variable of s. oalg-base)uniformly distributed random variable of s in the given range. If the lower bound is greater then the upper bound the result will be . oalg-base)uniformly distributed random variable of s. oalg-base)uniformly distributed random variable of s in the given range. If the lower bound is greater then the upper bound the result will be . oalg-base)uniformly distributed random variable of s. oalg-base)uniformly distributed random variable of s in the given range. If the lower bound is greater then the upper bound the result will be . oalg-base+uniformly distributed random variable of a   in the range " to #. oalg-base+uniformly distributed random variable of a  in the given range. If the lower bound is greater then the upper bound the result will be . oalg-base)uniformly distributed random variable of  s. oalg-base)uniformly distributed random variable of . oalg-base)uniformly distributed random variable of  in the given bounds. If the lower bound is greater then the upper bound the result will be . oalg-base9uniformly distributed random variable in the given range. oalg-base?uniformly distributed random variable bounded by a lower bound. oalg-baseuniformly distributed random variable in the given range. If the lower bound is greater then the upper bound the result will be . oalg-base)uniformly distributed random variable of . oalg-basexOneOfW [(w1,x1)..(wn,xn)] is the random variable of xs in  [x1,x2,..xn] with a distribution of the xis of  pi = wi/s, where 0 < n, s = w1+w2+..+wn and 0 <= wi for i = 1..n. If n == 0 then  will be the result. oalg-base xOneOf xs is the random variable of xs in xs) with a uniformly distribution of the xi s, where  0 < length xs. If xs == [] then  will be the result. oalg-baseas . oalg-baseas . oalg-base'a strict and head recursive version of . oalg-basethe mean value of n-samples according the state s. oalg-base-puts the distribution according to the given aspects! and the given number of samples. oalg-base?puts the distribution according of the given number of samples. oalg-base?puts the distribution of according the given number of samples. oalg-base%showing the constructor as an aspect. oalg-base?puts the distribution according of the given number of samples. oalg-baselength of the returned list..definition of categories (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*5< oalg-base,helper class to avoid undecidable instances. oalg-basemorphism for which its object class can be embedded into the given structure. oalg-base forgets the  of m and sets it to t", under the condition that the  of m is  to t. oalg-basecategory of isomorphisms.Property Let c be a type instance of , then holds: For all types x, y and f in c x y holds: ( f  f) ==  ( f) and (f   f) ==  ( f) where (==) = . oalg-base:representable categories, i.e. covariant functors from an  category c to (->). Properties Let c! be a type instance of the class  then holds: Fnc1For all types x and d in  ( c) x holds:  ( d) = .Fnc2For all types x, y, z and f in c y z, g in c x y holds:  (f  g) =  f   g.  oalg-basecategory of morphisms. Properties Let c! be a type instance of the class , then holds: Cat1For all types x, y and f in c x y holds:  ( f)  f = f and f   ( f) = f.Cat2For all types w, x, y, z and f in c x w, g in c y x, h in c z y holds: f  (g  h) = (f  g)  h.  oalg-base&the identity morphism for an eligible x. oalg-base morphism. oalg-basethe object class. oalg-baseattests, that the types x and y# fulfill the constraints given by  ( m) x y-, i.e both fulfill the constraints given by  ( m) x and  ( m) y respectively. oalg-baseattests that the domain type x$ fulfills the constraints given by  ( m) x. oalg-baseattests that the range type y$ fulfills the constraints given by  ( m) y. oalg-baseattest that both x and y have homomorphous structures, i.e. both admit the same constraints given by the parameter s. oalg-basethe identity map. oalg-base%the constant map given by a value in b.Property Let y be in b then for all x in a holds:  y x is identical to y. oalg-base the first component of the pair. oalg-base"the second component of the pair.  oalg-basecurrying a map. oalg-baseuncurrying a map. oalg-basecurrying a map. oalg-baseuncurrying a map. oalg-base gets for two  types x and x' and for two parameterized types maybe an attest that the domain types are equal. oalg-base gets for two  types y and y' and for two parameterized types maybe an attest that the range types are equal. oalg-basegets maybe an attest that the two given morphisms types are equal.  oalg-base.transforming homomorphous structural attests.  oalg-base.transforming homomorphous structural attests.  oalg-basetransforming a  where p serves only as a proxy for m and will not be evaluated. oalg-basethe  to a given  ( c) . The type p c serves only as proxy and  is lazy in it.Note As  may be a non-injective type family, the type checker needs some times a little bit more information to pic the right .$$9 5&definition of statements on properties (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*5 oalg-basepath of strings. oalg-basethe wide for a  and  resolution. oalg-baseindentation, where the first component is the basic indentation and the second the actual. oalg-basethe 0 of a statement resulting from its validation.  and ! are resolved by finite samples. oalg-basethe truth type of a value v. oalg-baseweak form of classical boolean values arising from stochastically performed valuation of s. Definition Let a, b be in , then we define:  a =  (!   ! a).a  b = max a b.a  b = min a b.a  b =  a  b.Note min and max are implemented lazy as & is bounded. This is important that  behaves as desired, i.e. for a  b and a =  then b has not to be evaluated, because the maximum is already reached.. oalg-basestatement on properties.. oalg-basethe invalid statement. oalg-basethe valid statement. oalg-basechecking a boolean. oalg-basecatching an exception. oalg-basenot oalg-baseand oalg-baseand oalg-baseor oalg-baseor oalg-base implication oalg-base implication oalg-baseefinitional equivalence oalg-base equivalence oalg-base equivalence oalg-basethe for all constructor oalg-basethe exist constructor. oalg-base a message. oalg-baseused for relations where no further information is desired or possible to give (see  relRelation as an example).  oalg-base a message oalg-basea list of parameters oalg-base/showing the involved parameters of a statement. oalg-basetype of variables. oalg-base a labels. oalg-base4validating exceptions which are sub exceptions from 8. oalg-baseconvenient catcher for . oalg-basechecking for equality. oalg-basechecking for inequality. oalg-base7implication without resulting in denied premises for a ! premises. This is useful for switch cases. oalg-base)uniformly distributed random variable of . oalg-basethe next deeper indentation. oalg-basethe indentation as string. oalg-base6the initial indentation given by a indentation string. oalg-base2pretty showing a value with the given indentation. oalg-basedetermines whether the value is deterministic, i.e. dose not contain a  or  constructor. oalg-basevalidating a value v. oalg-base5evaluates the value of a statement according a given  and .Note .The only reason to valuate a statement in the  monad is to be able to catch exceptions. Other interactions with the  real world* during the valuation are not performed.During the evaluation process the given wide and omega will not be changed and as such all same random variables will produce exactly the same samples. This restricts the stochastic, but it is necessary for the sound behavior of the validation of statements. oalg-base-validates the statement according to a given  and -. For deterministic statements better use 9 and for non deterministic or to get more information #|. oalg-basevalidation for  deterministic statements. Definition A statement s is called  deterministic if and only if it dose not depend on the stochastic nor on the state of the machine.ExamplesvalidateDet SValidTrue)validateDet (Forall xBool (\_ -> SValid))*** Exception: NonDeterministic (i==0):?>MInvalid))True oalg-basechecking for being . oalg-base(reduces true valus to its relevant part. oalg-basechecking for being . oalg-base)reduces false valus to its relevant part. oalg-base:gets the conclusion - if there is - of a true implication.pre: v is true implication oalg-basereduces true implication having no conclusion to the relevant of its false premisis. oalg-base+reduces false values having denied premisis oalg-basereduces ture values - having implications with no conclusions, i.e. denied premises - to its relevant part. oalg-base+reduces failed values to its relevant part. oalg-base"defines the relevant labels to be counted by . oalg-base%the list of all relevant tests - i.e  'VDedEqvl l _ where l =  _( - together with the number of tests. oalg-base number of . oalg-base number of  for true values. Note Before counting the tests they will be first reduced to there relevant part (see ). oalg-base number of  for false values. Note Before counting the tests they will be first reduced to there relevant part (see ). oalg-base number of ( for values containing denied premises. Note Before counting the tests they will be first reduced to there relevant part (see ). oalg-base number of  for failed values. Note Before counting the tests they will be first reduced to there relevant part (see ). oalg-basexWO l h is the random variable over wide and omgea, where the wide is bounded between l and h.  oalg-baserandom variable of valuation values according to the randomly given  and . oalg-base?pretty showing the value of a statement according to the given  and randomly given . ?? 432101441#propositions on boolean structures. (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred| oalg-basefor all p holds:  ( p)  p. oalg-basefor all a, b and c holds: (a  b)  c  a  (b  c). oalg-basefor all a, b and c holds: (a  b)  c  (a  c)  (b  c). oalg-basefor all p holds:   p  p. oalg-base []  . oalg-basefor all a and as holds:  (a:as)  a   as. oalg-base$substituting equivalent boolenas in $ yiels equivalent booleans, i.e. for all (a,a') and (b,b') holds: (a  a')  (b  b')  ((a  b)  (a'  b')). oalg-basefor all a, b and c holds: (a  b)  c  a  (b  c). oalg-basefor all a, b and c holds: (a  b)  c  (a  c)  (b  c). oalg-basefor all p holds:   p  p. oalg-base []  . oalg-basefor all a and as holds:  (a:as)  a   as. oalg-basefor all p holds: p  p. oalg-basefor all p holds:   (p  ).)i.e. a false premisis implies everithing. oalg-basefor all a, b and c holds: ((a  b)  c)  (a  b  c). oalg-basefor all a, b and c holds: (a  b)  (b  c)  (a  c).  oalg-basefor all a and b holds: (a  b)  ((a  b) && (b  a)). oalg-baselazy evaluation of , i.e.   '  .Note ('  ) evaluates to an exception! oalg-baselazy evaluationof , i.e.   '. oalg-baselazy evaluation of , i.e.   '. oalg-base"tautologies on boolean structures. oalg-basetautologies for  . oalg-base laziness of ,  and (). oalg-basevalidity of the  structure of  .}boolean structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred6& proposition on statements (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*5) oalg-base=random variable of statements with the maximal given depth.  oalg-baselogical tautologies of .Note Validating this proposition produces about 15% denied premises, which is OK. oalg-baselogical tautologies of . oalg-basecatch algebraic exceptions. oalg-base    . oalg-base  . oalg-base ::  ->   is a homomorphism between  structures. oalg-basevalidity of the logic of ..~statements on properties (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred˱ validable values (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred5<3 oalg-basevalidation of a value of h x y. oalg-basevalidation of a value of p x. oalg-basevalidation of a value of a. oalg-basestandard random variable for x.Property For all x in the range of  holds:  x. oalg-base+the standard random variable associated to x . The type p x3 serves only as proxy and will be not evaluated. oalg-base7validity of the standard random variable associated to x (p x1 just serves as proxy and will not be evaluated). oalg-base-validation of being reducible to normal form.  !character symbols (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred2 oalg-base symbols from  to . oalg-base)uniformly distributed random variable of ."definition of entities (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred5@ oalg-basethe empty entity2. oalg-basethe empty entity. oalg-base#entity for two parameterized types. oalg-baseentity for parameterized types. oalg-base indexing s. oalg-baseentity. oalg-basethe empty function. oalg-basethe empty function.# a tool kit for automatic testing (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferredq oalg-baseresult of the validation. oalg-basenumber of tests over all oalg-base-number of false tests from a non valid sample oalg-base,number of tests from reduced denied premises oalg-baseconfiguration of validating. oalg-baseinitial state. oalg-base#number of samples to be validated.  oalg-baserange of wide. oalg-base(maximal time for validateing in seconds. oalg-base,duration between two log entires in seconds. oalg-base with statistics. oalg-base9number of labels to be shown for the statistics over all. oalg-base#defines the stochastic behavior of . oalg-baseshort cut for . and should be used mainly in interactiv mode. oalg-basestandard configuration oalg-basevalidates the proposition with the given configuration and stochastic. oalg-base"adapts the standard configuration # according to the given stochastic. oalg-base8validates the statement with the configuration given by , oalg-basevalidates a statement. oalg-basevalidates a statement according to the given stochastic with showing the statistics.$ category of paths over morphisms (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*5  oalg-basepaths over morphisms. oalg-basecomposing paths. oalg-basefolding from the right. oalg-basethe length of a path. oalg-base"composing the morphisms of a path. oalg-baseembedding morphisms into paths. oalg-base%reversing a path given by the formal inverse function. oalg-basethe opposite path. oalg-basefrom the opposite path.  9 9 %unification of categories (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15) oalg-basesome morphism given by a c. oalg-base&some path parameterized either by its  or . oalg-basesome object class. oalg-base some path oalg-base some entity x in x having the given  m as structure. oalg-basesome morphism. oalg-basesome application. oalg-base embedding.&properties on categories (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*1 oalg-baserandom variable for  s. oalg-baserandom variable of  and  with:Note The random variable  ( m) should have a bias towards non terminal respectively initial object classes. For an implementation see .It is the analogue to  at the level of s. oalg-baserandom variable for  categories. oalg-base3some composable morphisms with an applicable value. oalg-baserandom variable for validating . oalg-basesome composable morphisms. oalg-base%random variable for some application. oalg-base4arithmetic exceptions which are sub exceptions from 8. oalg-basevalidity according to OAlg.Category.Category#Cat1. oalg-basevalidity according to OAlg.Category.Category#Cat2. oalg-basevalidity of a . oalg-basevalidity according to OAlg.Category.Category#Fnc1. oalg-basevalidity according to OAlg.Category.Category#Fnc2. oalg-basevalidity of a  category. oalg-base validity of . oalg-base5the underlying random variable for some object class. oalg-baserandom variable of paths of s having maximal the given length. If during the randomly build path no terminal respectively initial object class has reached then the resulting path will have the given length.It is the analogue to  at the level of s. oalg-base'derived random variable for some paths. oalg-base adjoining  for empty random variables. oalg-base0constructing random variable for some path site. oalg-base+constructing random variable for some path. oalg-baserandom variable for validating . oalg-baserandom variable for s for a given c. oalg-baserandom variable for  s. the prelude (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*5c#" ! ) %&$  '(27653489:;<]^_`abcdefghijklmnop#"'('concept of perspective (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred1 oalg-base concept of  and .(arithmetic exceptions (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred oalg-base4arithmetic exceptions which are sub exceptions from 8.  )!definition of oriented structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15i- oalg-basestandard random variable for . oalg-base2random variable of arrows given by an orientation. Properties Let  xo xArrow be in  q for a  structure q, then holds: For all o in  q and x in the range of xArrow o holds:  x  o.Note The random variable xo5 should have a bias to non trivial random variables xo  xArrow and as such the range of xo4 should be included in one connection component of q. oalg-basestandard random variable of s of a. oalg-basestandard random variable for  d., helper class to avoid undecidable instances. oalg-basestandard random variable for  e., helper class to avoid undecidable instances. oalg-basestandard random variable for . oalg-baserandom variables  q and  ( q) for  structure q. Properties Let q be an instance of the class  , then holds: Let  xp xStart be in  d q, then holds: For all p in  q and x in the range of xStart p holds:  x  p.Let  xp xEnd be in  e q, then holds: For all p in  q and x in the range of xEnd p holds:  x  p.Note The random variables xp5 should have a bias to non trivial random variables xp  xStart or xp  xEnd. oalg-basetransformable to  structure. oalg-basetype representing the class of  structures. oalg-base1helper class to circumvent undecidable instances. oalg-base,helper class to avoid undecidable instances. oalg-base structures where its associated  type is singleton. They yield globally defiend algebraic operations. oalg-base a path in a  structure q starting at a given point. Definition Let q be a  structure and p =  s [a 0..a (n-1)] a path in q, then p is  if and only if s is  and a i are  for all  i = 0..n-1. (a (n-1))  s and  (a i)   (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 . oalg-base!transposable oriented structures.Property Let q be a " structure, then holds: For all a in q holds:  (g a)   ( a). oalg-base types with a  structure. The values of an  structure will be called arrows" and the values of the associated  type points. To each arrow there is a  and a  point assigned.Property Let q! be a type instance of the class  , then holds: Ort1For all a in q holds:  a   a   a.Note  If the types q and  q are interpreted as sets A and P and ,  as functions from A to P then this structure forms a quiver with arrows in A and points in P.s can be interpreted as  structures via :. The bad thing about this is that we lose the check for  composability of two s given by the type checker, but we gain all the functionality of = structures, i.e we can define homomorphisms, limits etc on s. oalg-basethe associated type of points. oalg-basethe orientation of an arrow. oalg-basethe start point of an arrow. oalg-basethe end point of an arrow. oalg-baseas  p is an instance of almost every structured class it serves as a standard type for validating. oalg-baseorientation given by the start point as its first component and the end point as its second.Property For all o in  p holds: o   o   o.Note As s are instances of almost all algebraic structures defined here, they serve as a proof' that this structures are instanceable. oalg-basethe opposite orientation. oalg-basecheck for being an endo. Definition Let q be a  structure, then an arrow a in q is called endo if and only if  a   a. oalg-base+check for being an endo at the given point. oalg-basethe length of a path. oalg-base$path of length 0 at the given point. oalg-basecomposition of two paths. oalg-baseattest that if x is  then also  x is . oalg-baseto the dual of a  s q, with inverse . oalg-basefrom the bidual. oalg-basefrom the dual of a n ( s q), with inverse . oalg-base!the random variable of arrows in q having all as  the given point. oalg-base!the random variable of arrows in q having all as  the given point. oalg-basetries to make a path at the given point with maximal length of the given length. Properties Let xPath =  xos n x , then holds: If xos matches  _ xq then for all p in the range of xPath holds:  p  x.If  p  n then xq ( p) matches .If xos matches  _ xq then for all p in the range of xPath holds:  p  x.If  p  n then xq ( p) matches . oalg-baserandom variable of paths with maximal length of the given length. oalg-basethe  d for  p of the given random variable. oalg-basethe  e of  p of the given random variable. oalg-base to the dual. oalg-base/the underlying random variable of orientations. oalg-basethe underlying random variable of arrow given by the orientation. oalg-basethe underlying random variable of points, i.e. the union of the induced  and  random variable of . oalg-base the induced  e oalg-base the induced  d. oalg-baserandom variable of  q for a total q. oalg-basethe induced random variable of  q.445*#propositions on oriented structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)* = oalg-baserandom variable for  structures. oalg-basevalidity of the functions ,  and . oalg-base!validity of the relation between ,  and  according to 'OAlg.Structure.Oriented.Definition#Ort1. oalg-basevalidity of the  structure of q. oalg-base#the underlying random variable for  structures. oalg-base"the underlying random variable of  g. oalg-base#the underlying random variable for  structures. oalg-basethe induced random variable of  structures for  p.oriented structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred =+'definition of multiplicative structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 15$ oalg-basetransformable to  structure. oalg-basetype representing the class of  structures. oalg-baseinvertible factors within a  structures c, which forms a sub  structure on c#, given by the canonical inclusion  which is given by \ f _ -> f.Property Let  f f' be in  c where c is a  structure, then holds:  f'   ( f).f'  f   ( f).f  f'   ( f).Note; The canonical inclusion is obviously not injective on the set of all values of type  c to c. But restricted to the 2 ones it is injective, because the inverses of a f in c are uniquely determined by f. oalg-base. structures where every element is invertible.Property Let c be a ! structure, then holds: For all f in c holds:  f  .Note  If the type  c7 is singleton, then the mathematical interpretation of c is a group.(The name of this structures is given by  Arthur Cayley who introduced the concept (and the name) of an abstract group in 1854 ( +https://en.wikipedia.org/wiki/Arthur_Cayley).4Usually in mathematics such a structure is called a groupoid. oalg-base#multiplicative structures having a multiplicative inverse. Definition Let f and g be two factors in a  structure _c then we call g a multiplicative inverse to f7 (or short inverse) if and only if the following hold:  g ==  f and  g ==  f.f  g =  ( f) and g  f ==  ( f). Properties For all f in a  structure c holds:  f is equivalent to O ( f).if  f holds, then  f is * and it is the multiplicative inverse of f. Furthermore  f  N ( m).if   f holds, then  f is not % and evaluating it will end up in a  -exception.Note It is not required that every factor has a multiplicative inverse (see  for such structures).This structure is intended for multiplicative structures having a known algorithm to evaluate for every invertible f its inverse. oalg-base=solver to evaluate the multiplicative inverse - if it exists. oalg-base the inverse. oalg-basecheck for being invertible. oalg-baseif 0  z then n4 times the multiplication for the given factor else  z> times the multiplication of the inverse of the given factor. oalg-base&commutative multiplicative structures.Property Let c be a  structure, then holds: For all f and g in c with  f   f,  g   g and  f   g holds: f  g  g  f. oalg-base transposable  structures.Property Let c be a  structure, then holds: For all p in  c holds: g ( p) =  p.For all f, g in c with  f   g holds: g (f  g)  g g  g f. oalg-base structures with a  partially defined multiplication and having  as the neutral element( of the multiplication. An entity of a  structure will be called a factor. Properties Let c! be a type instance of the class , then holds: Mlt1For all p in  c holds:  ( p)  p  p.Mlt2For all f and g in c holds: Mlt2_1if  f   g then f  g is  and  (f  g)   g and  (f  g)   f.Mlt2_2if  f )  g then f  g is not % and its evaluation will end up in a  exception.Mlt3For all f in c holds:  ( f)  f  f and f   ( f)  f.Mlt4For all f, g and h in c with  g ==  h and  f ==  g holds: (f  g)  h  f  (g  h).Mlt5For all f in c holds: Mlt5_1 f 1  f.Mlt5_2If f is a endo than  f 0   ( f) and For all n in  holds:  f ( n)  f   f n.Such a c will be called a multiplicative structure and an entity f of c will be called factor. The associated factor  p to a p in  c will be called the one at p.Note If the types c and  c are interpreted as sets M and O and & as a partially defined function from  M x M -> M then this forms a small category with objects in O and morphisms in M. oalg-basethe neutral element associated to each point. If there is no ambiguity for  p we will briefly denote it by 1 r or just 1. oalg-base"the multiplication of two factors. oalg-basen, times the multiplication of a given factor f. oalg-basethe  to a given point. The type p c serves only as proxy and  is lazy in it.Note As  may be a non-injective type family, the type checker needs some times a little bit more information to pic the right . oalg-basecheck for being equal to . oalg-base adjoining a  for empty random variable. oalg-baserandom variable of paths at the given point and the given length (see  and as c is , the underlying random variable for factors for a given point is not empty). oalg-base/random variable of paths with the given length. oalg-baseputs the distribution. oalg-base&the induced random variable for paths.7,operations on entities (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred6 oalg-baseleft operation of a  structure f on a  structure x.Property Let f be a  and x a  structure, and f, x an instance of  , then holds: For all f in f and x in x holds. If  x   f then f  x is  and  (f  x)   x   f.If  x )  f then f  x is not % and its evaluation will end up in a ( exception.For all x in x holds:  ( x)  x x.For all x in x and f, g in f with  g   x,  f   g holds: f  g  x  (f  g)  x .Note If f" is invertible, then it rise of a  bijection f  from all x in x with  x   f to all y in x with  y   f. Its inverse is given by  f . oalg-baseleft operation of a   structure f on x.Property Let f be a   structure and x an instance of  , then holds: For all x in x holds:  u  x  x where u =  is the singleton element in  f.For all x in x and f, g in f holds: f  g  x  (f  g)  x.Note If f( is invertible, then it gives rise of a  bijection f  on x with inverse  f . oalg-baseleft operation of f on x. This class is rather technical, because on this abstract level it is not possible to define the exact behavior of the operation, i.e. for which values f and x the expression f  x is ,. For a precise definition see for example  or # where the behavior can be stated. oalg-baseright operation of a  structure f on a  structure x.Property Let f be a  and x a  structure, then holds: For all f in f and x in x holds. If  x   f then x  f is  and  (x  f)   f   x.If  x )  f then x  f is not % and its evaluation will end up in a ( exception.For all x in x holds: x   ( x)  x.For all x in x and f, g in f with  f   x,  g   f holds: x  f  g  x  (f  g).Note If f" is invertible, then it rise of a  bijection  f from all x in x with  x   f to all y in x with  y   f. Its inverse is given by   f. oalg-baseright operation of a   structure f on x.Property Let f be a   structure and x an instance of  , then holds: For all x in x holds: x   u  x where u =  is the singleton element in  f.For all x in x and f, g in f holds: x  f  g  x  (f  g).Note If f( is invertible, then it gives rise of a  bijection  f on x with inverse   f. oalg-baseright operation of f on x. This class is rather technical, because on this abstract level it is not possible to define the exact behavior of the operation, i.e. for which values f and x the expression x  f is ,. For a precise definition see for example  or # where the behavior can be stated. oalg-baseright operation. 5-)propositions on multiplicative structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 5? oalg-basestandard random variable for  structures. oalg-baserandom variable for  structures.Note As the multiplication could by costly, it is recommended to use a bounded random variable for  which serves to validate . oalg-base*predicate for three multiplicable factors. oalg-base(predicate for two multiplicable factors. oalg-basepredicate for endos. oalg-basedeconstruction of a . oalg-base validity of  according to -OAlg.Structure.Multiplicative.Definition#Mlt1. oalg-base validity of / for two multiplicable factors according to /OAlg.Structure.Multiplicative.Definition#Mlt2_1. oalg-base validity of 3 for two not multiplicable factors according to /OAlg.Structure.Multiplicative.Definition#Mlt2_2. oalg-base validity of  according to -OAlg.Structure.Multiplicative.Definition#Mlt2. oalg-basevalidity according to -OAlg.Structure.Multiplicative.Definition#Mlt3. oalg-basevalidity according to -OAlg.Structure.Multiplicative.Definition#Mlt4. oalg-base validity of  according to -OAlg.Structure.Multiplicative.Definition#Mlt5.Note As the multiplication can by very costly the random variable for   - which serves to check /OAlg.Structure.Multiplicative.Definition#Mlt5_2 - has to be chosen carefully. oalg-base&the dual random variable with inverse . oalg-basefrom the bidual. oalg-basefrom the dual with inverse . oalg-basevalidity of the  structure of c. oalg-baserandom variable for total  structures. oalg-base-random variable of two multiplicable factors. oalg-base/random variable of three multiplicable factors. oalg-baserandom variable for  structures. oalg-base9the induced random variable for multiplicable structures. oalg-baserandom variable for the  structure of  p.multiplicative structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred@3.definition of fibred structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 5<I'  oalg-basetransformable to  structure. oalg-basetype representing the class of  structures. oalg-basetransformable to  structure. oalg-basetype representing the class of  structures. oalg-base a list in a  structure having all the same . Definition Let f be a  structure and s =  r [t 0 .. t (n-1)] a sheaf in  f, then s is  if and only if r is  and t i are valid for all  i = 0..n-1. (t i)  r for all  i = 0..n-1. furthermore n is called the length of s.If two sheafs have the same ) then there stalks can be composed - via ()# - to a new sheaf having the same  . But as (). is not commutative they are equipped with a  structure. oalg-base3type where the associated root type is a singleton. oalg-base/type where the associated root type is ordered.Note2 Helper class to circumvent undecidable instances. oalg-base and  structure with matching  and .Property Let d be a # structure, then holds: For all s in d holds:  s   s.Note  structures are required for  structures. oalg-base types with a  structure. An entity of a  structure will be called a stalk.Note On should accept the default for  only for  structures!For 05 structures the only thing to be implemented is the  type and should be defined as  d =  p where-- p =  d$ (see the default implementation of ). oalg-basethe type of roots. oalg-basethe  of a stalk in f.  oalg-base'Data.List.(++)' is not commutative!  /!definition of additive structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 5<W  oalg-basetransformable to   structure.  oalg-basetype representing the class of   structures.  oalg-basetransformable to   structure.  oalg-basetype representing the class of   structures.  oalg-base ' structures having for each summand an additve inverse. Properties Let a be a   structure, then holds: Abl1For all f in a holds:  (  f)   f.Abl2For all f in a holds: f     f ==   ( f).Abl3For all f and g in a holds: Abl3_1If  f   g then f   g is  and  (f   g)   f.Abl3_2If  f )  g then f   g is not % and its evaluation will end up in a  -exception.Abl4For f and g in a with  f   g holds: f   g  f     g.Abl5For all z in  and f in a holds: Abl5_1If 0  z then   z f    ( z) f.Abl5_2If z  0 then   z f    (  ( z) f).  oalg-basenegation of a summand.  oalg-basesubtraction of two summands. Properties  oalg-basez times of a sumand.  oalg-base structures with a partialy defined addition and having   as the neutral element" of the summation. An entity of a   structure will be called a summand. Properties Let a be a   structure, then holds: Add1For all r in  a holds:  (  r)  r.Add2For all f and g in a holds: Add2_1If  f   g then f   g is  and  (f   g)   f.Add2_2If  f )  g then f   g is not % and its evaluation will end up in a  -exception.Add3For all f, g in a with  f   g holds: f   g  g   f.Add4For all f in a holds: f     ( f)  fAdd5For all f, g, h in a with  f   g   h holds: (f   g)   h  f   (g   h).Add6For all f in a and n in  holds:   0 f ==   ( f) and   (n   1) f  f     n f.  oalg-base'the neutral element associated to each ". If there is no ambiguity for   r we will briefly denote it by 0 r or just 0.  oalg-basethe addition for two summands.  oalg-basen times of a summand.  oalg-basethe   to a given root. The type p c serves only as proxy and   is lazy in it.Note As  may be a non-injective type family, the type checker needs some times a little bit more information to pic the right  .  oalg-basecheck for beeing  .   6 60&definition for distributive structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred ^  oalg-basetransformable to   structure.  oalg-basetype representing the class of   structures.  oalg-base%transposable distributive structures.Property Let d be a   structure, then holds: For all r in  d holds: g (  r)    (g r)For all a, b in d with  a   b holds: g (a   b)  g a   g b.  oalg-base structures equipped with an   and # structure satisfying the laws of distributivity. Properties Let d be a   structure, then holds: Dst1For all g in d and r in  d with  g   r holds:   r  g    r' where r'   g   r.Dst2For all g, a and b in d with  a   b and  a   g holds: (a   b)  g == ag   bg.Dst3For all f in d and r in  d with  f   r holds: f    r    r' where r' =  r   f.Dst4For all f, a and b in d with  a   b and  f   a holds: f(a   b) == fa   fb.Note If d$ is interpreted as a small category C then it is usually called  preadditive. If d is also   then C is also usually called abelian.  1!propositions on fibred structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred d  oalg-baserandom variable for stalks.  oalg-base$random variable type for validating  structures.  oalg-baserandom variable for validating  structures.  oalg-base validity for  structures.  oalg-base validity for  structures.  oalg-base"the underlying random variable of s.  oalg-baserandom variable of sheafs in a  structure all rooted in the given root and with a length of either 0 - for empty s - or with the given length.  oalg-baserandom variable of sheafs, based on the underlying random variable of roots, with a length of either 0 - for empty s - or with the given length. oalg-base adjoins a   stalk for empty s.  oalg-base2random variable of sheafs, all based on the given  and with the given length.  oalg-base0random variable of sheafs with the given length.  oalg-baserandom variable for the  structure of  p.  oalg-baserandom variable of   on  p.  oalg-baserandom variable for the  structure of  p.  oalg-base.the associated random variable for validating  structures.  oalg-base.the associated random variable for validation  structures.  fibred structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferrede) 2#propositions on additive structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred q~!  oalg-baserandom variable for validating   structures.  oalg-basestandard random variable for   structures.  oalg-baserandom variable for validating   structures.  oalg-base%predicate for three addable summands.  oalg-base#predicate for two addable summands.  oalg-base relation of  .  oalg-base validtiy of  according to 'OAlg.Structure.Additive.Definition#Add1.  oalg-base validity of  * for two addable summands according to )OAlg.Structure.Additive.Definition#Add2_1.  oalg-base validity of  . for two not addable summands according to )OAlg.Structure.Additive.Definition#Add2_2.  oalg-base&validtiy of two summands according to 'OAlg.Structure.Additive.Definition#Add2.  oalg-base-validtiy of two adable summands according to 'OAlg.Structure.Additive.Definition#Add3.  oalg-basevalidtiy according to 'OAlg.Structure.Additive.Definition#Add4.  oalg-base/validtiy of three adable summands according to 'OAlg.Structure.Additive.Definition#Add5.  oalg-base validity of   according to 'OAlg.Structure.Additive.Definition#Add6.  oalg-basevalidity of the   structure of a.Note For a good choice of   see the note of  .  oalg-baserandom variable for total   structures.  oalg-baserandom variable of two addable summands rooted at the given root.  oalg-baserandom variable of three addable summands rooted in the given root.  oalg-baserandom variable for   structure.  oalg-baserandom variable for the   structure of  p.  oalg-basevalidity according to 'OAlg.Structure.Additive.Definition#Abl1.  oalg-basevalidity according to 'OAlg.Structure.Additive.Definition#Abl2.  oalg-base validity of  * for two addable summands according to )OAlg.Structure.Additive.Definition#Abl3_1.  oalg-base validity of  . for two not addable summands according to )OAlg.Structure.Additive.Definition#Abl3_2.  oalg-base&validity of two summands according to 'OAlg.Structure.Additive.Definition#Abl3.  oalg-base&validity of two summands according to 'OAlg.Structure.Additive.Definition#Abl4.  oalg-base&validity of two summands according to 'OAlg.Structure.Additive.Definition#Abl5.  oalg-basevalidity of the   structure of a.  oalg-base'the induced random variables for roots.  oalg-base5the induced random variable for two addable summands.  oalg-base7the induced random variable for three addable summands.  oalg-base the induced random variable for  8 structures with the given random variable to validate  .  oalg-base the induced random variable for  8 structures with the given random variable to validate  .' ' additive structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 5<r5 3'propositions on distributive structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*15{F  oalg-basestandard random variable for   structures.  oalg-baserandom variable for validating   structures.  oalg-basepredicate for two addable summands together with a matching factor. Properties Let p be in   s d for a   structure, then holds: If p matches   (a,b) g then holds:  a   b. a   g.If p matches   f (a,b) then holds:  a   b. f   a.  oalg-base.predicate for a root and a factor at the root. Properties Let p be in   s d for a   structure d, then holds: If p matches   r f then holds:  r   f.If p matches   f r then holds:  f   r.  oalg-basevalidity according to  OAlg.Structure.Distributive#Dst1.  oalg-basevalidity according to  OAlg.Structure.Distributive#Dst3.  oalg-basevalidity according to  OAlg.Structure.Distributive#Dst2.  oalg-basevalidity according to  OAlg.Structure.Distributive#Dst4.  oalg-basevalidity for the   structure of the type a.  oalg-baserandom variable to validate    structures.  oalg-base the induced random variable for   structures.  oalg-baserandom variable for the   structure of  p.  oalg-basedistribution of   d. oalg-base the induced random variable for   a d'. oalg-base the induced random variable for   b d'. oalg-base the induced random variable for   a d'. oalg-base the induced random variable for   b d'.  oalg-base the induced random variable for   structures.  distributive structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred{ 47definition of homomorphisms between oriented structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*/15  oalg-baseinduced homomorphism on .  oalg-base!isomorphisms induced by paths of  .  oalg-base paths of  .  oalg-basecontravariant s-isomorphisms between f x and f ( x).  oalg-basecontravariant s-isomorphism from f x to f ( x).  oalg-basethe inverse of  .  oalg-base!isomorphisms induced by paths of  .  oalg-base paths of  .  oalg-base.some basic contravariant isomorphisms between s-structures with there .  oalg-baseidentity morphism.  oalg-baseisomorphisms between  structures.  oalg-bases-isomoprhisms.  oalg-basefunctorial application on  structures. Properties Let h be an instance of the class  , then holds: FncHom1For all types a and s in  ( h) a holds:   ( s) = .FncHom1For all types a, b, c and f in h b c, g in h a b holds:   (f  g) =   f    g.  oalg-base%type family of homomorphisms between  structures.Property Let h be an instance of  , then for all a, b and f in h a b and x in a holds:  ( f x)    f ( x) and  ( f x)    f ( x).We call such a h a 3family of homomorphisms between oriented structures and an entity f in h a b a covariant oriented homomorphism - or oriented homomorphism for short - between a and b$. A covariant oriented homomorphism f in h ( a) b or h a ( b) will be called a +contravariant oriented homomorphism between a and b.Note As h is an instance of  h  it follows that for all a, b and f in h a b holds:  ( f) ::   a b and thus a and b are  structures! How to work with this concretely see the implementation of % where the property above is stated.The constraint  for a family h of homomorphisms between " structures ensures that the type $z h is a instances of .  oalg-basethe induced mapping of . oalg-basethe inverse morphism. oalg-basereducing paths of  .  oalg-base!the induced isomorphism given by  .  oalg-basethe induced isomorphism of  structures given by  .Examples let tOS = invert2 (isoFromOpOpOrt :: IsoOp Ort (Op (Op OS)) OS) let f = isoFromOpOpOrt :: Oriented a =>IsoOp Ort (Op (Op a)) a let t = invert2 f tOSIsoOp Path[ToOpOp] t . t . tOS IsoOp Path[ToOpOp,ToOpOp,ToOpOp]f . f . t . f . t . tOS IsoOp Path[]&f . f . t . f . t . tOS == cOne StructTrue  oalg-basestructural attest for  .  oalg-basestructural attest for  . oalg-basethe inverse morphism.  oalg-basecontravariant isomorphism from  x to  (x) .  59propositions on homomorphisms between oriented structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*1C  oalg-base2random variable to validate homomorphisms between  structures.  oalg-base"validity of homomorphisms between ! for a given value in the domain.  oalg-base"validity of homomorphisms between & structures based on the given values.  oalg-base"validity of homomorphisms between 0 structures based on the given random variable.  oalg-base"validity of homomorphisms between 0 structures based on the given random variable.  oalg-base validity of    to be a family of  homomorphisms between   and .  oalg-base validity of    according to   on  .  oalg-base validity of    according to  on  .  oalg-base validity of    according .  oalg-baserandom variale of   . )homomorphisms between oriented structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred' 6'homomorphisms between fibred structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*5<  oalg-base%type family of homomorphisms between  structures.Property Let h be an instance of   then for all a, b and f in h a b and r in  a holds:   f r    f r.  oalg-basefunctorial application of  homomorphisms.  oalg-base%type family of homomorphisms between  structures.Property Let h be an instance of   then for all a, b and f in h a b and x in a holds:  ( f x)    f ( x).  oalg-basevalidity according to  .  7)homomorphisms between additive structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*5<  oalg-base%type family of homomorphisms between   structures.Property Let h! be a type instance of the class  , then for all a, b and f in h a b holds: HomAdd1For all r in  a holds:  f (  r)    (  f r).HomAdd2For all x and y in a with  x   y holds:  f (x   y) )   f x    f y.Such a h will be called a 3family of homomorphisms between additive structures and an entity f of h a b a additive homomorphism between a and b.  oalg-basevalidity according to OAlg.Hom.Additive#HomAdd1.  oalg-basevalidity according to OAlg.Hom.Additive#HomAdd2.  8=definition of homomorphisms between multiplicative structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*/15  oalg-baseisomorphisms between  structures.  oalg-base%type family of homomorphisms between  structures. Propoerty Let h! be a type instance of the class  , then for all a, b and f in h a b holds: HomMlt1For all p in  a holds:  f ( p)   (  f p).HomMlt2For all x, y in a with  x   y holds:  f (x  y)   f x   f y.Such a h will be called a 9family of homomorphisms between multiplicative structures and an entity f of h a b a multiplicative homomorphism between a and b.Note If we interpret the types a and b# as small categories (see note at () then we can interpret the type family h$ as a family of covariant functors.  oalg-basethe induced isomorphism of  structures given by  .  oalg-basethe induced isomorphism of  structures given by  .  9?propositions on homomorphisms between multiplicative structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15= oalg-basesome application on  c.  oalg-base-random variable for validating a type family h according to  .  oalg-base*some application on multiplicable factors.  oalg-basesome application on a point.  oalg-baseto the dual of   h with its inverse  .  oalg-basefrom the dual of n (  h) with its inverse  .  oalg-basevalidity according to OAlg.Hom.Multiplicative#HomMlt1.  oalg-basevalidity according to OAlg.Hom.Multiplicative#HomMlt2.  oalg-baseto the dual of   h with its inverse  .  oalg-basefrom the dual of n (  h) with its inverse  .  oalg-baseto the dual of   h with its inverse  .  oalg-basefrom the dual of n (  h) with its inverse  .  oalg-base"validity of homomorphisms between  structures according to OAlg.Hom.Multiplicative#HomMlt. oalg-baseto the dual of  e h.  oalg-base;random variable for some application on a point given by a .  oalg-baserandom variable for some application on multiplicable factors given by a .  oalg-basethe induced random variable of   , given by .  oalg-basethe induced random variable of  .  oalg-base validity of    to be a family of  homomorphisms.  /homomorphisms between multiplicative structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferredf :9propositions on homomorphisms between algerbaic structure (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 6  oalg-base validity of   s according to  and  .  oalg-base validity of   s according to ,   and  .  oalg-base validity of   ) according to  and .  ;,homomorphisms between distributive structure (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred/   oalg-baseisomorphisms between   structures.  oalg-base%type family of homomorphisms between   structures.  oalg-basethe induced isomorphism of   structures given by  .  <&natrual numbers promoted to type-level (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*015<  oalg-base10.  oalg-base9.  oalg-base8.  oalg-base7.  oalg-base6.  oalg-base5.  oalg-base4.  oalg-base3.  oalg-base2.  oalg-base1.  oalg-base0.  oalg-base some witness.  oalg-base/union of all witnesses, which is isomorphic to  and  .  oalg-basewitnesse of some natural.  oalg-basewitness of being attestable.  oalg-baseattest for any natural number.  oalg-base!predicate for any natural number.  oalg-basewitness for a natural number and serves for inductively definable elements (see  ).  oalg-basecomparing two natural numbers.  oalg-base"multiplication of natural numbers.  oalg-baseaddition of natural numbers.  oalg-base(natural number promotable to type-level.  oalg-basemapping a natural number in  to  .  oalg-basecomparing of two witnesses.  oalg-baseaddition of witnesses.  oalg-basemultiplication of witnesses.  oalg-base%induction for general type functions.  oalg-base$the corresponding natural number in  of a type parameterized by n. oalg-baseequality for witnesses.  oalg-base!successor of some natural number.  oalg-basemapping  to  .Note The implementation of this mapping is quite inefficent for high values of .  oalg-base4the induced random variable for some natural number.  oalg-base#the infinite list of some naturals.  oalg-basemapping a natural value in  to  .  oalg-base reflexivity.  oalg-base'well definition of parameterized types.  oalg-basesubstitution rule for addition.  oalg-base0" is right neural for the addition.  oalg-baseadding 1 is equal to the successor.  oalg-baseadding 2, is equal to the successor of the successor. oalg-basemutlitplication with 0 is zero. oalg-base1( is left neutral for the multiplication.  oalg-base*equality of the underlying natural number.  oalg-base * is as parameterized type is well defined.  oalg-basesuccessor is injective.  oalg-base " is left neutral for the addition.  oalg-base ' is the right neutral for the addition.  oalg-baseaddition is associative.  oalg-baselemma 1 for the addition.  oalg-baseaddition is commutative.  oalg-base ( is left neutral for the multiplication.  oalg-base ) is right neutral for the multiplication.  oalg-base!law of left distributivity holds.  oalg-basemultiplication is associative.  oalg-baseright multiplication of   is  .  oalg-baselemma 2 for addition.  oalg-base"law of right distributivity holds.  oalg-basemultiplication is commutative.  oalg-base codeW n m. generates the haskell code for the witnesses   of   from n to m.  oalg-baseitfW n m3 generates the haskell interface for the witnesses   from n to m.  7 6 6 70=,finite lists, parameterized by there length. (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15:  oalg-basesome finite list.  oalg-base!Wrapper to switch the parameters.  oalg-base,finite lists, parameterized by there length.  oalg-basethe underlying witness.  oalg-base$the head of a non empty finite list.  oalg-base$the tail of a non empty finite list.  oalg-baseinduction for sequences.  oalg-base&zips two sequences of the same length.  oalg-base)zips three sequences of the same length.  oalg-base3appending an element at the end of the finite list.  oalg-baseappending two finite lists.  oalg-base the product of two finite lists.  oalg-basethe constant sequence.  oalg-basemaps a sequnece as = a0..a(n-1) of length n to the corresponding array a with ai  ai for  i = 0..(n-1).  oalg-base"the underlying quiver of a diagram (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*1  oalg-base quiver of n points and m arrows.Property Let  Quiver w o be in   n m, then holds: For all 0  j  m holds: s j  n and e j  n where n =  w, s j =  (o j) and e j =  (o j).  oalg-base*the orientation of the arrows of a quiver.  oalg-base#the dual of a quiver, with inverse  .  oalg-base#from the dual quiver, with inverse  .  ?-definition of diagrams on oriented structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15!  oalg-base some diagram.  oalg-base+generator for random variables of diagrams.  oalg-base-duality between diagrams.  oalg-basediagram for a  structure a of type t having n points and m arrows. Properties Let d be in   t n m a for a  structure a , then holds: If d matches   e as then holds: e   a0 and  ai   ai+1 for all  i = 0..m-2 where a0 .. ai .. am-1   = as.If d matches   s as then holds: s   a0 and  ai   ai+1 for all  i = 0..m-2 where a0 .. ai .. am-1   = as.If d matches   l r as then holds:  a  lr for all a in as.If d matches   l r as then holds:  a  rl for all a in as.If d matches   e as then holds: e   a for all a in as.If d matches   s as then holds: s   a for all a in as.If d matches   ps aijs then holds pi   aij and pj   aij for all aij in aijs and ps = p0..pn-1@.  oalg-basethe types of a  .  oalg-basen" is well defined on diagram types.  oalg-basethe points of a diagram.  oalg-basethe arrows of a diagram.  oalg-basethe center point of a   -diagram.  oalg-base+mapping of a diagram via a homomorphism on  structures.  oalg-base the co diagram with its inverse  .Property Let d be in   t n m a for a  structure a then holds:   (  d)    d.  oalg-basefrom   .  oalg-base'from the dual diagram, with inverse of  .  oalg-baseto g ( a).  oalg-basefrom g ( a).  oalg-base#the underlying quiver of a diagram.  oalg-basethe last point of the chain.  oalg-basethe first point of the chain.  oalg-base adjoins a  # arrow as the first parallel arrow.  oalg-basethe _tail__ of a parallel diagram.  oalg-base8subtracts the first arrow to all the others an drops it.  oalg-basesubtracts to every arrow of the parallel diagram the first arrow.  oalg-basethe type of a diagram.  oalg-base+reflexivity of the underlying diagram type. oalg-basethe co- .  oalg-base)the induced random variables of diagrams.  oalg-base.mapping of some diagram via a homomorphism on  structures.  oalg-base'the dual of some diagram, with inverse  .  oalg-basefrom   .  oalg-base,from the dual of some diagram, with inverse  .  oalg-base-the induced random variable of some diagrams.  oalg-base3distribution of a random variable of some diagrams.  oalg-base#random variable of some diagram of  p.9 9 @propositions on diagrams (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15͔  oalg-basethe point list is stable under  .  oalg-basevalidity of diagrams on !s.  A*propositions on basic algebraic structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred  oalg-base'validity of the algebraic structure of .  oalg-base'validity of the algebraic structure of .  oalg-base'validity of the algebraic structure of .  oalg-base'validity of the algebraic structure of .  Bdefinition of rings (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred/  oalg-basenot degenerated commutative rings where every element not equal to zero has a multiplicative inverse. Properties   /=  .For all x and y in r holds: If y /=   then x   y is If y    then x   y is not % and its evaluation will end up in a ( -exception.For all x and y in r with y /=   holds: y  (x   y)  x.  oalg-base division.  oalg-baseNote Not every element not equal to  " has to be invertible. As such  is  .  oalg-baseabelian semi rings.  oalg-basedistributive structure where  and   are total.Note If r is  and   then . r is .  oalg-base!the neutral element according to  , i.e.  rZero ==   .  oalg-base!the neutral element according to , i.e. rOne ==  .  oalg-base$check being the additive inverse of  .   7rings (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferreds Cdefinition of numbers as ordered semi rings with infinitely many elements (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*/15  oalg-base5digital representation of numbers for the given base b.Note  is a finite list# maybe a infinite list and as such * could end up in an infinite proposition! oalg-base the signum. oalg-base,the digital representation of the floor part oalg-base1the digital representation of the fractional part oalg-basemeasurable entities. oalg-basedistance of two points. Properties Let a r be  , then holds: For all x and y in a holds:  0 <= dist x yFor all x and y in a holds:  dist x y == 0 if and only if x == y.For all x and y in a holds: dist x y == dist y x.For all x, y and z in a holds: dist x z <= dist x y   dist y z oalg-basecontinuous numbers, i.e acyclic and negateable numbers. They induce a sub *-vectorial structures of the real numbers.Note' We will distinguish here instances of 3 and the mathematical entities of real numbers!  oalg-base2distributive structure with entities scaleable by .Property For every 0  n and point p holds:   n ( p) is invertible.Note The cyclic rings  n for 2 <= n are not scaleable by  , because 1 ) 0 and   n 1  0!If for every point p holds that   (pp)   p% then the structure is scaleable by  (e.g.  p). oalg-base q a    z a   (  n ( ( a))) . where z =  q and n =  q. oalg-basediscrete numbers.Property For all x holds:  x  0. oalg-base$ordered commutative semi ring where   and  respect the given ordering. Definitions  A number x is called positive if 0 < x and negative if x < 0.A number structure is called positive% if it contains no negative elements. Properties 1 is positive.For all x < y and z holds: x   z < y   zFor all 0 < x, 0 < y holds: 0 < x  y.For all x holds: x ==  x   x.For all x holds:  x    x == x.Note A not positive structure of numbers contain always also the additive inverse of 1 which is negative.Structures of numbers have infinitely many values, because from the properties above follows that 0 < 1 < 2 < .. <   n 1 <   (n   1) 1 < ..  for all 0 <= n. oalg-basethe additive inverse of 1, - if it exists - and will be denoted by -1 (see the note above). oalg-basesign of a number.Property For all x holds: if 0 < x then  signum x == 1 and if x == 0 then  signum x == 0 and if x < 0 then signum x == -1 (for -1 see ).Note The default implementation is: signum x = case rZero  x of GT -> rOne EQ -> rZero LT -> e where Just e = minusOne  oalg-baseabsolute value of a number. Definition The absolute value of a x is defined by abs x =  x  x. (which serves as the default implementation). Properties For all x holds:  0 <= abs x.if 0 <= x then  abs x == x. oalg-basefloor of a value of a number. Properties  floor 0 == 0.For all x holds:  floor (x   1) = floor x   1. oalg-basefractional part of a number.Property For all x holds: 0 <= fraction x < 1. oalg-basesimultaneous evaluation of ( - represented as an integer - and its . Properties For all x holds:  x ==   (  fst    x) ( x). x ==   .Note< This properties are used for the default implementation of  and . oalg-base floor to . oalg-basethe list of prime numbers. oalg-basethe proxy with the same type b. oalg-basethe base of a digit, i.e. the corresponding natural number of the type literal b. oalg-baselimits the fractional part  to the length of n. oalg-basethe digital representation of x in the base b.Let   s xs ys =  r thens is the  x.xs" is the digital representation of  ( x) .ys8 is the - possibly infinite - digital representation of  ( x) in the base b.ExamplestoDigits (1/3) :: Digits 10 QDigits 1 [] [3,3,3..]toDigits (-4/3) :: Digits 3 QDigits (-1) [1] [1]Note To get the first n digits of the fractional part ys$ for the digital representation of x use  n x. oalg-basetoDigitsFinite n is like 6 but the fractional part is limited to the length of n and is given by  n  . oalg-basefromDigits n dgs@(  s xs ys) is given by s  (xm  bm   ..   xi  bi   ..   x0  b0   y1  r1   ..   yj  rj   ..   yn  rn where b =  dgs, xs = [xm..xi..x0], ys = [y1,y2..yj..yn..] and r =  b.Property Let 1  b and dgs =   s xs ys where s is either 1 or -1 and 0  xi  b for all i and 0  yj  b for all j then for all n holds:  b n ( b n dgs)  dgs.Note =All the elements of the above formula are lifted to the type r via \x ->   x  .Because the type r is acyclic, the expression  b - which is actually  (  b  ) - is regular.If b( is not bigger then 1 then an exception 4 will be thrown.  ;numbers as ordered semi rings with infinitely many elements (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred Dsets of ordered entities (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred   oalg-baseset of ordered entities in x.Property Let s =  xs be in  x for a ordered  type x, then holds: For all ..x:y.. in xs holds: x  y. s   xs. oalg-base makes a set from the given list. oalg-basethe elements of a set. oalg-basethe span of a set. oalg-basemapping of sets.Note! This works only for finite sets! oalg-basemapping a set. oalg-basethe empty set. oalg-basethe union of two sets. oalg-basechecks for being a sub set. oalg-basethe index of an element, where the elements of the given set are indexed from 0.ExamplessetIndex (Set ['a'..'x']) 'c'Just 2 oalg-base6random variable of sets with maximal the given length. oalg-base(validity for the union operator of sets.  Egraphs of entities (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred  oalg-basemapping from an ordered index type i to a  type x.Property Let g =  ixs be in  i x for a ordered  type i and  type x , then holds: For all ..(i,_):(j,_).. in ixs holds: i  j. g   ixs. oalg-base!looks up the mapping of an index. oalg-basethe length of a graph. oalg-basethe underlying associations. oalg-base:the induced graph given by a set of indices and a mapping.Fbasic definitions for sequences as mappings of an index to an entity (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred  oalg-baseconstructable sequences. oalg-baseconstructs a sequence. oalg-baserestricts a sequence. oalg-base"sequences as mappings of an index. Definition Let s, i, x be an instance of  and xs be in s x, then we call xs finite$ if and only if the evaluation of  xs0 terminates and will not end up in an exception.Property Let s, i, x be an instance of  , then holds: For all xs in s x holds: $ is constant in its first parameter.If xs is finite, then  xs   ( p xs) for any p.For all xs in s x holds: $ is constant in its first parameter.For all ..(x,i):(x,j).. in xs holds: i  j.If xs is finite, then  xs   ( p xs) for any p.Let xs be in s x and i in i, then holds: there exists an x in x with xs  i matches  x! if and only if there exists an (i',x) in  (Just i) xs such that i  i'.Note The first parameter of  - respectively  - serves only as a proxy4 and as such it is only relevant on the type level. oalg-base"the associated graph of a sequence oalg-base;the associated list of its items together with there index. oalg-basethe i -th item. oalg-base2sequence exceptions which are sub exceptions from 8. oalg-base!the indexed list of the sequence. oalg-base/mapping the indices according to the given set. oalg-basechecks for being empty. oalg-basethe i-th element of the sequence.Property Let xs be in s x and i in i for a instance of  s i x, then holds: If i is in the  of xs then xs  i is the i -th item of xs2, else its evaluation will end up by throwing a  -exception. oalg-basethe support of a sequence, i.e. all the indices which are not mapped to . oalg-basethe span of a sequence. oalg-basethe image of a sequence, i.e. all the entities are hit by the mapping. oalg-base f is maps the index set is according to f and strips out all  items.7Gpartially defined sequences (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred : oalg-basepartially defined sequences (x0,i0),(x1,i1).. of index items in x$ with a totally ordered index type i.Property Let  xis be in  i x then holds: i  j for all ..(_,i):(_,j).. in xis.Examples8PSequence [('a',3),('b',7),('c',12)] :: PSequence N Char$PSequence [('a',3),('b',7),('c',12)]andvalidate (valid (PSequence [('a',3),('b',7),('c',12)] :: PSequence N Char))Validbutvalidate (valid (PSequence [('a',3),('b',15),('c',12)] :: PSequence N Char))Invalidas 5 is a totally ordered type it can serve as index typevalidate (valid (PSequence [(12,'c'),(3,'e'),(8,'x')] :: PSequence Char Z))Valid'and they admit a total right operation , of S i(PSequence [(12,'c'),(3,'e'),(8,'x')] :: PSequence Char Z) <* pmtSwap 'e' 'x'$PSequence [(12,'c'),(8,'e'),(3,'x')]Note As we keep the constructor public, it is crucial for there further use to ensure that they are ! oalg-base&the underlying list of indexed values. oalg-base f is maps the index set is according to f and strips out all  items. oalg-baseconstructs a partially defined sequence according to the given map and the bounds. oalg-base"proxy of the second type valiable i. oalg-base the span. oalg-base%the empty partially defined sequence. oalg-basechecks of being empty. oalg-base2maps the entries, where the indices are preserved. oalg-base#maps and shifts a partial sequence. oalg-basethe partial sequenc given by a aggregation function an a list of value index pairs, which will be sorted and accordingly aggregated by thegiven aggregation function. oalg-basethe head of a partial sequence. oalg-base the tail. oalg-basefilters the partially defiend sequence accordingly the given predicate. oalg-baseinterlaces the tow partially defined sequences according to the given mappings. oalg-base3composition of the two partially defined sequences.Property Let f be in  i x and g be in  j i then f  g is given by    (() f)  () g. oalg-base9splits the sequence as long as the given predicate holds. oalg-base;appends the second partially defined sequence to the first.Property Let zs =  xs ys where  ..(x,l) = xs and  (y,f).. = ys then holds: Ifl  fThenzs is . oalg-basecone. oalg-baseshears the two entries at the given position and leafs the others untouched.Property Let x' = psqShear (sk,k) (sl,l) x , then holds Ifk  lThen x' k  sk (x k) (x l) and x' l  sl (x k) (x l).x' i  x i for all i ) k, l.  oalg-baseswaps the the k -th and the l -th entry.Property Let x' = psqSwap k l x , then holds: Ifk < lThen x' k  x l and x' l  x k.x' i  x i for all i ) k, l. oalg-base n m random variable of partially defined sequences with maximal length  n m.H/multiplicative structures with a power function (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred oalg-basereals. oalg-base structures with a  partially2 defined power function with numbers as exponents. Properties  For all f and a holds: If  f   f or a is an element of [-1,1] then fa is .If  f )  f and a is not an element of [-1,1] then fa is not % and its evaluation will end up in a ( -exception.For all f holds: f1  f.For all f holds: f(-1)   f.For all f and a with  f   f and a not in [-1,1] holds:  (fa)   f and  (fa)   f.For all f, a and b with  f   f holds: f(ab)  (fa) b.For all f with  f   f holds: f0 ==  ( f).For all f, a and b with  f   f holds: f(a / b)  fa  fb.For all a and p holds: ( p)a   p.For all f, g and a with  f   f,  g   g  f   g and f  g  g  f holds: (f  g)a  fa  ga.Note  The phrase ..a is an element of [-1,1].. for the properties of  is meant to be:  a or B a.If -1 is an instance of  f (see ) then f has to be . oalg-basethe exponent.  oalg-base%the power of a factor to an exponent. oalg-base)the power of an orientation by an number.Note  fulfill the properties of  for any number structure.9 I"definition of vectorial structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred " oalg-basetransformable to k- structure. oalg-basetype representing the class of k- structures. oalg-base structures with a  partially defined scalar product. Properties For all v, w holds: if  v   w then v  w is , otherwise a -exception will be thrown.For all u holds: u    ( u)   .For all u, v and w with  u   w and  w   v  holds: u  (v   w)  u  v   u  w.For all w holds:   ( w)  w   .For all u, v and w with  w   u and  u   v  holds: (u   v)  w  u  w   v'  !' w. oalg-base"the scalar product of two vectors. oalg-base  structures with a total defined scalar multiplication from the left by a commutative semi ring. The entities of v are called vector. Properties Let v b a  structure, then holds: Vec1For all s in  v and v in v holds: sv is  and  (sv)   v.Vec2For all v in v holds: 0v    ( v).Vec3For all s in  v and r in  v holds s  r    r.Vec4For all r, s in  v and v in v holds: (r   s)v  rv   sv.Vec5For all s in  v and v, w in v with  v   w holds: s(v   w)  sv   sw.Vec6For all v in v holds: 1v  v.Vec7For all r, s in  v and v in v holds: (rs)v  r(sv). oalg-basethe type of scalars. oalg-base"scalar multiplication of a vector.78J"definition of algebraic structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred %[ oalg-basetransformable to k- structure. oalg-basetype representing the class of k- structures. oalg-base  structures with a suitable  structure.Property Let a be a  structure, then holds: Alg1For all r in  a and a, b in a with  a   b holds: r(ab)  (ra)b and r(ab)  a(rb).K$propositions on algebraic structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred& oalg-baserandom variable to validate  structures. oalg-basevalidity according to (OAlg.Structure.Algebraic.Definition#Alg1. oalg-basevalidity of the  structure of a. oalg-basethe induces random variable.algebraic structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 'rL$propositions on vectorial structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred+  oalg-baserandom variable to validate  structures. oalg-basevalidity according to (OAlg.Structure.Vectorial.Definition#Vec1. oalg-basevalidity according to (OAlg.Structure.Vectorial.Definition#Vec2. oalg-basevalidity according to (OAlg.Structure.Vectorial.Definition#Vec3. oalg-basevalidity according to (OAlg.Structure.Vectorial.Definition#Vec4. oalg-basevalidity according to (OAlg.Structure.Vectorial.Definition#Vec5. oalg-basevalidity according to (OAlg.Structure.Vectorial.Definition#Vec6. oalg-basevalidity according to (OAlg.Structure.Vectorial.Definition#Vec7. oalg-basevalidity of the  structure of v. oalg-basethe induced random variable.  vectorial structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred+M*homomorphisms between vectorial structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*5<- oalg-base%type family of homomorphisms between / structures having the same associated 'Scalar.Property Let h! be a type instance of the class  k, then for all a, b, v in h a b and x in k holds:  h (x  v)  x   h v.N*homomorphisms between algebraic structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*5<. oalg-base%type family of homomorphisms between ( structures having the same associated I.*homomorphisms between algebraic structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred/? O1definition of free products over oriented symbols (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15AJ# oalg-basefree product over  symbols in a with exponents in a  r. Definition A  p is  if and only if its underlying  pf is  and pf is reduced, i.e. pf ==  pf. oalg-baselist of symbols in a together with an exponent in r. oalg-baseform for a free product over  symbols in a with exponents in r. Definition Let r be a . A  pf is  if and only if  pf is . (see definition below) and all its symbols x - where  x occurs in pf - are .The  of pf is defined according:  orientation pf = case pf of One p -> one p P a -> orientation a f :^ r -> orientation f ^ r where (^) = power f :* g -> orientation f * orientation g Note  is required for -1, 0 and 1 are not degenerated as in Z/2 or Z/1. oalg-base$applicative operation from the left. oalg-basepartially strict version of  , i.e. every n5-th application will be reduced to head normal form.Let x' =  n op p x.Pre 0  n.Post x'   op p x. oalg-base%applicative operation from the right. oalg-basepartially strict version of  , i.e. every n5-th application will be reduced to head normal form.Let x' =  n op x p.Pre 0  n.Post x'   op x p. oalg-baselength. oalg-basedepth. oalg-basethe underlying list of a's with their exponent. oalg-baseaggregating words. oalg-base>factorization of a natural number to powers of primes. For 0 there will be thrown 4. oalg-basefactorization of a natural number to powers of primes smaller then the given bound. For 0 there will be thrown 4. oalg-baseformal inverseLet p in  r a then:Pre If p contains a factor  a then  ) .Post the formal inverse. oalg-basefrom  symbols. oalg-baseto  symbols. oalg-basetransforming a  to its corresponding . oalg-basetransforming a  to it corresponding .Note the  is needed for empty s. oalg-base reducing a  by adding the exponents of consecutive equal symbols and eliminating symbols with zero exponents. oalg-basereduces a product form by the given reduction rules for words until no more reductions are applicable. oalg-baselist of elementary factors. oalg-base gets the n -the symbol. oalg-base reducing a  according to  . oalg-basethe list of primary factors. oalg-basenumber of primary factors where where all simple factors are expanded according to there exponent. oalg-baserestriction of . oalg-basethe n-th primary factor where all simple factors are expanded according to there exponent.  oalg-baseevaluates the product7 according to the given exponential and multiplication. oalg-basemapping a product. oalg-basemapping a product form oalg-base)mapping a product form with exponents in  into a , structure applying a homomorphism between  structures. oalg-base$mapping a product with exponents in  into a . structure applying a homomorphism between  structures. oalg-base)mapping a product form with exponents in  into a , structure applying a homomorphism between  structures. oalg-base$mapping a product with exponents in  into a . structure applying a homomorphism between  structures. oalg-basefrom  symbols.Property For every  structure a and  r the resulting map  is a  contravariant homomorphisms between  structures. oalg-basebound for the primes oalg-basea natural number$$9 7P.propositions on products over oriented symbols (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 1Gz  oalg-base.random variable of product forms with maximal depth d (a , constructor dose not increases the depth). oalg-basethe induced random variable. oalg-baserandom variable of products generated from product forms with a maximal given depth ( dose not increases the depth). oalg-baserandom variable of products generated from product forms with a maximal given depth ( dose not increases the depth). oalg-basethe induced random variable on  ). oalg-base+the induced random variable for validating  structures. oalg-base validity of   ( ) being . oalg-base validity of   ( ) being . oalg-base validity of   ( ) being . oalg-base validity of   ( ) being . oalg-base validity of  r ( ) for r equal to  and  respectively oalg-base example of a  for the quiver having two points 'a' and 'b' and two arrows 'a':>'a' and 'a':>'b'. oalg-baseits distribution  Qfree products of symbols (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 8:P oalg-basefree product of symbols in x with index type .ExampleThe expression  'a'4 constructs a free product of exactly one symbol in # consisting just of the character 'a'.sy 'a'ProductSymbol['a'] they are  sy 'a' * sy 'b' * sy 'c'ProductSymbol['a'*'b'*'c']and admit a listing2list (Proxy :: Proxy N) (sy 'a' * sy 'b' * sy 'c')[('a',0),('b',1),('c',2)]2they have a compact representation for repetitions*sy 'a' * sy 'b' * sy 'b' * sy 'a' * sy 'c' ProductSymbol['a'*'b'^2*'a'*'c']sy 'a' * sy 'b' * sy 'b' * sy 'a' * sy 'c' == sy 'a' * sy 'b' ^ 2 * sy 'a' * sy 'c'Truebut they are not sy 'a' * sy 'b' ^ 2 * sy 'a' * sy 'c' == sy 'a' ^ 2 * sy 'b' ^ 2 * sy 'c'False'and they admit a total right operation , of S (sy 'a' * sy 'b' ^ 2 * sy 'a' * sy 'c') <* (pmtSwap 1 3 :: Permutation N)ProductSymbol['a'^2*'b'^2*'c']Note Free products of symbols are finite complete sequences and allow a compact representation for repetitions and serve merely as dimensions for matrices (see OAlg.Entity.Matrix.Dim).8Possibly infinite complete sequences are represented by [x].  oalg-baseadjoins the point () to an entity.Note2 Serves to build sums or products over symbols in x. oalg-basedeconstructor. oalg-base showing as a product of symbols. oalg-base proxy for . oalg-base#the indexed listing of the symbols. oalg-basethe underlying word. oalg-base from word. oalg-basethe induced product of symbols. oalg-basethe induce product of symbols given by a partial map and a support set. oalg-base3symbol of an entity, i.e. the complete sequence of  one consisting just of it.Examplesy 'a'ProductSymbol['a']%sy 'a' * sy 'b' * sy 'b' ^ 5 * sy 'c'ProductSymbol['a'*'b'^6*'c'] oalg-base"the length of a complete sequence. oalg-basethe symbol for the given index. oalg-base"mapping free products of symbols.  oalg-basejoining complete sequences. oalg-baserandom variable of complete sequences with the given maximal length.Rcompletely defined sequences (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred :Rw oalg-basecompletely defined sequences of items, i.e. free products with index type . oalg-baserandom variable for comletely defined sequences with the given maximal length.?free products over oriented symbols with exponents in a number. (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15SGS+permutations on totally ordered index types (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*q oalg-basetotal right operations of permutations on sequences, admitting the following properties:Property Let s, i, x be an instance of  s i x , then holds: Let xs be in s x, p in  i with  z p   z xs for some z in z i, then holds: (xs  p)  i  ((xs )   p) i for all i in  z xs.Let xs be in s x, w in x -> w, c in w -> w ->  and z in z i, then holds: Let  (xs',p) =  z c w xs in xs'  xs  p.xs' is ordered according to c by applying w to its items. z p   z xs.Examples2fst $ permuteBy nProxy compare isUpper "abCd1eFgH" "abd1egCFH"as   >fst $ permuteBy nProxy (coCompare compare) isUpper "abCd1eFgH" "CFHabd1eg"(which orders it in the reverse ordering. oalg-basea resulting permuation. oalg-base,permutation of a totally ordered index type i which yield a  bijection  on i. They are constructed usingW of a  , which defines also the validity for the constructed permutation. and the  structure for permutations. for .# to generate randomly permutations.+In the following the total right operation  of a permutation on several types of sequences will be defined to achieve the permutation of there items. Definitions ListLet xs be in [x] with  [] r [x] and p a permutation in  r, then xs  p is given by  is ( p) xs, where is is the image of the support of xs under the inverse of p. CSequenceLet xs be in  x with    x and p a permutation in  , then xs  p is given by  is ( p) xs, where is is the image of the support of xs under the inverse of p. PSequenceLet xs be in  i x with  ( i) i x and p a permutation in  i, then xs  p is given by  is ( p) xs, where is is the image of the support of xs under the inverse of p. PermutationLet xs, p be in  i, then xs  p is given by .Note The given definitions are not very efficient and only terminate for finite sequences (in fact, a more efficient implementation has been chosen that also terminates for infinite sequences (see example below)). However, they serve on the one hand to define the semantic and to 'prove' the properties for  and on the other hand to verify the chosen implementation for finite sequences (see ).Examples'"abcdef" <* (swap 2 5 :: Permutation N)"abfdec"the support of a sequence and the relevant image of a permutation may be disjoint which will leave the sequence untouched("abcdef" <* (swap 7 10 :: Permutation N)"abcdef"the intersection of the support of a sequence with the relevant image of a permutation may be a non empty proper sub set'"abcdef" <* swap 2 10 :: Permutation N)"abdefc"-the result can be interpreted as: first, put c at position 10 and ! (which is the item at position 10) at position 2%. Second, strip all nothings form it.Although the given definition of the permutation of sequences dose not terminate for infinite sequences, its implementation will terminate8takeN 5 $ (([0..] :: [N]) <* (swap 1 2 :: Permutation N) [0,2,1,3,4] oalg-baseform of a permutation from i to i which is given by .Property Let p =  jis be in  i, then holds:  z p   z p for some proxy z in z i.The partial sequence ijs is called the  relevant part of p. oalg-basethe associated function i to i and is given by: Definition Let p =  jis be in  i then  p i# is defined by: If there exists an (j,i') in  jis with i'  i then  p i = j else  p i = i.Note If the partial sequence ijs is , then for all i in i there exists at most one (_,i') in  jis such that i'  i. As such, the function  p is well defined.If the permutation form p itself is  than  p. is a bijection and as such a permutation of i.The behavior of  differs from ) as its evaluation will not end up in a  -exception. oalg-base p q is the composition of p and q, which is given by the composition of there associated functions  p   q. oalg-base xs p applies the permutation form p) - from right - to the partial sequence xs, which is given by the composition of there associated functions () xs   p. oalg-base xs p applies the permutation form p - from right - to the list xs, which is given by  applied to  (xs ` [0..]).Note If  ()  u - where (_,u) =  p. - then no exception will be thrown, but the & of the resulting list may be smaller! oalg-base9permutes the product symbol by the given permeation form. oalg-baseorders the partial sequence according to the given ordering an delivers the resulting permutation form. oalg-baseorders the list according to the given ordering an delivers the resulting permutation form. oalg-baseorders the product symbol according to the given ordering an delivers the resulting permutation form. oalg-basethe bijection on i/ for a given permutation and is defined via [ . oalg-base swapping.Property Let p =  n (i,j), then holds: If i,j  n then p& is the permutation given by swapping i with j(, otherwise a exception will be thrown. oalg-baseorders the permutable sequence according to the given ordering an delivers the resulting permutation form. oalg-base random variable of permutations. oalg-base8random variable of permutations within the given bounds. oalg-base1random variable of permutations of the index set  [0..prd n].  oalg-base#random variable for validating the  structure. oalg-basevalidity of the right operation of permutations on partial sequences according to its definition. oalg-base&validity of the total right operation  of permutations on sequences. oalg-base validity for . oalg-base,validity of the functionality of the module  Permutation. oalg-basemaximal number of swappings. oalg-basespan of the swappings.sequences of indexed items (c) Erich GutBSD3zerich.gut@gmail.com Safe-InferredrbTentries of matrices (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 3 oalg-base!two dimensional partial sequence. oalg-base'viewing a partial sequence as a column. oalg-base$viewing a partial sequence as a row. oalg-base#underlying list of indexed entries. oalg-basethe empty row. oalg-basecheck for being empty. oalg-basehead. oalg-basetail. oalg-base'filtering a row by the given predicate. oalg-basemapping and shifting of a row. oalg-baseappending a row.Property Let zs =  xs ys where  ..(x,l) = xs and  (y,f).. = ys then holds: Ifl  fThenzs is . oalg-baseinterlacing two rows. oalg-baseelimination of  s. oalg-baseadding two rows. oalg-baseswapping two entries of a row.Pre k < l. oalg-basemultiplies each element of the row by the given factor from the left. oalg-baseshears two entries of a row.Property Let r' =  (<*) (+) k l s t u v r , then holds: Prek  l.Note  is like  multiplying9 the given row from the right with the matrix given by  k l s t u v. oalg-base;scales the entry at the given position by the given factor. oalg-base#underlying list of indexed entries. oalg-basethe empty column. oalg-basecheck for being empty. oalg-basehead. oalg-basetail. oalg-base*filtering a column by the given predicate. oalg-base!mapping and shifting of a column. oalg-baseappending a column..Property Let zs =  xs ys where  ..(x,l) = xs and  (y,f).. = ys then holds: Ifl  fThenzs is . oalg-baseinterlacing two columns. oalg-baseelimination of  s. oalg-base!swapping two entries of a column.Pre k < l. oalg-baseadding two columns. oalg-baseshears two entries of a column.Property Let c' =  (<*) (+) k l s t u v c , then holds: Prek  l.Note  is like  multiplying; the given column from the left with the matrix given by  k l s t u v. oalg-base;scales the entry at the given position by the given factor. oalg-basemultiplies each element of the column by the given factor from the right. oalg-base&to the dual of a column, with inverse . oalg-base(from the dual of a column, with inverse . oalg-base.to the dual of a row of columns, with inverse . oalg-base0from the dual of a row of columns, with inverse . oalg-base#underlying list of indexed entries. oalg-basethe empty sequence of entries. oalg-baseelimination of  s. oalg-baseadding two entries.Property Let zs =  xs ys , then holds: PreFor all (i,j) in (i,j) where there exists an (x,i,j) in xs and a (y,i,j) in ys holds: . x  . y.Post zs is .For all (i,j) in (i,j) holds:  If exists a (x,i,j) in xs but not exists a (y,i,j) in ys then there exists a (z,i,j) in zs with z  x. If exists a (y,i,j) in ys but not exists a (x,i,j) in xs then there exists a (z,i,j) in zs with z  y. If exists a (x,i,j) in xs and (y,i,j) in ys then there exists a (z,i,j) in zs with z  x   y. oalg-baseto the dual of , with inverse . oalg-basefrom the dual of , with inverse . oalg-basethe underlying column of rows. oalg-basethe underlying row of columns. oalg-basemultiplication. oalg-base&the entries given by a column of rows. oalg-base&the entries given by a row of columns. oalg-basejoining entries of entries.Property Let xs' =  r c xs PreFor all  (xij,i,j) in xs holds: i   r and j   cFor all  (_,i',j') in xij holds: i'  ri and j'  cj where  ..ri.. = r,  ..cj.. = c.Postxs' is . oalg-baseget the head column at j.Pre for all j' in rws holds: j  j'. oalg-baseget the head row at i.Pre for all i' in rws holdst: i  i'.22Udimension for matrices (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*5 oalg-baseabbreviation for  x ( x). oalg-base dimension of x as a complete sequence of  x.  oalg-basethe underlying product. oalg-base&constructing a dimension form a point. oalg-base/constructing a dimension from a list of points. oalg-base"the indexed listing of the points. oalg-basethe underlying word. oalg-basemapping a dimension.  V;definition of adjunctions between multiplicative structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*C  oalg-base1adjunction between two multiplicative structures d and c5 according two given multiplicative homomorphisms l :: h c d and r :: h d c.   l <------- d c --------> r Property Let  l r u v be in  h d c where h is a -homomorphism, then holds: Naturality of the right unit u: For all x in  c holds:  (u x)  x    r (  l x).For all f in c holds: u ( f)  f   r ( l) f  u ( f).Naturality of the left unit v: For all y in  d holds:  (v y)    l (  r y)  y.For all g in d holds: g  v ( g)  v ( g)   l ( r) g.Triangle identities: For all x in  c holds:  (  l x) == v (  l x)   l (u x). For all y in  d holds:  (  r y) ==  r (v y)  u (  r y).5The following diagrams illustrate the above equationsnaturality of the right unit u (Equations 1.1 and 1.2):  u a a -------> pmap r (pmap l a) | | f | | amap r (amap l f) v v b -------> pmap r (pmap l b) u b naturality of the left unit v (Equations 2.1 and 2.2):  v a a <------- pmap l (pmap r a) | | g | | amap l (ampa r g) v v b <------ pmap l (pmap r b) v b #the left adjoint of the right unit u is  (Equation 3.1, see ):  pmap l x x / | | / | | / | | amap l (u x) / | one ~ u x | / | | / | | v v v pmap l (pmap r (pmap l x)) ---> pmap l x pmap r (pmap l x) v (pmap l x) #the right adjoint of the left unit v is  (Equation 3.2, see ):  u (pmap r y) pmap l (pmap r y) pmap r y ---> pmap r (pmap l (pmap r y)) | | / | | / | v y ~ one | / amap r (v y) | | / | | / v v v y pmap r y  oalg-basethe unit on the right side. oalg-basethe unit on the left side. oalg-basethe right adjoint g' of a factor in g in dProperty Let x be in c and g in d with  g    l x then the right adjoint g' of g is given by g' =  r g  u x.  u x pmap l x x -----> pmap r (pmap l x) | | / | | / | | / | g ~ g' | / amap r g | | / | | / v v v y pmap r y  oalg-basethe left adjoint f' of a factor f in c.Property Let y be in d and f in c with  f    r y then the left adjoint f' of f is given by  f' = v y   l f.  pmap l x x / | | / | | / | | amap l f / | f' ~ f | / | | / | | v v v pmap l (pmap r y) -----> y pmap r y v y  oalg-baseattest of being  homomorphous. oalg-basethe dual adjunction. oalg-base'validity of the unit on the right side. oalg-base&validity of the unit on the left side. oalg-base9validity of an adjunction according to the properties of . oalg-base$the homomorphism from right to left. oalg-base$the homomorphism from left to right. oalg-basethe unit on the right side. oalg-basethe unit on the left side.  W,definition of free sums over fibred symbols. (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 5 oalg-basefree sum over  symbols in a with scalars in r. Definition A  s is  if and only if its underlying  s' is  and s' is reduced, i.e. s'   s'. oalg-baselist of symbols in a together with a scalar in r.Note  linear combinations must not be sorted according to the second component! oalg-baseform for a free sum over  symbols in a with scalars in r. Definition Let r be a    and a a  structure. A  a is  if and only if all scalars in a are  and all symbols in a are  and have the same . oalg-base joining a sum form of sum forms. oalg-basemapping of sum forms. oalg-basethe length of a sum form, oalg-base1the underlying list of symbols with their scalar. oalg-base2aggregating linear combinations with same symbols. oalg-base6sorting a linear combination according to its symbols. oalg-base*filtering a word according to the scalars. oalg-basetransforming a sum form to its corresponding linear combination.. oalg-base2transforming a word to its corresponding sum form. oalg-base*reducing a sum form to its canonical form, oalg-base"the associated linear combination.Note The associated linear combination of a sum is sorted according to the second component! oalg-basejoining a sum of sums. oalg-base/additive homomorphism to a totally defined sum. oalg-base$additive homomorphism for sums over . oalg-base$additive homomorphism for sums over .9 6Xfree sums over symbols. (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred;  oalg-basefree sum with symbols in a. oalg-baseadjoining the root (). oalg-base"the underlying linear combination. oalg-base the underlying partial sequence. oalg-base x) s. oalg-base shearing.Property Let d be in  x, k, l in  and g in  x then holds: If  d k l g is  then  d k l g is .Example Let t =  d k l g where  d k l g is # then its associated matrix (see ) is an endo with dimension d and has the form  k l [1 ] [ . ] [ . ] [ 1 ] [ s t ] k [ 1 ] [ . ] [ . ] [ 1 ] [ u v ] l [ 1 ] [ . ] [ . ] [ 1] \!elementary matrix transformations (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*/5  oalg-base:predicate for diagonal forms with strict positive entries.Property Let  ( ds _ _) be in  k, then holds: 0  d for all d in ds.  oalg-base9the result of transforming a matrix into a diagonal form.Property Let  ds rt ct be in  k , then holds: n   ( rt) and n   ( ct) where n =  ds.For all d in ds holds:  (  d). oalg-base as row transformations. oalg-base as a column transformation. oalg-baseshears tow rows of a matrix.Pre k  l. oalg-baseshears the tow columns of a matrix.Pre k  l. oalg-baseapplying a transformation as a row transformation on a column of rows. oalg-baseapplying a transformation as a column transformation on a column of rows. oalg-baseapplying a transformation as a column transformation on a row of columns. oalg-basethe resulting matrix by applying on the diagonal matrix the inverse of the given transformations.  ](natural transformations between diagrams (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15l oalg-base$natural transformations between two  s.Property Let  a b t be in  t n m a for a  structure a , then holds   a    b.For all 0  i  n holds:  (t i)  p i  q i where p =   a and q =   b.For all 0  j  m holds: t (e j)  f j  g j  t (s j) where f =   a, g =   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)  oalg-basethe underlying list of factors. oalg-basethe dual transformation.!diagrams over oriented structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15 ^!definition of cones over diagrams (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15% oalg-basepredicate for a factor with 0 point at the starting point of the given chain.Property Let  f d be in  e n a for a  structure a then holds:  f    d.Let  f d be in  d n a for a  structure a then holds:  f    d. oalg-basepredicate for cones where the first arrow of its underlying diagram is equal to  . oalg-base-duality between cone types. oalg-basecone structures. oalg-basecone over a diagram. Properties Let c be in  s p t n m a then holds: If c matches  d t cs for a  structure a then holds: For all ci in cs holds:  ci  t and  ci  pi where pi in   d.For all aij in   d holds: aij  ci  cj where ci, cj in cs.If c matches  d t cs for a  structure a then holds: For all ci in cs holds:  ci  t and  ci  pi where pi in   d.For all aij in   d holds: cj  aij  ci where ci, cj in cs.If c matches  p k for a   structure a then holds:  k  p0 where p0 in   pFor all a in   p holds: a  k    (t  p1) where t =  k and p0, p1 in   p.If c matches  p k for a   structure a then holds:  k  p0 where p0 in  cFor all a in   p holds: k  a    (p1  t) where t =  k and p0, p1 in   p. oalg-basethe opposite cone structure. oalg-basethe  structure of a cone structure. oalg-base-the associated structure of a cone structure. oalg-basethe underlying diagram. oalg-base+reflexivity of the underlying diagram type. oalg-basemapping of a cone under a  homomorphism. oalg-basemapping of a cone under a   homomorphism. oalg-basemapping of a cone. oalg-base#to the dual cone, with its inverse . oalg-basefrom   . oalg-base%from the dual cone, with its inverse . oalg-baseto g ( a). oalg-basefrom g ( a). oalg-basethe tip of a cone.Property Let c be in  s p t n m a for a  structure then holds: If p is equal to  then holds:  ci   c for all ci in  c.If p is equal to  then holds:  ci   c for all ci in  c. oalg-basethe shell of a cone.Property Let c be in  s p t n m a for a  structure then holds: If p is equal to  then holds:   ( c)   c.If p is equal to  then holds:   ( c)   c. oalg-base+the points of the underlying diagram, i.e.    .  oalg-base+the arrows of the underlying diagram, i.e.    . oalg-base adjoins a  # arrow to the diagram and the cone. oalg-baseto the dual, with its inverse . oalg-basefrom the bidual. oalg-base from the dual, with its inverse . oalg-basesubtracts to every arrow of the underlying parallel diagram the first arrow and adapts the shell accordingly. oalg-baseembedding of a cone in a distributive structure to its multiplicative cone. oalg-basethe kernel cone of a zero headed parallel cone, i.e. the inverse of . oalg-basethe cokernel cone of a zero headed parallel cone, i.e. the inverse of . oalg-basevalidity of a . oalg-basethe projective cone on  with the underlying given diagram and tip with the given point.  oalg-basethe injective cone on  with the underlying given diagram and tip with the given point.  oalg-base the induced , cone with ending factor given by the given .Property Let h =  f d be in  e n a for a  structure a and  d' _ (_ .. c  ) =  h then holds: d'  d and c  f. oalg-basethe underlying factor chain of a projective chain to cone, i.e the inverse of . oalg-base the induced . cone with starting factor given by the given .Property Let h =  f d be in  d n a for a  structure a and  d' _ (c _) =  h then holds: d'  d and c  f. oalg-basethe underlying factor chain of a projective chain from cone, i.e. the inverse of .//_eligible factors between cones (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*15 w oalg-basestandard random variable for . oalg-baserandom variable given by a . oalg-base-predicate for eligible factors between cones.Property Let e be in  s p t n m a for a  structure a , then holds: If e matches  l x c then holds:  l   c and  x c l.If e matches  l x c then holds:  l   c and  x l c. oalg-base*eligibility of a factor between two cones.Property Let x be in a and f, t in  s p t n m a with  f   t , then holds: If p is equal to  then holds:  x f t is  if and only if  x   f   t.ti  x  fi for all ti in  t and fi in  f.If p is equal to  then holds:  x f t is  if and only if  x   f   t.x  ti  fi for all ti in  t and fi in  f. oalg-base-the underlying factor together with its cone. oalg-base&mapping of a eligible factor within a  structure. oalg-base&mapping of a eligible factor within a   structure. oalg-basemapping of a eligible factor.  oalg-baseto the dual, with its inverse . oalg-basefrom the bidual. oalg-base from the dual, with its inverse . oalg-base0the induced random variable of eligible factors. oalg-base0the induced random variable of eligible factors. oalg-base0the induced random variable of eligible factors.cones over diagrams (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred `#definition of a limes of a diagram. (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15" oalg-base-duality between limes types. oalg-baselimes of a diagram, i.e. a distinguished cone over a given diagram having the following  universal propertyProperty Let a be a  structure and u in  s p t n m a then holds: Let l =  u in l is . u l. u l ( ( l)).For all c in  s p t n m a with  u c holds: Let f =  u c in f is . u c f.For all x in a with  u c x holds: x  f.Note Nt1As the function  l for a given limes l3 is uniquely determined by the underlying cone of l, it is permissible to test equality of two limits just by there underling cones. In every computation equal limits can be safely replaced by each other.It is not required that the evaluation of universal factor on a non eligible cone yield an exception! The implementation of the general algorithms for limits do not check for eligibility. oalg-base/limes exceptions which are sub exceptions from 8. oalg-base)the underlying universal cone of a limes. oalg-basethe universal point of a limes, i.e. the tip of the universal cone. oalg-base the shell of the universal cone. oalg-base"the underlying diagram of a limes. oalg-base+reflexivity of the underlying diagram type. oalg-basethe universal factor of a  l to a given eligible cone.Property Let l be in  s p t n m a then holds: For all c in  s p t n m a with  l c holds:  l c ( l c). oalg-base.eligibility of a cone with respect to a limes.Property Let u be in  s p t n m a and c in  s p t n m a then holds:  u c is true if and only if  u   c is true. oalg-base;eligibility of a factor with respect to a limes and a cone.Property Let u be in  s p t n m a, c in  s p t n m a with  u c and x in a then holds: If u matches  l _ then holds:  u c x is true if and only if  x c l is true.If u matches  l _ then holds:  u c x is true if and only if  x l c is true. oalg-basemapping between limits. oalg-basethe co limes with its inverse . oalg-basefrom   . oalg-basethe inverse of . oalg-baseto g ( a). oalg-basefrom g ( a). oalg-basevalidity of a . oalg-base(projective limes on oriented structures. oalg-base'injective limes on oriented structures. oalg-basesee OAlg.Limes.Definition#Nt1alimits of diagrams (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*1  oalg-base-duality between limits types. oalg-baselimes of a diagram, i.e. assigning to each diagram a limes over the given diagram.Property Let lms be in  s p t n m a and d in   t n m a then holds:  ( lms d)  d. oalg-base!the limes over the given diagram. oalg-basemapping of limits. oalg-basethe co limits wit its inverse . oalg-basefrom the bidual. oalg-base(from the co limits, with its inverse of . oalg-baseto g ( a). oalg-basefrom g ( a). oalg-basevalidity according to . oalg-basevalidity according to ,, relative to the given random variable for  s.  oalg-baseprojective limits for  p. oalg-baseinjective limits for  p.bterminal and initial point (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15" oalg-baseinitial point within a  structure. oalg-baseinitial point as . oalg-base for a initial point. oalg-base  for a initial point. oalg-baseterminal point within a  structure. oalg-baseterminal point as . oalg-base for a terminal point. oalg-base  for a terminal point. oalg-basethe terminal diagram. oalg-base#the terminal cone of a given point. oalg-base$the terminal limes of a given point p. oalg-baseterminals for . oalg-base terminal   duality. oalg-base terminal  duality. oalg-base terminal  duality. oalg-base terminal  duality. oalg-baseinitial   duality. oalg-baseinitial  duality. oalg-baseinitial  duality. oalg-baseinitial  duality. oalg-basethe initial diagram. oalg-base"the initial cone of a given point. oalg-baseinitial point for . oalg-base initials.cminima and maxima (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred1& oalg-base maxima for a  structure. oalg-base maximum as a . oalg-base for a maximum. oalg-base  for a maximum. oalg-base minima for a  structure. oalg-base minimum as . oalg-base for a minimum. oalg-base  for a minimum. oalg-baseminima according to   e. oalg-baseminima according to   d. oalg-baseduality between  e and  d. oalg-baseduality between  d and  e. oalg-basemaxima according to   e. oalg-basemaxima according to   d. oalg-basemaxima according to   e given by two proxy types. oalg-basemaxima according to   d given by two proxy types.dproducts and sums (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 15-  oalg-base sums for a  structure. oalg-basesum as a 'Limes. oalg-base for a sum. oalg-base  for a sum.  oalg-baseproducts for a  structure. oalg-base product as a . oalg-base for a product. oalg-base  for a product. oalg-basethe underlying product diagram. oalg-basethe product cone. oalg-base2products of zero points given by a terminal point. oalg-baseproducts of one point, i.e. . oalg-baseproducts of at least two points given by products of two points. oalg-base products of n1 points given by products of zero and two points. oalg-baseproduct cone for . oalg-base product for . oalg-base products for . oalg-base3the underlying sum diagram given by a sink diagram. oalg-base%the sum cone given by a sink diagram. oalg-base"duality between sums and products. oalg-base-sums of zero points given by a initial point. oalg-basesums of one point, i.e. . oalg-base8sums of at least two points given by sums of two points. oalg-basesums of n- points given by sums of zero and two points. oalg-basesums given by a proxy type for n. oalg-base sum cone for . oalg-basesum for . oalg-base sums for .eequalizers and coequalizers (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred12 oalg-basecoequalizers for a  structure. oalg-basecoequalizer as 'Limes. oalg-base for a coequalizer. oalg-base  for a coequalizer. oalg-baseequalizers for a  structures. oalg-base equalizer as . oalg-base for a equalizer. oalg-base  for a equalizer.  oalg-basethe underlying product diagram. oalg-basethe underlying product cone. oalg-base/the induced equalizers of zero parallel arrows. oalg-base8the underlying minimum diagram given by the first arrow. oalg-base5the underlying minimum cone given by the first arrow. oalg-base'equalizers of one parallel arrow, i.e. . oalg-basepromoting equalizers. 8c:/Users/zeric/haskell/oalg/src/OAlg/Limes/equalizer.jpgimage equalizer oalg-baseequalizers of n arrows given by products of two points and equalizers of two arrows. oalg-baseequalizers for   oalg-base,duality between coequalizers and equalizers. oalg-basecoequalizers of n arrows given by sums of two points and coequalizers of two arrows. oalg-base given by a proxy for n. oalg-basecoequalizers for .fpullbacks and pushouts (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred18/ oalg-basepushouts for a  structures. oalg-base pushout as . oalg-base for a pushout. oalg-base  for a pushout. oalg-basepullbacks for  structures. oalg-base pullback as . oalg-base for a pullback. oalg-base  for a pullback. oalg-basethe underlying minimum diagram. oalg-basethe underlying minimum cone. oalg-basepullbacks for zero arrows as . oalg-base8the underlying minimum diagram given by the first arrow. oalg-base5the underlying minimum cone given by the first arrow. oalg-basepullbacks of one arrow, i.e. . oalg-base0promotion of pullbacks with at least two arrows. oalg-basepromotion of pullbacks. 7c:/Users/zeric/haskell/oalg/src/OAlg/Limes/pullback.pngimage pullback oalg-base+pullbacks given by products and equalizers. oalg-basepullbacks for . oalg-base'duality between pushouts and pullbacks. oalg-basepromotion of pushouts. oalg-base given by a proxy for n. oalg-base pushouts for . oalg-base(pushouts given by sums and coequalizers.gkernels and cokernels (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred1@ oalg-basecokernels for   structures. oalg-base cokernel as . oalg-base for a cokernel. oalg-base  for a cokernel. oalg-base kernels for   structures. oalg-base kernel as a . oalg-base for a kernel. oalg-base  for a kernel. oalg-basethe factor of its shell. oalg-base%the kernel diagram of a given factor. oalg-basethe kernel of the  ' factor given by the orientation, i.e.  oalg-basekernels for zero arrows. oalg-base0the induced equalizers where its first arrow is  . oalg-base)the induced kernels given by adjoining a   arrow as first arrow. oalg-basepromoting kernels. oalg-basepromoting kernels. oalg-base kernels for . oalg-basethe factor of its shell. oalg-base'the cokernel diagram of a given factor. oalg-base&duality between cokernels and kernels. oalg-baseduality between  to . oalg-base duality from  to . oalg-basepromoting cokernels. oalg-base" given by an additional proxy for n. oalg-basecokernels for . oalg-basechecks if the arrows of the kernel diagram are equal to the given ones and if its shell is equal to the given arrow.Property Let  ('ConeKerenl d k') _ = ker be in  n a, fs in   n a and k be in a, then the statement  ker fs k holds if and only if fs    d.k  k'. oalg-basechecks if the arrows of the cokernel diagram are equal to the given ones and if its shell is equal to the given arrow.Property Let  ('ConeCokerenl d k') _ = coker be in  n a, fs in   n a and k be in a, then the statement  coker fs k holds if and only if fs    d.k  k'.hpropositions on limits (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 1B oalg-base validity of a for  .i0definition of slicing a multiplicative structure (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15K oalg-basedropping a slice factor. oalg-base>predicate for a limes with a sliced tip of the universal cone.Property Let  i l be in  i s p t n m c then holds:  ( l)   i. oalg-basepredicate for a   t diagram with center  given by the index type i c.Property Let  i d be in  i t n m c then holds:  i    d. oalg-basefactor between two slices.Property Let SliceFactor a b f be in  s i c for a  structure c constrained by  i c then holds: If a matches  _ a' then holds: Let  _ b' = b in  f   a'   b'.b'  f  a'.If a matches  _ a' then holds: Let  _ b' = b in  f   a'   b'.a'  b'  f . oalg-base slice over c by a given c and indexed by i. oalg-base Slicing a  structures at the " given by the type of the index i. Note The constraint  i ensures that the distinguished point depends only on the type i c. oalg-base1the distingueished point of the given index type i. oalg-basethe underlying slice. oalg-base to the dual . oalg-basevalidity of a . oalg-basethe underlying factor. oalg-base to the dual . oalg-basevalidity of a . oalg-base'terminal point for factors sliced to a . oalg-basethe induced pullback. oalg-basethe underlying limes. oalg-base%the given attest for the slice index i c given by the diagram proxy. oalg-base0the diagram as a cone with its tip given by the . oalg-base the induced  limes for .  oalg-base the induced  . oalg-basethe induced random variable. oalg-basethe induced random variable. oalg-basethe induced random variable. oalg-basethe induced random variable.jslicing by free points (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15S* oalg-base'pullback of a diagram with free points. oalg-base"pullback diagram with free points. oalg-base#cokernel diagrams with free points. oalg-base%kernel of a diagram with free points. oalg-base kerne diagram with free points.  oalg-base(predicate for diagrams with free points. oalg-basepredicate for a kernel with a start point of its diagram given by the slice index and a free universal tip.Property Let  k' i ker be in  n c , then holds:  i  s where   s _ _ =  ker. k'   ( ker). oalg-basepredicate for a limes with a free tip of its universal cone.Property Let 'LimesFree k l be in  s p t n m a and then holds:  k  t where t =  ( l).  oalg-basesome free point within a  structure c. oalg-basesome free attest. oalg-baseindex for free points within a  structure c."lengthN (Free attest :: Free N3 c)3 oalg-basethe underlying natural number. oalg-basecasting between  types. oalg-base5check for being a free point, i.e. if it is equal to . Definition Let n be in  n c and p in  c then we call p of order n if and only if  i  p. oalg-basethe underlying free limes. oalg-basethe underlying kernel. oalg-basethe underlying diagram.kproducts and sums for matrices (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred 5TM oalg-baseproducts for matrices. oalg-basesums for matrices.lpropositions on matrices (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15Ug oalg-base0validity of the algebraic structure of matrices. oalg-base9validity of the algebraic structure of block matrices of .%matrices over distributive structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-InferredUmvalidation of this package. (c) Erich GutBSD3zerich.gut@gmail.com Safe-InferredW oalg-base:Validation of the basic entities of the package oalg-base.n#mapping of limits under adjunctions (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred )*1YL oalg-base/mapping a projective limes under an adjunction. oalg-base.mapping a injective limes under an adjunction. oalg-base/mapping a projective limes under an adjunction. oalg-base.mapping a injective limes under an adjunction.,adjunction between multiplicative structures (c) Erich GutBSD3zerich.gut@gmail.com Safe-InferredYocokernel-kernel adjunction (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15_o  oalg-base  structures c having to each  d i c a .Property Let h =  _ h' be in  d i c for a i sliced,   structure c , then holds: ( ker)   h' where coker =  h. oalg-base  structures c having to each  e i c a .Property Let h =  _ h' be in  e i c for a i sliced,   structure c , then holds: ( coker)   h' where coker =  h. oalg-basethe left and right homomorphisms for the cokernel-kernel adjunction . oalg-baserandom variable for  e i c. oalg-baserandom variable for  d i c. oalg-basevalidity for the values of  to be  . oalg-basevalidity for the values of  to be  . oalg-base1the right unit of the cokernel-kernel adjunction . oalg-base0the left unit of the cokernel-kenrel adjunction . oalg-basethe cokernel-kenrel adjunction.  "slicing a multiplicative structure (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred`<p'generator for finitely generated points (c) Erich GutBSD3zerich.gut@gmail.com Safe-Inferred)*15fg oalg-base.random variable of lift-able free slice froms.Property Let a be in instance of  then holds: For all p in  a and  ( _ h) in the range of  p holds:  h  p. oalg-baserandom variable of factors in a having a free  and as -point the given one. oalg-base!generator for finitely generated  s within a   structure.Property Let  d k' k'' coker ker lft be in  and let   g (p p'  ) = d 7 p p' g <<------- g' <------< g''  then holds: coker is the cokernel of p' with p$ as the shell of its universal cone.ker is the kernel of p with p'$ as the shell of its universal cone.&'KenrelSliceFromSomeFreeTip k'' k' ker is .For all h =  _ h' in  d ( k) a with  h'  g holds: lft h is . (lft h)   h   p.p  lft h  h'.  g' ^ | / | lft h / | p / | / v * ---> g h'  oalg-base3the underlying random variable for some free slice. Safe-Inferredfr                                                                   x x           t                                          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""##########################|###########$z$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''((((((((((((())))))))))))))))))z)z))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********+++++++++++++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , , , , , , , ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . . . . . . . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . / / / / / / / / / / // / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 55 5 5 5 5 56 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 : : : ; ; ; ; ; ; ; ; < < < < < < < < < < < < < < < < < < < < < << < <<< < << < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = > > >>>>>>>?????????????????????????????????????????????????????????????????????????????@@AAAABBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKLLLLLLLLLLLLMMMNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY Y YYYYYY Y YYYYYY Y YYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^_____________________``````````````````````````````````aaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeffffffffffffffffffgggggggggggggggggggggggggghiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkllmnnnnoooooooooooooooooooooooooooooppppppppp   $&&&++---- 1333344499<<<< <?FGGGOOOOPPQSSS SSSSSTTTTZ[[[[[[[[[[[[[\\\^^__eeeefffffgiiiiiiio(oalg-base-1.1.4.0-4IOs4qnrUn338j908LoDAr OAlg.PreludeOAlg.Data.Boolean.DefinitionOAlg.Data.NumberOAlg.Data.EqualOAlg.Data.ShowOAlg.Data.EitherOAlg.Control.ExceptionOAlg.Control.ActionOAlg.Control.HNFDataOAlg.Control.SolverOAlg.Data.ConstructableOAlg.Data.DualisableOAlg.Data.IdentityOAlg.Data.Maybe OAlg.Data.OrdOAlg.Data.ReducibleOAlg.Data.OppositeOAlg.Category.ApplicativeOAlg.Control.VerboseOAlg.Data.SingletonOAlg.Data.SingularOAlg.Data.StatisticsOAlg.Data.TreeOAlg.Hom.DefinitionOAlg.Structure.DefinitionOAlg.Data.Canonical OAlg.Data.XOAlg.Category.DefinitionOAlg.Data.Statement.DefinitionOAlg.Data.Boolean.PropositionOAlg.Data.Statement.PropositionOAlg.Data.ValidableOAlg.Data.SymbolOAlg.Entity.DefinitionOAlg.Control.ValidateOAlg.Category.PathOAlg.Category.UnifyOAlg.Category.PropositionOAlg.Limes.PerspectiveOAlg.Structure.Exception"OAlg.Structure.Oriented.Definition#OAlg.Structure.Oriented.Proposition(OAlg.Structure.Multiplicative.DefinitionOAlg.Structure.Operational)OAlg.Structure.Multiplicative.Proposition OAlg.Structure.Fibred.Definition"OAlg.Structure.Additive.Definition&OAlg.Structure.Distributive.Definition!OAlg.Structure.Fibred.Proposition#OAlg.Structure.Additive.Proposition'OAlg.Structure.Distributive.PropositionOAlg.Hom.Oriented.DefinitionOAlg.Hom.Oriented.PropositionOAlg.Hom.FibredOAlg.Hom.Additive"OAlg.Hom.Multiplicative.Definition#OAlg.Hom.Multiplicative.PropositionOAlg.Hom.PropositionOAlg.Hom.DistributiveOAlg.Entity.NaturalOAlg.Entity.FinListOAlg.Entity.Diagram.QuiverOAlg.Entity.Diagram.DefinitionOAlg.Entity.Diagram.PropositionOAlg.Structure.PropositionOAlg.Structure.Ring.Definition OAlg.Structure.Number.DefinitionOAlg.Entity.Sequence.SetOAlg.Entity.Sequence.GraphOAlg.Entity.Sequence.DefinitionOAlg.Entity.Sequence.PSequenceOAlg.Structure.Exponential#OAlg.Structure.Vectorial.Definition#OAlg.Structure.Algebraic.Definition$OAlg.Structure.Algebraic.Proposition$OAlg.Structure.Vectorial.PropositionOAlg.Hom.VectorialOAlg.Hom.AlgebraicOAlg.Entity.Product.DefinitionOAlg.Entity.Product.Proposition!OAlg.Entity.Product.ProductSymbolOAlg.Entity.Sequence.CSequence OAlg.Entity.Sequence.PermutationOAlg.Entity.Matrix.EntriesOAlg.Entity.Matrix.DimOAlg.Adjunction.DefinitionOAlg.Entity.Sum.DefinitionOAlg.Entity.Sum.SumSymbolOAlg.Entity.Matrix.DefinitionOAlg.Entity.Matrix.Vector%OAlg.Entity.Matrix.GeneralLinearGroup!OAlg.Entity.Matrix.Transformation"OAlg.Entity.Diagram.TransformationOAlg.Limes.Cone.DefinitionOAlg.Limes.Cone.EligibleFactorOAlg.Limes.DefinitionOAlg.Limes.Limits"OAlg.Limes.TerminalAndInitialPointOAlg.Limes.MinimaAndMaximaOAlg.Limes.ProductsAndSums$OAlg.Limes.EqualizersAndCoequalizersOAlg.Limes.PullbacksAndPushoutsOAlg.Limes.KernelsAndCokernelsOAlg.Limes.PropositionOAlg.Entity.Slice.DefinitionOAlg.Entity.Slice.Free"OAlg.Entity.Matrix.ProductsAndSumsOAlg.Entity.Matrix.PropositionOAlg.PropositionOAlg.Adjunction.LimesOAlg.Entity.Slice.AdjunctionOAlg.Data.GeneratorControl Exception OAlg.Data Reduciblereduced Data.ProxyProxyId OAlg.CategoryPathOAlg.Data.TypeLitsvalidateOAlg.Data.BooleanOAlg.Data.Statement&OAlg.Proposition.Homomorphism.Oriented xIsoOpOrtFrom#OAlg.Proposition.Structure.OrientedXStart xStartPathOrtXOAlg.Entity.ProductProductOAlg.Structure.Oriented NotApplicableunitOAlg.Structure.MultiplicativeOAlg.Structure.Distributive DistributiveOAlg.Structure.FibredOAlg.Structure.Additive,OAlg.Proposition.Homomorphism.Multiplicative prpHomOrtEq2OAlg.Hom.OrientedOAlg.Hom.MultiplicativeOrtSymbol NotInvertibleRootOAlg.Structure.RingOAlg.Entity.CommutativeModOAlg.Structure.Number<* PermutationNotExponential+ isMinusOneOAlg.Structure.AlgebraicOAlg.Structure.VectorialScalarOAlg.HomOAlg.Entity.SequencerootOAlg.Entity.SumOAlg.Entity.DiagramOAlg.Limes.ConeLimitsOAlg.Entity.MatrixOAlg.AdjunctionOAlg.Entity.SliceM*Paths_oalg_baseghc-primGHC.PrimseqbaseGHC.Base otherwiseGHC.EnumenumFrom enumFromThen enumFromToenumFromThenTo GHC.Classes==BoundedEnumEqGHC.ReadReadGHC.ShowShow GHC.TypesBoolStringCharInt ghc-bignumGHC.Num.IntegerIntegerIO Data.EitherEitherFalseTrueLeftRight System.IOputStrLn GHC.ExceptionthrowGHC.Exception.Type toException fromExceptiondisplayException Text.ReadreadtoEnumsuccpredfromEnumminBoundmaxBound showsPrecshowListshowGHC.Err undefinederror/=ActionrunsetStategetState $fMonadAction$fApplicativeAction$fFunctorActionAlgebraicException UndefinedImplementationError NoPredecor InvalidDataSomeOAlgExceptionoalgExceptionToExceptionoalgExceptionFromExceptionimplementation$fExceptionSomeOAlgException$fShowSomeOAlgException$fExceptionAlgebraicException$fShowAlgebraicExceptionHNFDatarhnfHNFValueFailure fromHNFValuehnfValue$fFunctorHNFValue $fHNFData[] $fHNFDataBool $fHNFData()$fShowHNFValueSolversolvesolvablefailurehandle $fMonadSolver$fApplicativeSolver$fFunctorSolver $fShowSolver Constructablemake ExposableFormformrestrictcmap Direction LeftToRight RightToLeftSideLeftSide RightSideSiteFromTo Transposable transpose ReflexivetoBidual fromBidual DualisabletoDualfromDualDual fromDual' fromBidual'$fTransposableSite$fTransposableSide$fTransposableDirection$fShowDirection $fEqDirection$fOrdDirection$fEnumDirection$fBoundedDirection $fShowSide$fEqSide $fOrdSide $fEnumSide $fBoundedSide $fShowSite$fEqSite $fOrdSite $fEnumSite $fBoundedSiteeq2Eq1eq1eqlngt $fEq1ProxyfromId trafoFromId trafoToId$fShowId$fReadId$fEqId$fOrdId$fEnumId $fBoundedId $fFunctorId $fFoldableIdexstJustjustPOrd<<=SpanCloserNegInfItPosInffcomparewcompare coComparecompare2 sortFstBysortFst sortSndBysortSndcmaxcmincspanenumSpan $fShowCloser $fReadCloser $fEqCloser $fOrdCloserRdcState UnchangedChangedRdcreduce reducesTo reduceWith>>>=$fShowRdcState$fReadRdcState $fEqRdcState $fOrdRdcState$fEnumRdcState$fBoundedRdcStateShow2show2Show1show1tweenjtween $fShow1ProxyOp2OpfromOpfromOpOp$fEq2Op2 $fShow2Op2$fShowOp$fReadOp$fEqOpEither2Left2Right2 $fEq2Either2 $fShowEither2$fShow2Either2 Applicative1amap1 Applicativeamap$$fApplicativeEither2$fApplicativeFUN$fApplicative1FUNfPercentVerbosevshow VerbosityLowMiddleHighFullPrettymnStringvshowStrmnList vshowList showPercent$fVerbose(,,,,,)$fVerbose(,,,,)$fVerbose(,,,) $fVerbose(,,) $fVerbose(,) $fVerbose()$fVerboseDouble $fVerbose[]$fVerboseInteger $fVerboseInt $fVerboseChar$fVerbosePercent $fShowPercent$fShowVerbosity $fEqVerbosity$fOrdVerbosity$fEnumVerbosity$fBoundedVerbosity Singleton1unit1 Singleton$fSingletonFUN$fSingletonProxy $fSingleton()$fSingleton1ProxySingular<==>$fSingularProxy mkStatisticW mkStatistic putStatisticW putStatisticTreeNodeLeaflookupHom ForgetfulTypTransformableOpTransformable1tau1 TransformabletauOrd'TypStruct Structure$fSingularStruct $fEq1Struct $fShow1Struct$fTestEqualityTYPEStruct$fTransformablesTYPE$fTransformabless $fEqStruct $fShowStructBolBooleanfalsetruenot||or&&and~><~>eqvl $fBooleanBool Projectibleprj Embeddableinj$fEmbeddableBoolb$fEmbeddable(,,)(,,)$fEmbeddable(,)(,)$fProjectible(,,)(,,)$fProjectible(,)(,)QZLengthNlengthNNenumdivIntmodInttakeNsplitAtN>-% denominator numerator$fTransposableN$fEnumN$fNumN$fProjectibleNInteger$fEmbeddableNInteger$fShowN $fLengthN[]$fTransposableZ$fProjectibleNZ$fEmbeddableNZ$fProjectibleIntegerZ$fEmbeddableIntegerZ$fProjectibleIntZ$fEmbeddableIntZ$fShowZ$fTransposableQ$fProjectibleNQ$fEmbeddableNQ$fProjectibleZQ$fEmbeddableZQ$fShowQ$fEqQ$fOrdQ$fNumQ$fEnumQ$fRealQ $fRealFracQ $fFractionalQ $fNFDataQ$fEqZ$fOrdZ$fIxZ$fNumZ$fEnumZ $fIntegralZ$fRealZ $fNFDataZ$fEqN$fOrdN$fIxN$fRealN $fIntegralN $fNFDataNXEmptyOmega XException ProbablyEmptyIsEmptymkOmegagetOmegasamples getSamplessamplexOmegaxTupple2xTupple3xListxTakeNxTakeBxIntxIntBxWordxWordBxInteger xIntegerBxCharxCharBxDoublexDoubleBxEnumxEnumBxBoolxZxZBxNxNBxQxOneOfWxOneOfxOneOfXWxOneOfXsum' meanValueputDistribution'putDistributionputDistributionIOaspCnstrputDstr$fExceptionXException $fEqOmega $fMonadPlusX$fAlternativeX $fMonadFailX$fMonadX$fApplicativeX $fFunctorX $fHNFDataX $fShowOmega$fShowXExceptionEmbeddableMorphismTypEmbeddableMorphismForget Cayleyan2invert2 FunctorialCategorycOne.Morphism ObjectClass homomorphousdomainrange Homomorphous:>:idconstfstsndcurryuncurrycurry3uncurry3 eqlDomaineqlRange eqlMorphismtauHomtau1HomcOne'$fEq2Homomorphous$fShow2Homomorphous$fMorphismEither2 $fMorphismOp2 $fMorphismFUN$fMorphismHomomorphous $fCategoryOp2 $fCategoryFUN$fCategoryHomomorphous$fCayleyan2Op2$fCayleyan2Homomorphous$fApplicativeForget$fMorphismForget $fEqForget $fEq2Forget $fShowForget $fShow2Forget$fEmbeddableMorphismOp2t$fEmbeddableMorphismForgett$fEmbeddableMorphismTypOp2$fEmbeddableMorphismTypForget$fShowHomomorphous$fEqHomomorphousSPathWideVTValidInvalidProbablyInvalid ProbablyValid StatementSInvalidSValid:?>CatchNot:&&And:||Or:=>Impl:<=>::<=>EqvlForallExistMessageMInvalidParams Parameter:=VariableLabelPrpValidateingExceptionNonDeterministic someException.==../=.|~>xValidindent0showVvalDeterministicvalTvalue validateStoch validateDetrdcTruerdcFalse rdcDndPrms rdcFailedtestscntTestscntTestsRdcTruecntTestsRdcFalsecntTestsRdcDndPrmscntTestsRdcFailedxWOxValueshowVStatement$fExceptionValidateingException$fVerboseLabel $fShowLabel$fVerboseParameter$fVerboseMessage$fHNFDataStatement$fBooleanStatement$fProjectibleBoolValid$fBooleanValid $fNFDataValid $fVerboseV $fShowValid $fEqValid $fOrdValid $fEnumValid$fBoundedValid $fShowMessage$fEqValidateingException$fShowValidateingException$fShowV$fShowParameter prpNotNot prpAndAssocprpAndOr prpAndTrueprpAnd0prpAnds prpOrAssocprpOrAndprpOr0prpOrs prpImplReflprpImplFalseEverything prpImplCurryprpImplTransitive prpEqvlAnd prpLazyAnd prpLazyOr prpLazyImplprpTautologiesprpBoolTautologiesprpLazyprpBool xStatementprpStatementTautologiesprpValidTautologiesprpCatch prpCheckFalse prpCheckTrue prpPrjHom prpStatement Validable2valid2 Validable1valid1 Validablevalid XStandard xStandard relXStandardrnfValid $fValidableX$fValidable(,,,,)$fValidable(,,,)$fValidable(,,)$fValidable(,)$fValidableEither $fValidable[]$fValidableMaybe$fValidableStruct$fValidableProxy $fValidableQ $fValidableZ $fValidableN$fValidableRatio$fValidableInteger$fValidableInt$fValidableChar$fValidableValid$fValidableBool $fValidable()$fValidableFUN $fXStandardQ $fXStandardZ $fXStandardN $fXStandard()$fValidable1Struct$fValidable1Proxy$fValidableForget$fValidable2Forget$fValidable2Either2$fValidable2Op2 $fValidableOpABCDEFGHIJKLOPRSUWYxSymbol$fXStandardSymbol$fValidableSymbol$fNFDataSymbol $fShowSymbol $fReadSymbol $fEqSymbol $fOrdSymbol $fEnumSymbol$fBoundedSymbolEmpty2EmptyEntity2Entity1EntEntityemptyempty2 $fEntity(,) $fEntity[] $fEntityQ $fEntityZ $fEntityN$fEntitySymbol $fEntityChar$fEntityInteger $fEntityInt $fEntity()$fEntity1Proxy$fEntity2Forget$fEntity2Either2 $fEntityEmpty$fValidableEmpty$fEntity2Empty2$fValidable2Empty2 $fEq2Empty2 $fShow2Empty2$fValidableEmpty2 $fEqEmpty2 $fShowEmpty2 $fEqEmpty $fOrdEmpty $fShowEmpty $fEntityOpResultrsValidrsValidatedSamplesrsTests rsTestsFalsersTestsRdcDndPrmsCnfgcnfOmega cnfSamplescnfWidecnfMaxDurationcnfLogDuration cnfStatisticscnfStcPathLength StochasticSparseStandardMassive validate'stdCnf validateWithstdStcvalidateStochasticvalidateStatistics$fExceptionValidateException $fShowResult $fShowCnfg$fShowStochastic$fReadStochastic$fEqStochastic$fOrdStochastic$fEnumStochastic$fBoundedStochastic$fShowValidateExceptionIdPath:.pthFoldr pthLengthcomposemPathreverse toOp2Path fromOp2Path$fCayleyan2Path$fFunctorialPath$fApplicativePath$fCategoryPath$fEmbeddableMorphismTypPath$fEmbeddableMorphismPatht$fMorphismPath $fEntity2Path$fEqPath $fEq2Path$fValidablePath$fValidable2Path $fShowPath $fShow2Path$fDualisablePathSomeMorphismSiteSomeMorphismDomainSomeMorphismRange SomePathSiteSomePathDomain SomePathRangeSomeObjectClassSomePath SomeEntity SomeMorphismSomeApplicationsomePath$fEntitySomeMorphism$fValidableSomeMorphism$fEqSomeMorphism$fShowSomeMorphism$fDualisableSomePath$fShowSomePath$fEntitySomeObjectClass$fValidableSomeObjectClass$fEqSomeObjectClass$fDualisableSomeObjectClass$fDualisableSomePathSite$fDualisableSomeMorphismSite$fShowSomeObjectClass XFnctMrphSite XMrphSiteXDomainXRangeXFnct SomeCmpbApplXCat xcSomeMrph xcSomeCmpb3 SomeCmpb3XAppl prpCategory1 prpCategory2 prpCategoryprpFunctorial1prpFunctorial2 prpFunctorial prpCayleyan2xSomePathSiteMax xSomePathMax xSomePathSite xSomePathxCat xMrphSitexFnct$fExceptionXMorphismException$fDualisableXMrphSite$fEqXMorphismException$fShowXMorphismException Perspective Projective Injective$fShowPerspective$fEqPerspective$fOrdPerspective$fEnumPerspective$fBoundedPerspectiveArithmeticException NotAddableNotMultiplicableUndefinedScalarproductNotEndoNotTransformable NoMinusOne$fExceptionArithmeticException$fEqArithmeticException$fShowArithmeticExceptionXStandardOrtOrientationxStandardOrtOrientationXOrtOrientationXStandardPointXStandardOrtSiteFromXStandardOrtSiteToXStandardOrtSitexStandardOrtSiteXOrtSiteXEnd ForgetfulOrtOrdPoint EntityPointTotalTransposableOrientedOrientedPoint orientationstartendOS Orientation:>oppositeisEndoisEndoAtpthOnepthMlt structOrtOp coXOrtSite xosFromOpOp coXOrtSiteInvxosStartxosEnd xosPathMaxAt xosPathMax xStartOrntxEndOrntcoXOrtOrientation xoOrientationxoArrowxoPointxoToxoFromxoTtlxoOrnt$fTransposableOrientation$fXStandardOrientation$fFunctorOrientation$fSingletonOrientation$fEntityOrientation$fValidableOrientation$fOrientedSomeMorphism $fOrientedOp$fOrientedOrientation $fOrientedQ $fOrientedZ $fOrientedN$fOrientedInteger $fOrientedInt $fOriented()$fTransposableOrientedQ$fTransposableOrientedZ$fTransposableOrientedN!$fTransposableOrientedOrientation $fLengthNPath$fEmbeddableqPath$fReflexivePath$fOrientedPath $fEntityPath$fFoldablePath $fTotalOp $fTotalPath$fTotalQ$fTotalZ$fTotalN$fTotalInteger $fTotalInt $fTotal()$fEntityPointOp$fEntityPointPath$fEntityPointQ$fEntityPointZ$fEntityPointN$fEntityPointInteger$fEntityPointInt$fEntityPoint()$fOrdPointPath $fOrdPointQ $fOrdPointZ $fOrdPointN$fOrdPointInteger $fOrdPointInt $fOrdPoint()$fForgetfulTypOrt$fTransformableOpOrt$fTransformable1OpOrt$fTransformableOrtEnt$fTransformableOrtTyp$fForgetfulOrtOrt$fValidableXOrtSite$fDualisableXOrtSite$fXStandardOrtSiteToOp!$fXStandardOrtSiteFromOrientation$fXStandardOrtSiteToOrientation $fXStandardOrtSiteToOrientation0"$fXStandardOrtSiteFromOrientation0$fXStandardPointOrientation$fXStandardPointQ$fXStandardPointZ$fXStandardPointN$fValidableXOrtOrientation$fXStandardOrtOrientationZ$$fXStandardOrtOrientationOrientation$fShowOrientation$fEqOrientation$fOrdOrientationXOrtprpOrt0prpOrt1prpOrtxosOrtxosPointxoOrtxOrtOrnt ForgetfulMltMltInvCayleyan Invertible tryToInvertinvert isInvertiblezpower CommutativeTransposableMultiplicativeMultiplicativeonenpowerone'isOne xosPathAtxosPathxosXOrtSitePath$fProjectiblecPath$fMultiplicativeOp$fMultiplicativePath$fMultiplicativeOrientation$fMultiplicativeQ$fMultiplicativeZ$fMultiplicativeN$fMultiplicativeInteger$fMultiplicativeInt$fMultiplicative()$fTransposableMultiplicativeQ$fTransposableMultiplicativeZ$fTransposableMultiplicativeN'$fTransposableMultiplicativeOrientation$fCommutativeOp$fCommutativeQ$fCommutativeZ$fCommutativeN$fCommutativeInteger$fCommutativeInt$fCommutative()$fInvertibleOp$fInvertibleOrientation $fInvertibleQ $fInvertibleZ $fInvertibleN$fInvertibleInteger$fInvertibleInt$fInvertible() $fCayleyanOp$fCayleyanOrientation $fCayleyan()$fTransposableMultiplicativeInv$fTransposableOrientedInv$fTransposableInv $fCayleyanInv$fInvertibleInv$fMultiplicativeInv $fOrientedInv $fEntityInv$fValidableInv$fEmbeddableInvc$fForgetfulOrtMlt$fForgetfulTypMlt$fTransformableOpMlt$fTransformable1OpMlt$fTransformableMltOrt$fTransformableMltEnt$fTransformableMltTyp$fForgetfulMltMlt $fShowInv$fEqInv OrientedOplTotalOplOpl*> OrientedOprTotalOprOpr XStandardMlt xStandardMltXMltxMltN xMltPoint xMltFactorxMltEndo xMltMltp2 xMltMltp3Mltp3Mltp2EndoprpMlt1 prpMlt2_1 prpMlt2_2prpMlt2prpMlt3prpMlt4prpMlt5prpMltxMltTtlxMltp2xMltp3xMltxoMltxMltOrnt$fValidableEndo$fDualisableMltp2$fValidableMltp2$fDualisableMltp3$fValidableMltp3$fValidableXMlt$fXStandardMltOrientation$fXStandardMltQ$fXStandardMltZ$fXStandardMltN $fShowMltp3 $fEqMltp3 $fOrdMltp3 $fShowMltp2 $fEqMltp2 $fOrdMltp2 $fShowEndo$fEqEndo $fOrdEndoForgetfulFbrOrtFbrOrt ForgetfulFbrFbrSheaf TotalRootOrdRootFibredOrientedFibred$fFibredOrientation $fFibredQ $fFibredZ $fFibredN$fFibredInteger $fFibredInt $fFibred()$fFibredOrientedOp $fFibredOp$fFibredOrientedOrientation$fFibredOrientedQ$fFibredOrientedZ$fFibredOrientedN$fFibredOrientedInteger$fFibredOrientedInt$fFibredOriented()$fEmbeddablefSheaf$fDualisableSheaf$fMultiplicativeSheaf$fOrientedSheaf $fFibredSheaf $fEntitySheaf$fValidableSheaf$fFoldableSheaf$fForgetfulTypFbr$fTransformableFbrEnt$fTransformableFbrTyp$fForgetfulFbrFbr$fForgetfulFbrFbrOrt$fForgetfulOrtFbrOrt$fForgetfulTypFbrOrt$fTransformableFbrOrtOrt$fTransformableFbrOrtFbr$fTransformableFbrOrtEnt$fTransformableFbrOrtTyp$fForgetfulFbrOrtFbrOrt $fEqSheaf $fShowSheaf ForgetfulAblAbl ForgetfulAddAddAbeliannegate-ztimesAdditivezerontimeszero'isZero$fProjectibleaSheaf $fAdditiveOp$fAdditiveOrientation $fAdditiveQ $fAdditiveZ $fAdditiveN$fAdditiveInteger $fAdditiveInt $fAdditive() $fAbelianOp$fAbelianOrientation $fAbelianQ $fAbelianZ$fAbelianInteger $fAbelianInt $fAbelian()$fForgetfulFbrAdd$fForgetfulTypAdd$fTransformableAddFbr$fTransformableAddEnt$fTransformableAddTyp$fForgetfulAddAdd$fForgetfulAddAbl$fForgetfulFbrAbl$fForgetfulTypAbl$fTransformableAblAdd$fTransformableAblFbr$fTransformableAblEnt$fTransformableAblTyp$fForgetfulAblAbl ForgetfulDstDstTransposableDistributive$fDistributiveOp$fDistributiveOrientation$fDistributiveQ$fDistributiveZ$fDistributiveN$fDistributiveInteger$fDistributiveInt$fDistributive()$fTransposableDistributiveQ$fTransposableDistributiveZ$fTransposableDistributiveN%$fTransposableDistributiveOrientation$fForgetfulAddDst$fForgetfulFbrOrtDst$fForgetfulFbrDst$fForgetfulMltDst$fForgetfulOrtDst$fForgetfulTypDst$fTransformableOpDst$fTransformable1OpDst$fTransformableDstAdd$fTransformableDstFbrOrt$fTransformableDstFbr$fTransformableDstMlt$fTransformableDstOrt$fTransformableDstEnt$fTransformableDstTyp$fForgetfulDstDstXStalkXFbrOrtXFbrprpFbr prpFbrOrtxRoot xSheafRootMax xSheafMax xSheafRootxSheafxFbrOrnt xStalkOrnt xFbrOrtOrntxoFbrxoFbrOrtXAbl XStandardAdd xStandardAddXAddAdbl3Adbl2 relIsZeroprpAdd1 prpAdd2_1 prpAdd2_2prpAdd2prpAdd3prpAdd4prpAdd5prpAdd6prpAddxAddTtl xStalkAdbl2 xStalkAdbl3 xAddStalkxAddOrntprpAbl1prpAbl2 prpAbl3_1 prpAbl3_2prpAbl3prpAbl4prpAbl5prpAblxoRootxoAdbl2xoAdbl3xoAddxoAbl$fDualisableAdbl2$fValidableAdbl2$fDualisableAdbl3$fValidableAdbl3$fValidableXAdd$fXStandardAddOrientation$fXStandardAddQ$fXStandardAddZ$fXStandardAddN$fValidableXAbl $fShowAdbl3 $fEqAdbl3 $fOrdAdbl3 $fShowAdbl2 $fEqAdbl2 $fOrdAdbl2 XStandardDst xStandardDstXDstDstSideLDstRDst DstRootSideLDstRootRDstRootprpDst1prpDst3prpDst2prpDst4prpDstxDstTtlxDstStalkStartEndxDstOrntdstDstxoDst$fValidableDstRootSide$fDualisableDstRootSide$fValidableDstSide$fDualisableDstSide$fXStandardDstOrientation$fXStandardDstQ$fXStandardDstZ$fXStandardDstN $fShowDstSide$fShowDstRootSideOpHomIsoOpMap PathOpMapOpMapToOp1FromOp1IsoOp PathHomOpHomOpFromOpOpToOpOpOpPath OpPathInvOpposite OppositeInvIdHom IsoOrientedIsoOrtFunctorialHomOriented HomOrientedpmapomap opPathOrtisoFromOpOpOrt toOp1Struct fromOp1Struct isoCoPath$fHomOrientedForget$fHomOrientedPath$fFunctorialHomOrientedPath$fFunctorialHomOrientedIdHom$fHomOrientedIdHom$fFunctorialIdHom$fApplicativeIdHom$fCayleyan2IdHom$fCategoryIdHom$fEntity2IdHom $fEntityIdHom$fValidable2IdHom$fValidableIdHom $fEq2IdHom $fShow2IdHom$fEmbeddableMorphismTypIdHom$fEmbeddableMorphismIdHomt$fMorphismIdHom$fHomOrientedHomOp$fApplicativeHomOp$fEntity2HomOp $fEntityHomOp$fValidable2HomOp$fValidableHomOp $fEq2HomOp $fShow2HomOp$fEmbeddableMorphismTypHomOp$fEmbeddableMorphismHomOpt$fMorphismHomOp$fReduciblePath$fFunctorialHomOrientedIsoOp$fFunctorialIsoOp$fHomOrientedIsoOp$fApplicativeIsoOp$fCayleyan2IsoOp$fCategoryIsoOp$fEmbeddableMorphismTypIsoOp$fEmbeddableMorphismIsoOpt$fMorphismIsoOp$fConstructableIsoOp$fExposableIsoOp$fHomOrientedOpMap$fApplicativeOpMap$fEntity2OpMap $fEntityOpMap$fValidable2OpMap$fValidableOpMap $fEq2OpMap $fShow2OpMap$fEmbeddableMorphismTypOpMap$fEmbeddableMorphismOpMapt$fMorphismOpMap$fReduciblePath0$fFunctorialHomOrientedIsoOpMap$fFunctorialIsoOpMap$fHomOrientedIsoOpMap$fApplicativeIsoOpMap$fCayleyan2IsoOpMap$fCategoryIsoOpMap$fEmbeddableMorphismTypIsoOpMap$fEmbeddableMorphismIsoOpMapt$fMorphismIsoOpMap$fConstructableIsoOpMap$fExposableIsoOpMap$fHomOrientedOpHom$fEmbeddableMorphismTypOpHom$fEmbeddableMorphismOpHomDst$fEmbeddableMorphismOpHomAdd$fEmbeddableMorphismOpHomFbrOrt$fEmbeddableMorphismOpHomFbr$fEmbeddableMorphismOpHomMlt$fEmbeddableMorphismOpHomTyp$fEmbeddableMorphismOpHomOrt$fApplicativeOpHom$fMorphismOpHom$fEntity2OpHom$fValidable2OpHom $fEq2OpHom $fShow2OpHom$fShowIsoOpMap$fShow2IsoOpMap$fValidableIsoOpMap$fValidable2IsoOpMap $fEqIsoOpMap $fEq2IsoOpMap$fEntityIsoOpMap$fEntity2IsoOpMap $fShowIsoOp $fShow2IsoOp$fValidableIsoOp$fValidable2IsoOp $fEqIsoOp $fEq2IsoOp $fEntityIsoOp$fEntity2IsoOp $fEqOpMap $fShowOpMap $fEqHomOp $fShowHomOp $fEqIdHom $fShowIdHomXHomOrtrelHomOrtHomomorphous prpHomOrt1 prpHomOrt' prpIdHomOrt prpHomOpOrtprpIsoOpOrtCategoryprpIsoOpOrtFunctorialHomFibredOrientedFunctorialHomFibred HomFibredrmap prpHomFbrOrt$fHomFibredIsoOp$fHomFibredHomOp$fHomFibredIdHom$fHomFibredPath$fFunctorialHomFibredPath$fHomFibredOrientedOpHom$fHomFibredOpHom$fHomFibredOrientedIsoOp$fHomFibredOrientedHomOp$fHomFibredOrientedIdHom$fHomFibredOrientedPath HomAdditive prpHomAdd1 prpHomAdd2$fHomAdditiveOpHom$fHomAdditiveIsoOp$fHomAdditiveHomOp$fHomAdditiveIdHom$fHomAdditivePathIsoMultiplicativeHomMultiplicativeisoFromOpOpMltisoOppositeMlt$fHomMultiplicativeOpHom$fHomMultiplicativeIsoOp$fHomMultiplicativeHomOp$fHomMultiplicativeIdHom$fHomMultiplicativeForget$fHomMultiplicativePathXHomMlt SomeApplMltp2 SomeApplPnt coSomeApplPntcoSomeApplPntInv prpHomMlt1 prpHomMlt2coSomeApplMltp2coSomeApplMltp2Inv coXHomMlt coXHomMltInv prpHomMlt xSomeApplPntxSomeApplMltp2xHomMltxHomMlt' prpHomOpMltprpIdHomprpHomOp prpIsoOpOrtIsoDistributiveHomDistributiveisoFromOpOpDst$fHomDistributiveOpHom$fHomDistributiveIsoOp$fHomDistributiveHomOp$fHomDistributiveIdHom$fHomDistributivePathN10N9N8N7N6N5N4N3N2N1N0SomeW' SomeNaturalAts AttestableattestAnyW0SWN'toN'cmpW++** inductionnValuesuccSomeNatural someNatural xSomeNaturalnaturalstoW'refllemma1sbstAddprpAdd0 prpEqlAny prpEqlAny'prpSuccInjective prpAddNtrlL prpAddNtrlR prpAddAssoc lemmaAdd1 prpAddComm prpMltNtrlL prpMltNtrlRprpDstrL prpMltAssoc lemmaMlt1 lemmaAdd2prpDstrR prpMltCommcodeWitfW $fTotalN'$fCommutativeN'$fDistributiveN' $fAdditiveN'$fFibredOrientedN' $fFibredN'$fMultiplicativeN' $fOrientedN' $fEntityN' $fValidableN'$fEnumN' $fLengthNN' $fLengthNW $fValidableW$fShowW $fTotalW'$fCommutativeW'$fDistributiveW' $fAdditiveW'$fFibredOrientedW' $fFibredW'$fMultiplicativeW' $fOrientedW' $fEntityW' $fValidableW'$fEnumW' $fLengthNW'$fOrdW'$fEqW' $fAttestableS$fAttestableN0$fValidableSomeNatural$fEqSomeNatural$fShowSomeNatural$fEqN'$fOrdN'$fShowN'$fShowW'$fEqW SomeFinListFinList'FinListNil:|toWheadtail inductionSzipzip3|:repeattoArrayiFinList iFinList0 iFinList' someFinList<++>$fEntityFinList$fValidableFinList$fFunctorFinList$fFunctorSomeFinList$fShowSomeFinList $fOrdFinList$fFoldableFinList $fEqFinList $fShowFinListQuiverqvOrientationscoQuiver coQuiverInv$fEntityQuiver$fValidableQuiver $fShowQuiver $fEqQuiver SomeDiagramXDiagram XDiagramEmptyXDiagramDiscreteXDiagramChainToXDiagramChainFromXDiagramParallelLRXDiagramParallelRL XDiagramSinkXDiagramSourceDiagramDualityDiagram DiagramEmptyDiagramDiscreteDiagramChainToDiagramChainFromDiagramParallelLRDiagramParallelRL DiagramSink DiagramSourceDiagramGeneral DiagramTypeDiscreteChainParallelStarGeneralrt'dgPointsdgArrowsdgCenterdgMap coDiagram dgFromOpOp coDiagramInvdgToOpdgFromOpdgQuiver chnToStart chnFromStart dgPrlAdjZero dgPrlTail dgPrlDiffTail dgPrlDiffHeaddgType dgTypeReflxDiagramsdgMap coSomeDiagram sdgFromOpOpcoSomeDiagramInv xSomeDiagramdstSomeDiagramxSomeDiagramOrnt$fOrientedDiagram$fOrientedDiagram0$fEntityDiagram$fValidableDiagram$fApplicative1hDiagram$fXStandardDiagram$fXStandardDiagram0$fXStandardDiagram1$fXStandardDiagram2$fXStandardDiagram3$fXStandardDiagram4$fXStandardDiagram5$fXStandardDiagram6$fValidableSomeDiagram$fShowDiagramType$fEqDiagramType$fOrdDiagramType$fShowSomeDiagram $fEqDiagram $fShowDiagram prpCoDiagramprpDiagramOrntSymbol prpStructureN prpStructureZ prpStructureQprpStructureOSField/ GaloisianRingSemiringrZerorOne$fFieldQDigitsdgsSigdgsFlrdgsFrc Measurabledist FractionalAcyclicqtimesIntegraldivModdivmodNumberminusOnesignumabsfloorfractionzFloorFractionzFloorprimesdgsProxydgsBase dgsFrcTaketoDigitstoDigitsFinite fromDigits $fNumberQ $fNumberZ$fNumberInteger $fNumberN $fAcyclicQ $fAcyclic()$fMeasurableNZ$fMeasurablerr$fEntityDigits$fValidableDigits $fOrdDigits $fEqDigits $fShowDigitsSetsetsetxssetSpansetMapsetSqcsetEmptysetUnionisSubSetsetIndexxSet prpSetUnion $fPOrdSet $fEntitySet$fValidableSet $fShowSet$fEqSet $fLengthNSet $fFoldableSetGraph gphLookup gphLengthgphxsgphSqc$fFunctorGraph $fEntityGraph$fValidableGraph $fShowGraph $fEqGraph$fLengthNGraphConstructableSequencesequence<&Sequencegraphlist??SequenceExceptionIndexOutOfSupportlistN sqcIndexMapisEmpty?supportspanimage$fExceptionSequenceException$fSequenceGraphix$fSequenceSetrx$fSequence[]rx$fConstructableSequenceGraphix$fConstructableSequenceSetrx$fConstructableSequence[]rx$fEqSequenceException$fShowSequenceException PSequencepsqxsiProxypsqSpanpsqEmpty psqIsEmptypsqMap psqMapShift psequencepsqHeadpsqTail psqFilter psqInterlace psqCompose psqSplitWhile psqAppendpsqShearpsqSwap xPSequence$fEntityPSequence$fValidablePSequence$fFunctorPSequence"$fConstructableSequencePSequenceix$fSequencePSequenceix$fProjectible[]PSequence$fEmbeddable[]PSequence$fShowPSequence $fEqPSequence$fOrdPSequence$fLengthNPSequence$fFoldablePSequenceRealpower ExponentialExponent^opower$fExponentialInv$fRealOrientation ForgetfulVecVec Euclidean Vectorial! $fVectorialOp$fVectorialOrientation $fVectorialQ $fVectorialZ $fVectorialN$fVectorialInteger$fVectorialInt $fVectorial()$fEuclideanOrientation $fEuclideanQ $fEuclideanZ $fEuclideanN$fForgetfulAddVec$fForgetfulFbrVec$fForgetfulTypVec$fTransformableVecAdd$fTransformableVecFbr$fTransformableVecEnt$fTransformableVecTyp$fForgetfulVeckVec ForgetfulAlgAlg Algebraic $fAlgebraicOp$fAlgebraicOrientation $fAlgebraicQ $fAlgebraicZ $fAlgebraicN$fAlgebraicInteger$fAlgebraicInt $fAlgebraic()$fForgetfulVeckAlg$fForgetfulDstAlg$fForgetfulAddAlg$fForgetfulFbrOrtAlg$fForgetfulFbrAlg$fForgetfulMltAlg$fForgetfulOrtAlg$fForgetfulTypAlg$fTransformable1OpAlg$fTransformableAlgVec$fTransformableAlgDst$fTransformableAlgAdd$fTransformableAlgFbrOrt$fTransformableAlgFbr$fTransformableAlgMlt$fTransformableAlgOrt$fTransformableAlgEnt$fTransformableAlgTyp$fForgetfulAlgkAlgXAlgprpAlg1prpAlgxoAlg$fValidableXAlgXVecprpVec1prpVec2prpVec3prpVec4prpVec5prpVec6prpVec7prpVecxoVec$fValidableXVec HomVectorial$fHomVectorialkIdHom$fHomVectorialkPath HomAlgebraic$fHomAlgebraickIdHom$fHomAlgebraickPathWord ProductFormOne:^:*prfoplprfopl'prfoprprfopr' prfLengthprfDepthfromWord nFactorize nFactorize' prfInverse prfFromOpprfwrdwrdprf wrdPrfGroup prfReduceWith prfFactors prfReduce prFactorsprLengthprwrdprFactor prdMapTotal prfMapTotal nProductFormnProduct zProductFormzProductprFromOp$fReducibleProductForm$fSequenceProductFormNx$fLengthNProductForm#$fProjectibleProductFormProductForm"$fEmbeddableProductFormProductForm$fProjectiblePathProductForm$fEmbeddableaProductForm$fEmbeddablePathProductForm$fFoldableProductForm$fOrientedProductForm$fEntityProductForm$fValidableProductForm$fExponentialProduct$fCayleyanProduct$fInvertibleProduct$fMultiplicativeProduct$fOrientedProduct$fEntityProduct$fProjectiblePathProduct$fEmbeddablePathProduct$fEmbeddableaProduct$fSequenceProductNa$fConstructableProduct$fExposableProduct$fValidableProduct $fShowProduct $fEqProduct $fOrdProduct $fShowWord$fEqWord$fValidableWord$fLengthNProduct$fFoldableProduct$fOrdProductForm$fEqProductForm$fShowProductFormxStartProductForm xStartProduct xPrdSymStart xPrdSymMltprpOrtProductNOrntSymbolprpOrtProductZOrntSymbolprpMltProductNOrntSymbolprpMltProductZOrntSymbol prpProductxTdstT ProductSymbolfromUpsyShownProxypsyxspsywrdwrdpsy productSymbolsy psyLength psyFactorpsyMappsyJoinxProductSymbol $fOrdPointU $fOrientedU $fEntityU&$fConstructableSequenceProductSymbolNx$fSequenceProductSymbolNx$fConstructableProductSymbol$fExposableProductSymbol$fExponentialProductSymbol$fOrientedProductSymbol$fShowProductSymbol$fEqProductSymbol$fOrdProductSymbol$fValidableProductSymbol$fEntityProductSymbol$fMultiplicativeProductSymbol$fFoldableProductSymbol$fLengthNProductSymbol$fEqU$fOrdU$fShowU $fFunctorU $fValidableU $fFoldableU CSequence xCSequencePermutableSequence permuteByPermutationFormpmfpmtswap permuteByN xPermutation xPermutationB xPermutationNxMltPermutationprpOprPermutationprpPermutableSequenceprpPermutation$fReduciblePermutationForm$fOrientedPermutationForm$fEntityPermutationForm$fValidablePermutationForm$fSequencePermutationFormii $fTotalOprPermutationPermutation$fOprPermutationPermutation"$fTotalOprPermutationProductSymbol$fOprPermutationProductSymbol$fTotalOprPermutation[]$fOprPermutation[]$fTotalOprPermutationPSequence$fOprPermutationPSequence$fExponentialPermutation$fCayleyanPermutation$fInvertiblePermutation$fTotalPermutation$fMultiplicativePermutation$fOrientedPermutation$fSequencePermutationii$fConstructablePermutation$fExposablePermutation!$fPermutableSequencePermutationii#$fPermutableSequenceProductSymbolNx$fPermutableSequence[]Nx$fPermutableSequencePSequenceix$fShowPermutation$fEqPermutation$fValidablePermutation$fEntityPermutation$fLengthNPermutation$fShowPermutationForm$fEqPermutationForm$fLengthNPermutationFormEntriesColRowrowxsrowEmpty rowIsEmptyrowHeadrowTail rowFilter rowMapShift rowAppend rowInterlace rowElimZerosrowAddrowSwaprowMltlrowShearrowScalecolxscolEmpty colIsEmptycolHeadcolTail colFilter colMapShift colAppend colInterlace colElimZeroscolSwapcolAddcolShearcolScalecolMltretsxsetsEmpty etsElimZerosetsAdd coEntries coEntriesInvetscretsrcetsMltcretsrcetsetsJoin crHeadColAt crHeadRowAt$fPermutableSequenceRowjx$fTotalOprPermutationRow$fOprPermutationRow$fSequenceRowjx $fShowRow$fPermutableSequenceColix$fTotalOprPermutationCol$fOprPermutationCol$fSequenceColix $fShowCol$fTransposableEntries $fShowEntries $fEqEntries $fOrdEntries$fValidableEntries$fEntityEntries$fFunctorEntries$fLengthNEntries$fEqCol$fValidableCol $fEntityCol $fFunctorCol $fLengthNCol$fEqRow$fValidableRow $fEntityRow $fFunctorRow $fLengthNRowDim'DimfromDimdim productDimdimxsdimwrddimMap$fXStandardDim$fExponentialDim $fTotalDim$fMultiplicativeDim $fOrientedDim$fPermutableSequenceDimNp$fTotalOprPermutationDim$fOprPermutationDim$fSequenceDimNp $fEntityDim$fValidableDim $fShowDim $fLengthNDim$fOrdDim$fEqDim Adjunctionunitrunitladjradjl adjHomMlt coAdjunctionprpAdjunctionRightprpAdjunctionLeft prpAdjunction$fValidableAdjunctionSumLinearCombinationSumFormZero:!:+smfJoinsmfMap smfLengthlcslcAggrlcSort lcSclFiltersmflclcsmf smfReducesmlcsmJoinsmMapnSumzSum$fReducibleSumForm$fLengthNSumForm$fFoldableSumForm$fFibredSumForm$fEntitySumForm$fValidableSumForm$fEntityLinearCombination$fVectorialSum $fAbelianSum $fAdditiveSum $fFibredSum$fConstructableSum$fExposableSum $fEntitySum $fShowSum$fEqSum$fOrdSum$fValidableSum$fShowLinearCombination$fEqLinearCombination$fValidableLinearCombination $fOrdSumForm $fEqSumForm $fShowSumForm SumSymbolssylcssypsq sumSymbolssyMapssySumssyJoinssyprj $fOrdRootR $fFibredR $fEntityR$fEuclideanSumSymbol$fVectorialSumSymbol$fFibredSumSymbol$fEntitySumSymbol$fShowSumSymbol $fEqSumSymbol$fOrdSumSymbol$fValidableSumSymbol$fAdditiveSumSymbol$fAbelianSumSymbol$fShowR$fEqR$fOrdR $fValidableRXStandardOrientationMatrixxStandardOrientationMatrixMatrixrowscolsmtxxs mtxColRow mtxRowColmatrix matrixTtl matrixBlc diagonal'diagonal mtxJoinDimmtxJoin mtxGroupDim mtxGroupRowmtxMapcoMatrix mtxFromOpOp coMatrixInvisoCoMatrixDstxMatrix xMatrixTtlxodZxodZZ$fXStandardOrtSiteToMatrix$fXStandardOrtSiteFromMatrix$fXStandardOrtSiteFromMatrix0$fXStandardPointMatrix$fHomDistributiveIsoOpMap$fHomAdditiveIsoOpMap$fHomFibredOrientedIsoOpMap$fHomFibredIsoOpMap$fHomMultiplicativeIsoOpMap$fHomDistributiveOpMap$fHomAdditiveOpMap$fHomFibredOrientedOpMap$fHomFibredOpMap$fHomMultiplicativeOpMap$fDualisableMatrix$fApplicative1hMatrix $fTransposableDistributiveMatrix"$fTransposableMultiplicativeMatrix$fTransposableOrientedMatrix$fTransposableMatrix$fAlgebraicMatrix$fDistributiveMatrix$fMultiplicativeMatrix$fVectorialMatrix$fAbelianMatrix$fAdditiveMatrix$fFibredOrientedMatrix$fFibredMatrix$fOrientedMatrix$fEntityMatrix$fValidableMatrix$fXStandardOrtOrientationMatrix$fXStandardOrientationMatrixZ $fOrdMatrix $fEqMatrix $fShowMatrix Representable HomSymbolCfsSsy HomMatrixVectorvecpsqcfssycfscfsssyvecrcvecAppl repMatrix mtxHomSymbolmtxRepresentablexVecN prpRepMatrix prpRepMatrixZ$fEuclideanVector$fVectorialVector$fAbelianVector$fAdditiveVector$fFibredVector$fEntityVector$fValidableVector$fHomVectorialrHomSymbol $fEmbeddableMorphismHomSymbolVec$fHomAdditiveHomSymbol $fEmbeddableMorphismHomSymbolAdd$fHomFibredHomSymbol $fEmbeddableMorphismTypHomSymbol $fEmbeddableMorphismHomSymbolTyp $fEmbeddableMorphismHomSymbolFbr$fMorphismHomSymbol$fApplicativeHomSymbol$fEntity2HomSymbol$fEntityHomSymbol$fValidable2HomSymbol$fValidableHomSymbol$fEq2HomSymbol$fShow2HomSymbol$fValidableRepresentable$fShowRepresentable $fShowVector $fEqVector $fOrdVector $fEqHomSymbol$fShowHomSymbolGLAppFTGLFTGLTGLTGLGL2GLTrAppTrFTTrGLTrGLTGLTFTGLTFormTransformationPermuteScaleShearGL2GL rdcGLTFormtrGLTgltfTrsppermute permuteFTscaleshear$fTransposableMultiplicativeGL2$fTransposableOrientedGL2$fTransposableGL2$fExponentialGL2 $fCayleyanGL2$fInvertibleGL2$fMultiplicativeGL2 $fTotalGL2 $fOrientedGL2 $fEntityGL2$fValidableGL2$fOrientedTransformation$fEntityTransformation$fValidableTransformation $fCayleyanGLT$fExponentialGLT$fInvertibleGLT$fMultiplicativeGLT $fOrientedGLT$fEmbeddableGLTProductForm$fConstructableGLT$fExposableGLT$fHomOrientedTrApp$fApplicativeTrApp$fEmbeddableMorphismTypTrApp$fEmbeddableMorphismTrAppTyp$fEmbeddableMorphismTrAppOrt$fMorphismTrApp$fEntity2TrApp $fEntityTrApp$fValidable2TrApp$fValidableTrApp $fEq2TrApp $fShow2TrApp$fHomMultiplicativeGLApp$fEmbeddableMorphismGLAppMlt$fHomOrientedGLApp$fApplicativeGLApp$fEmbeddableMorphismTypGLApp$fEmbeddableMorphismGLAppTyp$fEmbeddableMorphismGLAppOrt$fMorphismGLApp$fEntity2GLApp $fEntityGLApp$fValidable2GLApp$fValidableGLApp $fEq2GLApp $fShow2GLApp$fEqGLT $fShowGLT$fValidableGLT $fEntityGLT $fShowGL2$fEqGL2$fOrdGL2 $fEqGLApp $fShowGLApp $fEqTrApp $fShowTrApp$fShowTransformation$fEqTransformationDiagonalFormStrictPositive DiagonalFormRowTrafoColTrafo crTrafoRows crTrafoCols dgfMatrix$fOrientedOprColTrafoMatrix$fOprColTrafoMatrix$fExponentialColTrafo$fOrientedColTrafo$fOrientedOplRowTrafoMatrix$fOplRowTrafoMatrix$fExponentialRowTrafo$fOrientedRowTrafo$fEntityDiagonalForm$fValidableDiagonalForm"$fEntityDiagonalFormStrictPositive%$fValidableDiagonalFormStrictPositive $fShowDiagonalFormStrictPositive$fEqDiagonalFormStrictPositive$fEqDiagonalForm$fShowDiagonalForm $fEqRowTrafo$fShowRowTrafo$fValidableRowTrafo$fEntityRowTrafo$fMultiplicativeRowTrafo$fInvertibleRowTrafo$fCayleyanRowTrafo $fEqColTrafo$fShowColTrafo$fValidableColTrafo$fEntityColTrafo$fMultiplicativeColTrafo$fInvertibleColTrafo$fCayleyanColTrafotrfscoTransformation$fAlgebraicTransformation$fVectorialTransformation$fAbelianTransformation$fDistributiveTransformation$fAdditiveTransformation$fFibredOrientedTransformation$fFibredTransformation$fMultiplicativeTransformation FactorChain ConeZeroHead ConeDuality ConeStruct ConeStructMlt ConeStructDstConeConeProjective ConeInjective ConeKernel ConeCokernel cnStructOp cnStructMltcnStruct cnDiagramcnDiagramTypeReflcnMapMltcnMapDstcnMapcoCone cnFromOpOp coConeInvcnToOpcnFromOptipshellcnPointscnArrowscoConeZeroHead czFromOpOpcoConeZeroHeadInv cnDiffHead cnZeroHeadcnKernel cnCokernel cnPrjOrnt cnInjOrnt cnPrjChainTocnPrjChainToInvcnPrjChainFromcnPrjChainFromInv$fXStandardCone$fXStandardCone0$fXStandardCone1$fXStandardCone2$fOrientedCone $fEntityCone$fValidableCone$fApplicative1hCone$fApplicative1hCone0$fEntityConeZeroHead$fValidableConeZeroHead$fEntityFactorChain$fEntityFactorChain0$fValidableFactorChain$fValidableFactorChain0$fShowFactorChain$fEqFactorChain$fShowConeZeroHead$fEqConeZeroHead$fEqCone $fShowCone$fEqConeStruct$fShowConeStructXStandardOrtPerspectivexStandardOrtPerspectiveXOrtPerspectiveXOrtProjective XOrtInjectiveEligibleFactorEligibleFactorToEligibleFactorFromcnEligibleFactor elfFactorConeelfMapcoEligibleFactor elfFromOpOpcoEligibleFactorInvxosEligibleFactorPrjxosEligibleFactorInjxopEligibleFactor$fValidableEligibleFactor#$fXStandardOrtPerspectiveInjectivea$$fXStandardOrtPerspectiveProjectivea$fShowEligibleFactor LimesDualityLimesLimesProjectiveLimesInjectiveLimesExceptionConeNotEligible universalConeuniversalPointuniversalShelldiagramlmDiagramTypeRefluniversalFactor eligibleConeeligibleFactorlmMapcoLimes lmFromOpOp coLimesInvlmToOplmFromOprelLimes lmToPrjOrnt lmFromInjOrnt$fExceptionLimesException $fEntityLimes$fEntityLimes0$fValidableLimes$fValidableLimes0$fApplicative1hLimes $fEqLimes $fShowLimes$fEqLimesException$fShowLimesException LimitsDualitylimeslmsMapcoLimits lmsFromOpOp coLimitsInvlmsToOp lmsFromOpprpLimitsDiagram prpLimits lmsToPrjOrntlmsFromInjOrnt$fValidableLimits$fValidableLimits0$fApplicative1hLimits$fApplicative1hLimits0Initials InitialPoint InitialConeInitialDiagram Terminals TerminalPoint TerminalConeTerminalDiagram trmDiagramtrmConeterminalPointOrnttrmsOrnttrmDiagramDualitytrmConeDualitytrmLimesDualitytrmLimitsDualityintDiagramDualityintConeDualityintLimesDualityintLimitsDuality intDiagramintConeinitialPointOrntintsOrntMaximaMaximum MaximumConeMaximumDiagramMinimaMinimum MinimumConeMinimumDiagramminimaTo minimaFrommaxLimitsDualityTomaxLimitsDualityFrommaximaTo maximaFrom maximaTo' maximaFrom'SumsSumCone SumDiagramProducts ProductConeProductDiagram prdDiagramprdCone products0 products1 products2products prdConeOrnt productOrnt productsOrnt sumDiagramsumConesumLimitsDualitysums0sums1sums2sumssums' sumConeOrntsumOrntsumsOrnt Coequalizers CoequalizerCoequalizerConeCoequalizerDiagram Equalizers Equalizer EqualizerConeEqualizerDiagram equalizers0 equalizers1 equalizers2 equalizersequalizersOrntcoeqlLimitsDuality coequalizers coequalizers'coequalizersOrntPushoutsPushout PushoutConePushoutDiagram PullbacksPullback PullbackConePullbackDiagram pullbacks0 pullbacks1 pullbacks plbPrdEql2 pullbacksOrntpshLimitsDualitypushouts pushouts' pushoutsOrnt pshSumCoeql2 CokernelsCokernel CokernelConeCokernelDiagramKernelsKernel KernelCone KernelDiagram kernelFactor kernelDiagram kernelZerokernels0krnEqlseqlKrnskernels1kernels kernelsOrntcokernelFactorcokernelDiagramcokrnLimesDualitykrnLimesDuality cokernels cokernels' cokernelsOrnt prpIsKernel prpIsCokernelprpLimitsOrntSymbolSliceFactorDropSliceFactorFromDropSliceFactorToDropLimesSlicedTipDiagramSlicedCenter SliceFactorSlice SliceFromSliceToSliced slicePointsliceslfDropslfTerminalPoint slfPullbacklstLimesslfLimitsInjectivexSliceTo xSliceFromxosXOrtSiteToSliceFactorToxosXOrtSiteFromSliceFactorFrom$fSlicedProxyOrientation $fSlicediOp $fEntitySlice$fValidableSlice $fEqSlice $fShowSlice!$fXStandardOrtSiteFromSliceFactor"$fXStandardOrtSiteFromSliceFactor0$fXStandardPointSliceFactor$fXStandardSlice$fXStandardSliceFactor$fXStandardOrtSiteToSliceFactor $fXStandardOrtSiteToSliceFactor0$fXStandardPointSliceFactor0$fXStandardSlice0$fXStandardSliceFactor0"$fXStandardOrtSiteFromSliceFactor1"$fXStandardOrtSiteFromSliceFactor2$fMultiplicativeSliceFactor$fOrientedSliceFactor$fEntitySliceFactor$fValidableSliceFactor$fValidableDiagramSlicedCenter$fShowDiagramSlicedCenter$fValidableLimesSlicedTip$fShowLimesSlicedTip"$fHomMultiplicativeSliceFactorDrop$fHomOrientedSliceFactorDrop$fApplicativeSliceFactorDrop&$fEmbeddableMorphismSliceFactorDropMlt&$fEmbeddableMorphismSliceFactorDropOrt&$fEmbeddableMorphismTypSliceFactorDrop&$fEmbeddableMorphismSliceFactorDropTyp$fMorphismSliceFactorDrop$fEntity2SliceFactorDrop$fEntitySliceFactorDrop$fValidable2SliceFactorDrop$fValidableSliceFactorDrop$fEq2SliceFactorDrop$fShow2SliceFactorDrop$fShowSliceFactor$fEqSliceFactor$fEqSliceFactorDrop$fShowSliceFactorDrop PullbackFreePullbackDiagramFreeCokernelDiagramFree KernelFreeKernelDiagramFree DiagramFreeKernelSliceFromSomeFreeTip LimesFree SomeFreeSliceSomeFreeFreefreeNcastFreeisFree limesFree ksfKernel dgfDiagram $fEntity1Free$fValidable1Free $fEq1Free $fShow1Free$fSingleton1Free$fValidableSomeFree$fValidableSomeFreeSlice$fValidableLimesFree%$fValidableKernelSliceFromSomeFreeTip $fShowKernelSliceFromSomeFreeTip$fValidableDiagramFree$fShowDiagramFree $fShowFree$fEqFree$fValidableFree $fEntityFree$fShowLimesFree$fShowSomeFreeSlice$fShowSomeFree mtxProductsmtxSums prpMatrix prpMatrixZ prpOAlgBaselmPrjMaplmInjMap lmPrjMapDst lmInjMapDstSliceKernelFromsliceKernelFromSliceCokernelTosliceCokernelToSliceCokernelKernel SliceCokernel SliceKernelxSliceFactorToxSliceFactorFromprpHomMltSliceCokernelKernel slcCokerKer slcKerCoker slcAdjunction*$fEmbeddableMorphismSliceCokernelKernelMlt*$fEmbeddableMorphismSliceCokernelKernelOrt*$fEmbeddableMorphismTypSliceCokernelKernel*$fEmbeddableMorphismSliceCokernelKernelTyp$fMorphismSliceCokernelKernel$fEntity2SliceCokernelKernel$fEntitySliceCokernelKernel$fValidable2SliceCokernelKernel$fValidableSliceCokernelKernel$fEq2SliceCokernelKernel$fShow2SliceCokernelKernel&$fHomMultiplicativeSliceCokernelKernel $fHomOrientedSliceCokernelKernel $fApplicativeSliceCokernelKernel$fEqSliceCokernelKernel$fShowSliceCokernelKernel"XStandardSomeFreeSliceFromLiftable"xStandardSomeFreeSliceFromLiftableXSomeFreeSliceFromLiftable Generator GeneratorToxsfsfl%$fValidableXSomeFreeSliceFromLiftable$fValidableGenerator SomeException GHC.MaybeJustMaybeNothing Data.Maybe maybeToListmaybemapMaybe listToMaybe isNothingisJust fromMaybefromJust catMaybes<=Ord<>maxmincompare>=OrderingGTLTEQData.OrdDowngetDown comparingclampDouble GHC.TypeNatsKnownNat GHC.TypeLits KnownSymbol KnownCharGHC.Num.NaturalNatural TypeError AppendSymbolGHC.TypeLits.Internal CmpSymbolGHC.TypeNats.InternalCmpNatCmpCharDivLog2 ConsSymbol UnconsSymbol CharToNat NatToChar SomeSymbolSomeChar ErrorMessageShowType:$$:Text:<>: symbolVal' symbolVal someSymbolVal someNatVal someCharVal sameSymbolsameCharnatVal'natVal cmpSymbolcmpCharcharVal'charValSomeNatNatsameNatcmpNat Data.Type.Ord OrderingILTIEQIGTI<=?Data.Typeable.InternalTypeableGHC.Num>>=nMaxxJoinxNL Data.Foldablesum toOp2StructIndentisuccindentVForallVExistisTrueTisFalseTgetCncl rdcFalsePrmsrdcDndPrmsFalse relevantLabel prpAndSubs prpOrFalse xStandard'$.XMorphismExceptionxSomeObjectClassadjOne xosAdjOne dstPathDrcnfromEndocoXMlt coXMltInv xMltFromOpOpadjZeroxoDstRootSideLxoDstRootSideR xoDstSideL xoDstSideRinvHomOp rdcPathHomOpinvOpMap SomeApplMltcoSomeApplMltToCmpN'eqlWprpMlt0>> coXDiagramlstSqcpsqSqc psqFromMapjoinfmap//:wrdAggrprfToOp prfLookupreturnprdxEndProductForm xEndProductcsqSqcpmfMlt pmfOprPsq pmfOprLstGHC.List pmfOprPsypmfPsqpmfLstpmfPsyrelOprPermutationPsqcoColcoColInvcoRowCol coRowColInvvectorgl2Detgl2GL gl2ScaleRow1 gl2ScaleRow2 gl2ScaleCol1 gl2ScaleCol2trmtx trInversetrGLrdcPowerrdcTransformationstrTrsp gltfInverse crShearRows crShearCols rcTrafoCols cnDstAdjZerorelCone elfMapMlt elfMapDsteqlProductDiagrameqlProductConeeqlHeadDiagram eqlHeadConeplbMinimumDiagram0plbMinimumCone0plbMinimumDiagram1plbMinimumCone1 pullbacks2cokrnLimitsDualitycoSlice relValidSlice coSliceFactorrelValidSliceFactor slfSliceIndexdgSlfToSlicePointslfLimesInjectiveprpHomOrtSliceCokernelKernelversiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDir