Finite sequences in commutative monoids

Content created by Louis Wasserman.

Created on 2025-06-03.
Last modified on 2025-06-03.

module linear-algebra.finite-sequences-in-commutative-monoids where
Imports
open import elementary-number-theory.natural-numbers

open import foundation.action-on-identifications-binary-functions
open import foundation.dependent-pair-types
open import foundation.function-extensionality
open import foundation.identity-types
open import foundation.universe-levels

open import group-theory.commutative-monoids
open import group-theory.monoids
open import group-theory.semigroups

open import linear-algebra.finite-sequences-in-monoids

Idea

Given a commutative monoid M, the type fin-sequence n M of finite sequences of length n of elements of M is a commutative monoid given by componentwise addition.

We use additive terminology for vectors, as is standard in linear algebra contexts, despite using multiplicative terminology for monoids.

Definitions

module _
  {l : Level} (M : Commutative-Monoid l)
  where

  fin-sequence-type-Commutative-Monoid :   UU l
  fin-sequence-type-Commutative-Monoid =
    fin-sequence-type-Monoid (monoid-Commutative-Monoid M)

  head-fin-sequence-type-Commutative-Monoid :
    (n : )  fin-sequence-type-Commutative-Monoid (succ-ℕ n) 
    type-Commutative-Monoid M
  head-fin-sequence-type-Commutative-Monoid =
    head-fin-sequence-type-Monoid (monoid-Commutative-Monoid M)

  tail-fin-sequence-type-Commutative-Monoid :
    (n : )  fin-sequence-type-Commutative-Monoid (succ-ℕ n) 
    fin-sequence-type-Commutative-Monoid n
  tail-fin-sequence-type-Commutative-Monoid =
    tail-fin-sequence-type-Monoid (monoid-Commutative-Monoid M)

  cons-fin-sequence-type-Commutative-Monoid :
    (n : )  type-Commutative-Monoid M 
    fin-sequence-type-Commutative-Monoid n 
    fin-sequence-type-Commutative-Monoid (succ-ℕ n)
  cons-fin-sequence-type-Commutative-Monoid =
    cons-fin-sequence-type-Monoid (monoid-Commutative-Monoid M)

  snoc-fin-sequence-type-Commutative-Monoid :
    (n : )  fin-sequence-type-Commutative-Monoid n 
    type-Commutative-Monoid M  fin-sequence-type-Commutative-Monoid (succ-ℕ n)
  snoc-fin-sequence-type-Commutative-Monoid =
    snoc-fin-sequence-type-Monoid (monoid-Commutative-Monoid M)

Zero finite sequences in a commutative monoid

module _
  {l : Level} (M : Commutative-Monoid l)
  where

  zero-fin-sequence-type-Commutative-Monoid :
    (n : )  fin-sequence-type-Commutative-Monoid M n
  zero-fin-sequence-type-Commutative-Monoid n i = unit-Commutative-Monoid M

Pointwise addition of finite sequences in a commutative monoid

module _
  {l : Level} (M : Commutative-Monoid l)
  where

  add-fin-sequence-type-Commutative-Monoid :
    (n : ) (v w : fin-sequence-type-Commutative-Monoid M n) 
    fin-sequence-type-Commutative-Monoid M n
  add-fin-sequence-type-Commutative-Monoid =
    add-fin-sequence-type-Monoid (monoid-Commutative-Monoid M)

  associative-add-fin-sequence-type-Commutative-Monoid :
    (n : ) (v1 v2 v3 : fin-sequence-type-Commutative-Monoid M n) 
    ( add-fin-sequence-type-Commutative-Monoid n
      ( add-fin-sequence-type-Commutative-Monoid n v1 v2) v3) 
    ( add-fin-sequence-type-Commutative-Monoid n v1
      ( add-fin-sequence-type-Commutative-Monoid n v2 v3))
  associative-add-fin-sequence-type-Commutative-Monoid =
    associative-add-fin-sequence-type-Monoid (monoid-Commutative-Monoid M)

  semigroup-fin-sequence-type-Commutative-Monoid :   Semigroup l
  semigroup-fin-sequence-type-Commutative-Monoid =
    semigroup-fin-sequence-type-Monoid (monoid-Commutative-Monoid M)

  left-unit-law-add-fin-sequence-type-Commutative-Monoid :
    (n : ) (v : fin-sequence-type-Commutative-Monoid M n) 
    add-fin-sequence-type-Commutative-Monoid n
      ( zero-fin-sequence-type-Commutative-Monoid M n) v  v
  left-unit-law-add-fin-sequence-type-Commutative-Monoid =
    left-unit-law-add-fin-sequence-type-Monoid (monoid-Commutative-Monoid M)

  right-unit-law-add-fin-sequence-type-Commutative-Monoid :
    (n : ) (v : fin-sequence-type-Commutative-Monoid M n) 
    add-fin-sequence-type-Commutative-Monoid n v
      ( zero-fin-sequence-type-Commutative-Monoid M n)  v
  right-unit-law-add-fin-sequence-type-Commutative-Monoid =
    right-unit-law-add-fin-sequence-type-Monoid (monoid-Commutative-Monoid M)

  monoid-fin-sequence-type-Commutative-Monoid :   Monoid l
  monoid-fin-sequence-type-Commutative-Monoid =
    monoid-fin-sequence-type-Monoid (monoid-Commutative-Monoid M)

  commutative-add-fin-sequence-type-Commutative-Monoid :
    (n : ) (v w : fin-sequence-type-Commutative-Monoid M n) 
    add-fin-sequence-type-Commutative-Monoid n v w 
    add-fin-sequence-type-Commutative-Monoid n w v
  commutative-add-fin-sequence-type-Commutative-Monoid _ _ _ =
    eq-htpy  k  commutative-mul-Commutative-Monoid M _ _)

  commutative-monoid-fin-sequence-type-Commutative-Monoid :
      Commutative-Monoid l
  commutative-monoid-fin-sequence-type-Commutative-Monoid n =
    monoid-fin-sequence-type-Commutative-Monoid n ,
    commutative-add-fin-sequence-type-Commutative-Monoid n

Recent changes