Symmetric Monoidal Preorder

Textbook Definition

Definition 2.1. A (strict) symmetric monoidal structure on a preorder (X, ≤) consists of two constituents:

(i) an element I ∈ X, called the monoidal unit,

(ii) a function ⊗ : X × X → X, called the monoidal product.

These constituents must satisfy the following properties, where we write ⊗(x₁, x₂) = x₁ ⊗ x₂:

(a) for all x₁, x₂, y₁, y₂ ∈ X, if x₁ ≤ y₁ and x₂ ≤ y₂, then x₁ ⊗ x₂ ≤ y₁ ⊗ y₂,

(b) for all x ∈ X, the equations I ⊗ x = x and x ⊗ I = x hold,

(c) for all x, y, z ∈ X, the equation (x ⊗ y) ⊗ z = x ⊗ (y ⊗ z) holds,

(d) for all x, y ∈ X, the equation x ⊗ y = y ⊗ x holds.

We call these conditions monotonicity, unitality, associativity, and symmetry respectively. A preorder equipped with a symmetric monoidal structure, (X, ≤, I, ⊗), is called a symmetric monoidal preorder.

Agda Formalization

module definitions.chapter2.SymmetricMonoidalPreorder where

open import definitions.chapter1.Preorder using (Preorder)
open import Relation.Binary.PropositionalEquality using (_≡_)

-- A symmetric monoidal structure on a preorder (X, ≤)
record SymmetricMonoidalStructure (P : Preorder) : Set where
  open Preorder P

  field
    -- (i) Monoidal unit
    I : Carrier

    -- (ii) Monoidal product
    _⊗_ : Carrier → Carrier → Carrier

    -- (a) Monotonicity: if x₁ ≤ y₁ and x₂ ≤ y₂, then x₁ ⊗ x₂ ≤ y₁ ⊗ y₂
    monotonicity : ∀ {x₁ x₂ y₁ y₂} → x₁ ≤ y₁ → x₂ ≤ y₂ → (x₁ ⊗ x₂) ≤ (y₁ ⊗ y₂)

    -- (b) Unitality: I ⊗ x = x and x ⊗ I = x
    left-unit  : ∀ {x} → I ⊗ x ≡ x
    right-unit : ∀ {x} → x ⊗ I ≡ x

    -- (c) Associativity: (x ⊗ y) ⊗ z = x ⊗ (y ⊗ z)
    associativity : ∀ {x y z} → (x ⊗ y) ⊗ z ≡ x ⊗ (y ⊗ z)

    -- (d) Symmetry: x ⊗ y = y ⊗ x
    symmetry : ∀ {x y} → x ⊗ y ≡ y ⊗ x

-- A symmetric monoidal preorder is a preorder equipped with
-- a symmetric monoidal structure (X, ≤, I, ⊗)
record SymmetricMonoidalPreorder : Set₁ where
  field
    preorder : Preorder
    structure : SymmetricMonoidalStructure preorder

  open Preorder preorder public
  open SymmetricMonoidalStructure structure public