semiring-simple 1.0.0.0 → 1.0.0.1
raw patch · 2 files changed
+19/−13 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.Semiring: infixl 5 <+>
Files
- semiring-simple.cabal +4/−3
- src/Data/Semiring.hs +15/−10
semiring-simple.cabal view
@@ -1,14 +1,15 @@ name: semiring-simple-version: 1.0.0.0+version: 1.0.0.1 synopsis: A module for dealing with semirings. description: Semirings are like normal rings, except you can't subtract. This library provides a type class for semirings. license: BSD3 license-file: LICENSE-author: Thomas Wilke, Frank Huch, Sebastian Fischer, Peter Harpending+author: Thomas Wilke, Frank Huch, Sebastian Fischer maintainer: Peter Harpending <peter@harpending.org>-copyright: 2014-2016, Peter Harpending.+copyright: Copyright (c) 2012, Thomas Wilke, Frank Huch, Sebastian Fischer.+ Copyright (c) 2014-2016, Peter Harpending. category: Math build-type: Simple cabal-version: >=1.10
src/Data/Semiring.hs view
@@ -1,8 +1,8 @@ -- | -- Module : Data.Semiring -- Description : Semirings--- Copyright : 2012, Thomas Wilke, Frank Huch, Sebastian Fischer--- 2014-2016, Peter Harpending+-- Copyright : Copyright (c) 2012, Thomas Wilke, Frank Huch, Sebastian Fischer.+-- Copyright (c) 2014-2016, Peter Harpending. -- License : BSD3 -- Maintainer : Peter Harpending <peter@harpending.org> -- Stability : experimental@@ -54,15 +54,20 @@ -- -- We can easily verify that these satisfy the semiring axioms: -- --- > minimum {∞, a} = minimum {a, ∞} = a, for all a--- > minimum {a, b} = minimum {b, a}, for all a, b--- > minimum {a, minimum{b, c}} = minimum {minimum {a, b}, c}, for all a, b, c+-- First, the requirements for a commutative monoid -- --- > 0 + a = a + 0 = a, for all a--- > a + (b + c) = (a + b) + c, for all a, b, c--- > a + minimum {b, c} = minimum {a, b} + minimum{a, c}, for all a, b, c--- > minimum {a, b} + c = minimum {a, c} + minimum{b, c}, for all a, b, c--- > a + ∞ = ∞ + a = ∞, for all a+-- > minimum {∞, a} ≡ minimum {a, ∞} ≡ a+-- > minimum {a, ∞} ≡ a+-- > minimum {a, b} ≡ minimum {b, a}+-- > minimum {a, minimum{b, c}} ≡ minimum {minimum {a, b}, c}+-- +-- > 0 + a ≡ a+-- > a + 0 ≡ a+-- > a + (b + c) ≡ (a + b) + c+-- > a + minimum {b, c} ≡ minimum {a + b, a + c}+-- > minimum {a, b} + c ≡ minimum {a + c, b + c}+-- > a + ∞ ≡ ∞+-- > ∞ + a ≡ ∞ module Data.Semiring where import Data.Monoid