\begin{code} {-# OPTIONS --cubical --safe #-} open import Algebra open import Level module Control.Monad.Weighted.Semimodule {β} {π : Type β} (rng : Semiring π ) where open Semiring rng open import Level open import Path open import Path.Reasoning open import HLevels open import Control.Monad.Weighted.Definition rng open import Control.Monad.Weighted.Eliminators rng open import Control.Monad.Weighted.Union rng open import Control.Monad.Weighted.Cond rng module _ {a} {A : Type a} where semimodule : LeftSemimodule rng (Weighted A) semimodule .LeftSemimodule.semimodule .CommutativeMonoid.monoid .Monoid._β_ = _βͺ_ semimodule .LeftSemimodule.semimodule .CommutativeMonoid.monoid .Monoid.Ξ΅ = [] semimodule .LeftSemimodule.semimodule .CommutativeMonoid.monoid .Monoid.assoc xs ys zs = sym (βͺ-assoc xs ys zs) semimodule .LeftSemimodule.semimodule .CommutativeMonoid.monoid .Monoid.Ξ΅β _ = refl semimodule .LeftSemimodule.semimodule .CommutativeMonoid.monoid .Monoid.βΞ΅ xs = βͺ-idr xs semimodule .LeftSemimodule.semimodule .CommutativeMonoid.comm = βͺ-com semimodule .LeftSemimodule._β_ = _β_ semimodule .LeftSemimodule.β¨*β©β = *-assoc-β semimodule .LeftSemimodule.β¨+β©β x y xs = sym (β-distribΚ³ x y xs) semimodule .LeftSemimodule.ββ¨βͺβ© x y xs = sym (β-distribΛ‘ x y xs) semimodule .LeftSemimodule.1β = 1β semimodule .LeftSemimodule.0β = 0β semimodule .LeftSemimodule.ββ = ββ \end{code}