cabal-version: 1.12 -- This file has been generated from package.yaml by hpack version 0.36.0. -- -- see: https://github.com/sol/hpack name: oalg-base version: 1.1.0.0 synopsis: Algebraic structures on oriented entities and limits as a tool kit to solve algebraic problems. description: A package for solving algebraic problems purely written in Haskell. . First of all we define [entities]("OAlg.Entity.Definition"). Based on them and since we look at algebra through the lens of categories, we define [oriented]("OAlg.Structure.Oriented.Definition") structures on which, by means of a suitable __partially__ defined multiplication, [multiplicative]("OAlg.Structure.Multiplicative.Definition") structures are defined. If one provides such a multiplicative structure with a matching [additive]("OAlg.Structure.Additive.Definition") structure, one obtains [distributive]("OAlg.Structure.Distributive.Definition") structures on which [matrices]("OAlg.Entity.Matrix.Definition") are build. If an additive structure is provided with a matching scalar multiplication, [vectorial]("OAlg.Structure.Vectorial.Definition") structures are obtained, which then form the basis for [algebraic]("OAlg.Structure.Algebraic.Definition") structures together with the distributive structures. . [Limits]("OAlg.Limes.Limits") - in context of categories - serve as a backbone for solving algebraic problems, e. g. finding all solutions of the equation @a * x == 0@ is given by the [kernel]("OAlg.Limes.KernelsAndCokernels") of @a@. . Particular attention is paid to the [duality]("OAlg.Data.Dualisable") of concepts - viewed through the lens of categories - so that the implementation of the dual concept could be traced back to the original one to avoid duplicate or redundant implementation efforts. . A central feature in this package is that all functions defined here - unless otherwise stated - are __total__ and means /if the input values are [valid]("OAlg.Data.Validable") then the resulting value is also valid/. Most functions do not check their preconditions. Therefore, all data structures defined here are provided with a __property__ section that is translated into a corresponding [statement]("OAlg.Data.Statement.Definition") so that they can be [validated]("OAlg.Control.Validate") as needed. If there is an exception to this rule - such as for partially defined algebraic operators - the rule is extended by /if the input values are valid and fulfill the additional required properties, the resulting value is also valid/. Most of the algebraic operators do check the additional required preconditions. . Since the algebraic operators - such as @(*)@, @(+)@, @(.)@ ... - have been redefined here, one should exclude the standard @Prelude@ when using this package, to avoid ambiguity, and use the [@Prelude@]("OAlg.Prelude") provided here. . Throughout the descripitions in this package we denote type variables in lower case bold letters to distinguishing them from variables for values of a type. . Since we take the view that a value of a data structure or an instance of a class must strictly fulfill the required properties to be valid, @Double@, for example, has not been implemented as a numerical type. . Please see also the README on GitHub at category: Mathematics, Algebra, Category homepage: https://github.com/zErichGut/oalg-main#readme bug-reports: https://github.com/zErichGut/oalg-main/issues author: Erich.Gut maintainer: zerich.gut@gmail.com copyright: Erich Gut license: BSD3 license-file: LICENSE build-type: Simple extra-source-files: README.md CHANGELOG.md source-repository head type: git location: https://github.com/zErichGut/oalg-main subdir: oalg-base library exposed-modules: OAlg.Adjunction OAlg.Adjunction.Definition OAlg.Adjunction.Limes OAlg.Category.Applicative OAlg.Category.Definition OAlg.Category.Path OAlg.Category.Proposition OAlg.Category.Unify OAlg.Control.Action OAlg.Control.Exception OAlg.Control.HNFData OAlg.Control.Solver OAlg.Control.Validate OAlg.Control.Verbose OAlg.Data.Boolean OAlg.Data.Boolean.Definition OAlg.Data.Boolean.Proposition OAlg.Data.Canonical OAlg.Data.Constructable OAlg.Data.Dualisable OAlg.Data.Either OAlg.Data.Equal OAlg.Data.Generator OAlg.Data.Identity OAlg.Data.Maybe OAlg.Data.Number OAlg.Data.Opposite OAlg.Data.Ord OAlg.Data.Reducible OAlg.Data.Show OAlg.Data.Singleton OAlg.Data.Singular OAlg.Data.Statement OAlg.Data.Statement.Definition OAlg.Data.Statement.Proposition OAlg.Data.Statistics OAlg.Data.Symbol OAlg.Data.Tree OAlg.Data.TypeLits OAlg.Data.Validable OAlg.Data.X OAlg.Entity.Definition OAlg.Entity.Diagram OAlg.Entity.Diagram.Definition OAlg.Entity.Diagram.Proposition OAlg.Entity.Diagram.Quiver OAlg.Entity.Diagram.Transformation OAlg.Entity.FinList OAlg.Entity.Matrix OAlg.Entity.Matrix.Definition OAlg.Entity.Matrix.Dim OAlg.Entity.Matrix.Entries OAlg.Entity.Matrix.GeneralLinearGroup OAlg.Entity.Matrix.ProductsAndSums OAlg.Entity.Matrix.Proposition OAlg.Entity.Matrix.Transformation OAlg.Entity.Natural OAlg.Entity.Product OAlg.Entity.Product.Definition OAlg.Entity.Product.Proposition OAlg.Entity.Sequence OAlg.Entity.Sequence.Definition OAlg.Entity.Sequence.Graph OAlg.Entity.Sequence.Permutation OAlg.Entity.Sequence.ProductSymbol OAlg.Entity.Sequence.PSequence OAlg.Entity.Sequence.Set OAlg.Entity.Slice OAlg.Entity.Slice.Adjunction OAlg.Entity.Slice.Definition OAlg.Entity.Slice.Free OAlg.Hom OAlg.Hom.Additive OAlg.Hom.Algebraic OAlg.Hom.Definition OAlg.Hom.Distributive OAlg.Hom.Fibred OAlg.Hom.Multiplicative OAlg.Hom.Multiplicative.Definition OAlg.Hom.Multiplicative.Proposition OAlg.Hom.Oriented OAlg.Hom.Oriented.Definition OAlg.Hom.Oriented.Proposition OAlg.Hom.Proposition OAlg.Hom.Vectorial OAlg.Limes.Cone OAlg.Limes.Cone.Definition OAlg.Limes.Cone.EligibleFactor OAlg.Limes.Definition OAlg.Limes.EqualizersAndCoequalizers OAlg.Limes.KernelsAndCokernels OAlg.Limes.Limits OAlg.Limes.MinimaAndMaxima OAlg.Limes.Perspective OAlg.Limes.ProductsAndSums OAlg.Limes.Proposition OAlg.Limes.PullbacksAndPushouts OAlg.Limes.TerminalAndInitialPoint OAlg.Prelude OAlg.Structure.Additive OAlg.Structure.Additive.Definition OAlg.Structure.Additive.Proposition OAlg.Structure.Algebraic OAlg.Structure.Algebraic.Definition OAlg.Structure.Algebraic.Proposition OAlg.Structure.Definition OAlg.Structure.Distributive OAlg.Structure.Distributive.Definition OAlg.Structure.Distributive.Proposition OAlg.Structure.Exception OAlg.Structure.Exponential OAlg.Structure.Fibred OAlg.Structure.Fibred.Definition OAlg.Structure.Fibred.Proposition OAlg.Structure.Multiplicative OAlg.Structure.Multiplicative.Definition OAlg.Structure.Multiplicative.Proposition OAlg.Structure.Number OAlg.Structure.Number.Definition OAlg.Structure.Operational OAlg.Structure.Oriented OAlg.Structure.Oriented.Definition OAlg.Structure.Oriented.Proposition OAlg.Structure.Proposition OAlg.Structure.Ring OAlg.Structure.Ring.Definition OAlg.Structure.Vectorial OAlg.Structure.Vectorial.Definition OAlg.Structure.Vectorial.Proposition other-modules: Paths_oalg_base hs-source-dirs: src ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -Wno-unticked-promoted-constructors -Wno-name-shadowing -Wno-unused-top-binds -Wno-incomplete-uni-patterns -Wno-incomplete-patterns -Wno-identities build-depends: array >=0.5.4.0 && <1 , base >=4.17.2.0 && <5 , deepseq >=1.4.8.0 && <2 , random >=1.2.1.1 && <2 , time >=1.12.2 && <2 default-language: Haskell2010 test-suite oalg-base-test type: exitcode-stdio-1.0 main-is: Spec.hs other-modules: Paths_oalg_base hs-source-dirs: test ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -Wno-unticked-promoted-constructors -Wno-name-shadowing -Wno-unused-top-binds -Wno-incomplete-uni-patterns -Wno-incomplete-patterns -Wno-identities -threaded -rtsopts -with-rtsopts=-N build-depends: array >=0.5.4.0 && <1 , base >=4.17.2.0 && <5 , deepseq >=1.4.8.0 && <2 , oalg-base , random >=1.2.1.1 && <2 , time >=1.12.2 && <2 default-language: Haskell2010