{-# OPTIONS --cubical-compatible --safe #-}
open import Algebra using (Semigroup)
open import Data.Product.Base using (_,_)
open import Relation.Binary.Definitions using (Transitive)
module Algebra.Properties.Semigroup.Divisibility
{a ℓ} (S : Semigroup a ℓ) where
open Semigroup S
open import Algebra.Properties.Magma.Divisibility magma public
∣-trans : Transitive _∣_
∣-trans (p , px≈y) (q , qy≈z) =
q ∙ p , trans (assoc q p _) (trans (∙-congˡ px≈y) qy≈z)
∣∣-trans : Transitive _∣∣_
∣∣-trans (x∣y , y∣x) (y∣z , z∣y) = ∣-trans x∣y y∣z , ∣-trans z∣y y∣x