------------------------------------------------------------------------
-- The Agda standard library
--
-- Basic definitions for morphisms between module-like algebraic
-- structures
------------------------------------------------------------------------
{-# OPTIONS --cubical-compatible --safe #-}

open import Relation.Binary.Core

module Algebra.Module.Morphism.Definitions
  {r} (R : Set r) -- The underlying ring
  {a} (A : Set a) -- The domain of the morphism
  {b} (B : Set b) -- The codomain of the morphism
  {} (_≈_ : Rel B ) -- The equality relation over the codomain
  where

open import Algebra.Module.Core
open import Algebra.Morphism.Definitions A B _≈_ public

Homomorphicₗ : (A  B)  Opₗ R A  Opₗ R B  Set _
Homomorphicₗ ⟦_⟧ _∙_ _∘_ =  r x   r  x   (r   x )

Homomorphicᵣ : (A  B)  Opᵣ R A  Opᵣ R B  Set _
Homomorphicᵣ ⟦_⟧ _∙_ _∘_ =  r x   x  r   ( x   r)