------------------------------------------------------------------------
-- The Agda standard library
--
-- Properties of divisibility over semigroups
------------------------------------------------------------------------
{-# OPTIONS --without-K --safe #-}
open import Algebra using (Semigroup)
open import Data.Product using (_,_)
open import Relation.Binary.Definitions using (Transitive)
module Algebra.Properties.Semigroup.Divisibility
{a ℓ} (S : Semigroup a ℓ) where
open Semigroup S
------------------------------------------------------------------------
-- Re-export magma divisibility
open import Algebra.Properties.Magma.Divisibility magma public
------------------------------------------------------------------------
-- Additional properties
∣-trans : Transitive _∣_
∣-trans (p , px≈y) (q , qy≈z) =
q ∙ p , trans (assoc q p _) (trans (∙-congˡ px≈y) qy≈z)