Large left modules over large rings

Content created by Louis Wasserman.

Created on 2025-11-21.
Last modified on 2025-11-21.

module linear-algebra.large-left-modules-large-rings where
Imports
open import foundation.action-on-identifications-binary-functions
open import foundation.action-on-identifications-functions
open import foundation.identity-types
open import foundation.propositions
open import foundation.sets
open import foundation.universe-levels

open import group-theory.large-abelian-groups

open import linear-algebra.left-modules-rings

open import ring-theory.large-rings

Idea

A large left module over a large ring R is a large abelian group M endowed with an action R → M → M such that

  r(x+y) = rx + ry
  (r+s)x = rx + sx
   (sr)x = s(rx)
      1x = x

which also imply

      0x = 0
      r0 = 0
   (-r)x = -(rx)
   r(-x) = -(rx)

Definition

record
  Large-Left-Module-Large-Ring
  {α : Level → Level}
  {β : Level → Level → Level}
  (δ : Level → Level)
  (γ : Level → Level → Level)
  (R : Large-Ring α β) :
  UUω
  where

  field
    large-ab-Large-Left-Module-Large-Ring : Large-Ab δ γ

  type-Large-Left-Module-Large-Ring : (l : Level) → UU (δ l)
  type-Large-Left-Module-Large-Ring =
    type-Large-Ab large-ab-Large-Left-Module-Large-Ring

  set-Large-Left-Module-Large-Ring : (l : Level) → Set (δ l)
  set-Large-Left-Module-Large-Ring =
    set-Large-Ab large-ab-Large-Left-Module-Large-Ring

  add-Large-Left-Module-Large-Ring :
    {l1 l2 : Level} →
    type-Large-Left-Module-Large-Ring l1 →
    type-Large-Left-Module-Large-Ring l2 →
    type-Large-Left-Module-Large-Ring (l1 ⊔ l2)
  add-Large-Left-Module-Large-Ring =
    add-Large-Ab large-ab-Large-Left-Module-Large-Ring

  neg-Large-Left-Module-Large-Ring :
    {l : Level} →
    type-Large-Left-Module-Large-Ring l → type-Large-Left-Module-Large-Ring l
  neg-Large-Left-Module-Large-Ring =
    neg-Large-Ab large-ab-Large-Left-Module-Large-Ring

  diff-Large-Left-Module-Large-Ring :
    {l1 l2 : Level} →
    type-Large-Left-Module-Large-Ring l1 →
    type-Large-Left-Module-Large-Ring l2 →
    type-Large-Left-Module-Large-Ring (l1 ⊔ l2)
  diff-Large-Left-Module-Large-Ring x y =
    add-Large-Left-Module-Large-Ring x (neg-Large-Left-Module-Large-Ring y)

  sim-prop-Large-Left-Module-Large-Ring :
    {l1 l2 : Level} →
    type-Large-Left-Module-Large-Ring l1 →
    type-Large-Left-Module-Large-Ring l2 →
    Prop (γ l1 l2)
  sim-prop-Large-Left-Module-Large-Ring =
    sim-prop-Large-Ab large-ab-Large-Left-Module-Large-Ring

  sim-Large-Left-Module-Large-Ring :
    {l1 l2 : Level} →
    type-Large-Left-Module-Large-Ring l1 →
    type-Large-Left-Module-Large-Ring l2 →
    UU (γ l1 l2)
  sim-Large-Left-Module-Large-Ring =
    sim-Large-Ab large-ab-Large-Left-Module-Large-Ring

  raise-Large-Left-Module-Large-Ring :
    {l0 : Level} (l : Level) →
    type-Large-Left-Module-Large-Ring l0 →
    type-Large-Left-Module-Large-Ring (l0 ⊔ l)
  raise-Large-Left-Module-Large-Ring =
    raise-Large-Ab large-ab-Large-Left-Module-Large-Ring

  zero-Large-Left-Module-Large-Ring : type-Large-Left-Module-Large-Ring lzero
  zero-Large-Left-Module-Large-Ring =
    zero-Large-Ab large-ab-Large-Left-Module-Large-Ring

  raise-zero-Large-Left-Module-Large-Ring :
    (l : Level) → type-Large-Left-Module-Large-Ring l
  raise-zero-Large-Left-Module-Large-Ring =
    raise-zero-Large-Ab large-ab-Large-Left-Module-Large-Ring

  left-unit-law-add-Large-Left-Module-Large-Ring :
    {l : Level} (x : type-Large-Left-Module-Large-Ring l) →
    add-Large-Left-Module-Large-Ring
      ( zero-Large-Left-Module-Large-Ring)
      ( x) =
    x
  left-unit-law-add-Large-Left-Module-Large-Ring =
    left-unit-law-add-Large-Ab large-ab-Large-Left-Module-Large-Ring

  right-unit-law-add-Large-Left-Module-Large-Ring :
    {l : Level} (x : type-Large-Left-Module-Large-Ring l) →
    add-Large-Left-Module-Large-Ring
      ( x)
      ( zero-Large-Left-Module-Large-Ring) =
    x
  right-unit-law-add-Large-Left-Module-Large-Ring =
    right-unit-law-add-Large-Ab large-ab-Large-Left-Module-Large-Ring

  left-inverse-law-add-Large-Left-Module-Large-Ring :
    {l : Level} (x : type-Large-Left-Module-Large-Ring l) →
    add-Large-Left-Module-Large-Ring (neg-Large-Left-Module-Large-Ring x) x =
    raise-zero-Large-Left-Module-Large-Ring l
  left-inverse-law-add-Large-Left-Module-Large-Ring =
    left-inverse-law-add-Large-Ab large-ab-Large-Left-Module-Large-Ring

  right-inverse-law-add-Large-Left-Module-Large-Ring :
    {l : Level} (x : type-Large-Left-Module-Large-Ring l) →
    add-Large-Left-Module-Large-Ring x (neg-Large-Left-Module-Large-Ring x) =
    raise-zero-Large-Left-Module-Large-Ring l
  right-inverse-law-add-Large-Left-Module-Large-Ring =
    right-inverse-law-add-Large-Ab large-ab-Large-Left-Module-Large-Ring

  commutative-add-Large-Left-Module-Large-Ring :
    {l1 l2 : Level} →
    (x : type-Large-Left-Module-Large-Ring l1) →
    (y : type-Large-Left-Module-Large-Ring l2) →
    add-Large-Left-Module-Large-Ring x y =
    add-Large-Left-Module-Large-Ring y x
  commutative-add-Large-Left-Module-Large-Ring =
    commutative-add-Large-Ab large-ab-Large-Left-Module-Large-Ring

  unique-right-neg-Large-Left-Module-Large-Ring :
    {l1 l2 : Level} →
    (x : type-Large-Left-Module-Large-Ring l1) →
    (y : type-Large-Left-Module-Large-Ring l2) →
    ( add-Large-Left-Module-Large-Ring x y =
      raise-zero-Large-Left-Module-Large-Ring (l1 ⊔ l2)) →
    sim-Large-Left-Module-Large-Ring
      ( y)
      ( neg-Large-Left-Module-Large-Ring x)
  unique-right-neg-Large-Left-Module-Large-Ring =
    unique-right-neg-Large-Ab large-ab-Large-Left-Module-Large-Ring

  refl-sim-Large-Left-Module-Large-Ring :
    {l : Level} (x : type-Large-Left-Module-Large-Ring l) →
    sim-Large-Left-Module-Large-Ring x x
  refl-sim-Large-Left-Module-Large-Ring =
    refl-sim-Large-Ab large-ab-Large-Left-Module-Large-Ring

  eq-sim-Large-Left-Module-Large-Ring :
    {l : Level} {x y : type-Large-Left-Module-Large-Ring l} →
    sim-Large-Left-Module-Large-Ring x y → x = y
  eq-sim-Large-Left-Module-Large-Ring =
    eq-sim-Large-Ab large-ab-Large-Left-Module-Large-Ring

  sim-eq-Large-Left-Module-Large-Ring :
    {l : Level} {x y : type-Large-Left-Module-Large-Ring l} →
    x = y → sim-Large-Left-Module-Large-Ring x y
  sim-eq-Large-Left-Module-Large-Ring =
    sim-eq-Large-Ab large-ab-Large-Left-Module-Large-Ring

  sim-raise-Large-Left-Module-Large-Ring :
    {l0 : Level} (l : Level) (x : type-Large-Left-Module-Large-Ring l0) →
    sim-Large-Left-Module-Large-Ring x (raise-Large-Left-Module-Large-Ring l x)
  sim-raise-Large-Left-Module-Large-Ring =
    sim-raise-Large-Ab large-ab-Large-Left-Module-Large-Ring

  sim-raise-Large-Left-Module-Large-Ring' :
    {l0 : Level} (l : Level) (x : type-Large-Left-Module-Large-Ring l0) →
    sim-Large-Left-Module-Large-Ring (raise-Large-Left-Module-Large-Ring l x) x
  sim-raise-Large-Left-Module-Large-Ring' =
    sim-raise-Large-Ab' large-ab-Large-Left-Module-Large-Ring

  raise-raise-Large-Left-Module-Large-Ring :
    {l1 l2 l3 : Level} →
    (x : type-Large-Left-Module-Large-Ring l1) →
    raise-Large-Left-Module-Large-Ring
      ( l2)
      ( raise-Large-Left-Module-Large-Ring l3 x) =
    raise-Large-Left-Module-Large-Ring (l2 ⊔ l3) x
  raise-raise-Large-Left-Module-Large-Ring =
    raise-raise-Large-Ab large-ab-Large-Left-Module-Large-Ring

  eq-raise-Large-Left-Module-Large-Ring :
    (l1 : Level) {l2 : Level} →
    (x : type-Large-Left-Module-Large-Ring (l1 ⊔ l2)) →
    raise-Large-Left-Module-Large-Ring l2 x = x
  eq-raise-Large-Left-Module-Large-Ring =
    eq-raise-Large-Ab large-ab-Large-Left-Module-Large-Ring

  field
    mul-Large-Left-Module-Large-Ring :
      {l1 l2 : Level} →
      type-Large-Ring R l1 →
      type-Large-Left-Module-Large-Ring l2 →
      type-Large-Left-Module-Large-Ring (l1 ⊔ l2)

    left-distributive-mul-add-Large-Left-Module-Large-Ring :
      {l1 l2 l3 : Level} →
      (a : type-Large-Ring R l1) →
      (x : type-Large-Left-Module-Large-Ring l2) →
      (y : type-Large-Left-Module-Large-Ring l3) →
      mul-Large-Left-Module-Large-Ring
        ( a)
        ( add-Large-Left-Module-Large-Ring x y) =
      add-Large-Left-Module-Large-Ring
        ( mul-Large-Left-Module-Large-Ring a x)
        ( mul-Large-Left-Module-Large-Ring a y)

    right-distributive-mul-add-Large-Left-Module-Large-Ring :
      {l1 l2 l3 : Level} →
      (a : type-Large-Ring R l1) →
      (b : type-Large-Ring R l2) →
      (x : type-Large-Left-Module-Large-Ring l3) →
      mul-Large-Left-Module-Large-Ring (add-Large-Ring R a b) x =
      add-Large-Left-Module-Large-Ring
        ( mul-Large-Left-Module-Large-Ring a x)
        ( mul-Large-Left-Module-Large-Ring b x)

    associative-mul-Large-Left-Module-Large-Ring :
      {l1 l2 l3 : Level} →
      (a : type-Large-Ring R l1) →
      (b : type-Large-Ring R l2) →
      (x : type-Large-Left-Module-Large-Ring l3) →
      mul-Large-Left-Module-Large-Ring (mul-Large-Ring R a b) x =
      mul-Large-Left-Module-Large-Ring a (mul-Large-Left-Module-Large-Ring b x)

    left-unit-law-mul-Large-Left-Module-Large-Ring :
      {l : Level} (x : type-Large-Left-Module-Large-Ring l) →
      mul-Large-Left-Module-Large-Ring (one-Large-Ring R) x = x

    preserves-sim-mul-Large-Left-Module-Ring :
      {l1 l2 l3 l4 : Level} →
      {a : type-Large-Ring R l1} {b : type-Large-Ring R l2} →
      sim-Large-Ring R a b →
      {x : type-Large-Left-Module-Large-Ring l3} →
      {y : type-Large-Left-Module-Large-Ring l4} →
      sim-Large-Left-Module-Large-Ring x y →
      sim-Large-Left-Module-Large-Ring
        ( mul-Large-Left-Module-Large-Ring a x)
        ( mul-Large-Left-Module-Large-Ring b y)

  ap-mul-Large-Left-Module-Large-Ring :
    {l1 l2 : Level} →
    {a a' : type-Large-Ring R l1} →
    {x x' : type-Large-Left-Module-Large-Ring l2} →
    a = a' → x = x' →
    mul-Large-Left-Module-Large-Ring a x =
    mul-Large-Left-Module-Large-Ring a' x'
  ap-mul-Large-Left-Module-Large-Ring a=a' x=x' =
    ap-binary mul-Large-Left-Module-Large-Ring a=a' x=x'

open Large-Left-Module-Large-Ring public

Properties

Similarity reasoning on large left modules

module
  similarity-reasoning-Large-Left-Module-Large-Ring
    {α : Level → Level}
    {β : Level → Level → Level}
    {δ : Level → Level}
    {γ : Level → Level → Level}
    {R : Large-Ring α β}
    (M : Large-Left-Module-Large-Ring δ γ R)
  where

  open
    similarity-reasoning-Large-Ab
      ( large-ab-Large-Left-Module-Large-Ring M)
    public

The raised left unit law

module _
  {α : Level → Level}
  {β : Level → Level → Level}
  {δ : Level → Level}
  {γ : Level → Level → Level}
  {R : Large-Ring α β}
  (M : Large-Left-Module-Large-Ring δ γ R)
  where

  abstract
    left-raise-unit-law-mul-Large-Left-Module-Large-Ring :
      {l1 l2 : Level} (x : type-Large-Left-Module-Large-Ring M l2) →
      mul-Large-Left-Module-Large-Ring M (raise-one-Large-Ring R l1) x =
      raise-Large-Left-Module-Large-Ring M l1 x
    left-raise-unit-law-mul-Large-Left-Module-Large-Ring {l1} {l2} x =
      let
        open similarity-reasoning-Large-Left-Module-Large-Ring M
      in
        eq-sim-Large-Left-Module-Large-Ring M
          ( similarity-reasoning
            mul-Large-Left-Module-Large-Ring M (raise-one-Large-Ring R l1) x
            ~ mul-Large-Left-Module-Large-Ring M (one-Large-Ring R) x
              by
                preserves-sim-mul-Large-Left-Module-Ring M
                  ( sim-raise-Large-Ring' R _ _)
                  ( refl-sim-Large-Left-Module-Large-Ring M x)
            ~ x
              by
                sim-eq-Large-Left-Module-Large-Ring M
                  ( left-unit-law-mul-Large-Left-Module-Large-Ring M x)
            ~ raise-Large-Left-Module-Large-Ring M l1 x
              by sim-raise-Large-Left-Module-Large-Ring M l1 x)

Zero laws of multiplication

module _
  {α : Level → Level}
  {β : Level → Level → Level}
  {δ : Level → Level}
  {γ : Level → Level → Level}
  {R : Large-Ring α β}
  (M : Large-Left-Module-Large-Ring δ γ R)
  where

  abstract
    left-zero-law-mul-Large-Left-Module-Large-Ring :
      {l : Level} →
      (x : type-Large-Left-Module-Large-Ring M l) →
      mul-Large-Left-Module-Large-Ring M (zero-Large-Ring R) x =
      raise-zero-Large-Left-Module-Large-Ring M l
    left-zero-law-mul-Large-Left-Module-Large-Ring x =
      eq-zero-is-idempotent-add-Large-Ab
        ( large-ab-Large-Left-Module-Large-Ring M)
        ( _)
        ( equational-reasoning
          add-Large-Left-Module-Large-Ring M
            ( mul-Large-Left-Module-Large-Ring M (zero-Large-Ring R) x)
            ( mul-Large-Left-Module-Large-Ring M (zero-Large-Ring R) x)
          =
            mul-Large-Left-Module-Large-Ring M
              ( add-Large-Ring R (zero-Large-Ring R) (zero-Large-Ring R))
              ( x)
            by
              inv
                ( right-distributive-mul-add-Large-Left-Module-Large-Ring M
                  ( _)
                  ( _)
                  ( _))
          = mul-Large-Left-Module-Large-Ring M (zero-Large-Ring R) x
            by
              ap-mul-Large-Left-Module-Large-Ring M
                ( left-unit-law-add-Large-Ring R _)
                ( refl))

    left-raise-zero-law-mul-Large-Left-Module-Large-Ring :
      {l1 l2 : Level} →
      (x : type-Large-Left-Module-Large-Ring M l2) →
      mul-Large-Left-Module-Large-Ring M (raise-zero-Large-Ring R l1) x =
      raise-zero-Large-Left-Module-Large-Ring M (l1 ⊔ l2)
    left-raise-zero-law-mul-Large-Left-Module-Large-Ring {l1} {l2} x =
      let
        open similarity-reasoning-Large-Left-Module-Large-Ring M
      in
        eq-sim-Large-Left-Module-Large-Ring M
          ( similarity-reasoning
            mul-Large-Left-Module-Large-Ring M (raise-zero-Large-Ring R l1) x
            ~ mul-Large-Left-Module-Large-Ring M (zero-Large-Ring R) x
              by
                preserves-sim-mul-Large-Left-Module-Ring M
                  ( sim-raise-Large-Ring' R _ _)
                  ( refl-sim-Large-Left-Module-Large-Ring M x)
            ~ raise-zero-Large-Left-Module-Large-Ring M l2
              by
                sim-eq-Large-Left-Module-Large-Ring M
                  ( left-zero-law-mul-Large-Left-Module-Large-Ring x)
            ~ raise-Large-Left-Module-Large-Ring M
                ( l1)
                ( raise-zero-Large-Left-Module-Large-Ring M l2)
              by sim-raise-Large-Left-Module-Large-Ring M _ _
            ~ raise-zero-Large-Left-Module-Large-Ring M (l1 ⊔ l2)
              by
                sim-eq-Large-Left-Module-Large-Ring M
                  ( raise-raise-Large-Left-Module-Large-Ring M _))

    right-zero-law-mul-Large-Left-Module-Large-Ring :
      {l : Level} →
      (a : type-Large-Ring R l) →
      mul-Large-Left-Module-Large-Ring M
        ( a)
        ( zero-Large-Left-Module-Large-Ring M) =
      raise-zero-Large-Left-Module-Large-Ring M l
    right-zero-law-mul-Large-Left-Module-Large-Ring a =
      eq-zero-is-idempotent-add-Large-Ab
        ( large-ab-Large-Left-Module-Large-Ring M)
        ( _)
        ( equational-reasoning
          add-Large-Left-Module-Large-Ring M
            ( mul-Large-Left-Module-Large-Ring M
              ( a)
              ( zero-Large-Left-Module-Large-Ring M))
            ( mul-Large-Left-Module-Large-Ring M
              ( a)
              ( zero-Large-Left-Module-Large-Ring M))
          =
            mul-Large-Left-Module-Large-Ring M
              ( a)
              ( add-Large-Left-Module-Large-Ring M
                ( zero-Large-Left-Module-Large-Ring M)
                ( zero-Large-Left-Module-Large-Ring M))
            by
              inv
                ( left-distributive-mul-add-Large-Left-Module-Large-Ring M
                  ( _)
                  ( _)
                  ( _))
          =
            mul-Large-Left-Module-Large-Ring M
              ( a)
              ( zero-Large-Left-Module-Large-Ring M)
            by
              ap-mul-Large-Left-Module-Large-Ring M
                ( refl)
                ( left-unit-law-add-Large-Left-Module-Large-Ring M _))

    right-raise-zero-law-mul-Large-Left-Module-Large-Ring :
      {l1 l2 : Level} →
      (a : type-Large-Ring R l1) →
      mul-Large-Left-Module-Large-Ring M
        ( a)
        ( raise-zero-Large-Left-Module-Large-Ring M l2) =
      raise-zero-Large-Left-Module-Large-Ring M (l1 ⊔ l2)
    right-raise-zero-law-mul-Large-Left-Module-Large-Ring {l1} {l2} a =
      let
        open similarity-reasoning-Large-Left-Module-Large-Ring M
      in
        eq-sim-Large-Left-Module-Large-Ring M
          ( similarity-reasoning
            mul-Large-Left-Module-Large-Ring M
              ( a)
              ( raise-zero-Large-Left-Module-Large-Ring M l2)
            ~ mul-Large-Left-Module-Large-Ring M
                ( a)
                ( zero-Large-Left-Module-Large-Ring M)
              by
                preserves-sim-mul-Large-Left-Module-Ring M
                  ( refl-sim-Large-Ring R a)
                  ( sim-raise-Large-Left-Module-Large-Ring' M _ _)
            ~ raise-zero-Large-Left-Module-Large-Ring M l1
              by
                sim-eq-Large-Left-Module-Large-Ring M
                  ( right-zero-law-mul-Large-Left-Module-Large-Ring a)
            ~ raise-Large-Left-Module-Large-Ring M l2
                ( raise-zero-Large-Left-Module-Large-Ring M l1)
              by sim-raise-Large-Left-Module-Large-Ring M _ _
            ~ raise-zero-Large-Left-Module-Large-Ring M (l1 ⊔ l2)
              by
                sim-eq-Large-Left-Module-Large-Ring M
                  ( raise-raise-Large-Left-Module-Large-Ring M _))

Negative laws of multiplication

module _
  {α : Level → Level}
  {β : Level → Level → Level}
  {δ : Level → Level}
  {γ : Level → Level → Level}
  {R : Large-Ring α β}
  (M : Large-Left-Module-Large-Ring δ γ R)
  where

  abstract
    left-negative-law-mul-Large-Left-Module-Large-Ring :
      {l1 l2 : Level} →
      (a : type-Large-Ring R l1) →
      (x : type-Large-Left-Module-Large-Ring M l2) →
      mul-Large-Left-Module-Large-Ring M (neg-Large-Ring R a) x =
      neg-Large-Left-Module-Large-Ring M
        ( mul-Large-Left-Module-Large-Ring M a x)
    left-negative-law-mul-Large-Left-Module-Large-Ring {l1} {l2} a x =
      eq-sim-Large-Left-Module-Large-Ring M
        ( unique-right-neg-Large-Left-Module-Large-Ring M _ _
          ( equational-reasoning
            add-Large-Left-Module-Large-Ring M
              ( mul-Large-Left-Module-Large-Ring M a x)
              ( mul-Large-Left-Module-Large-Ring M (neg-Large-Ring R a) x)
            =
              mul-Large-Left-Module-Large-Ring M
                ( add-Large-Ring R a (neg-Large-Ring R a))
                ( x)
              by
                inv
                  ( right-distributive-mul-add-Large-Left-Module-Large-Ring M
                    ( _)
                    ( _)
                    ( _))
            =
              mul-Large-Left-Module-Large-Ring M
                ( raise-zero-Large-Ring R l1)
                ( x)
              by
                ap-mul-Large-Left-Module-Large-Ring M
                  ( right-inverse-law-add-Large-Ring R a)
                  ( refl)
            = raise-zero-Large-Left-Module-Large-Ring M (l1 ⊔ l2)
              by left-raise-zero-law-mul-Large-Left-Module-Large-Ring M _))

    right-negative-law-mul-Large-Left-Module-Large-Ring :
      {l1 l2 : Level} →
      (a : type-Large-Ring R l1) →
      (x : type-Large-Left-Module-Large-Ring M l2) →
      mul-Large-Left-Module-Large-Ring M
        ( a)
        ( neg-Large-Left-Module-Large-Ring M x) =
      neg-Large-Left-Module-Large-Ring M
        ( mul-Large-Left-Module-Large-Ring M a x)
    right-negative-law-mul-Large-Left-Module-Large-Ring {l1} {l2} a x =
      eq-sim-Large-Left-Module-Large-Ring M
        ( unique-right-neg-Large-Left-Module-Large-Ring M _ _
          ( equational-reasoning
            add-Large-Left-Module-Large-Ring M
              ( mul-Large-Left-Module-Large-Ring M a x)
              ( mul-Large-Left-Module-Large-Ring M a
                ( neg-Large-Left-Module-Large-Ring M x))
            =
              mul-Large-Left-Module-Large-Ring M
                ( a)
                ( add-Large-Left-Module-Large-Ring M
                  ( x)
                  ( neg-Large-Left-Module-Large-Ring M x))
              by
                inv
                  ( left-distributive-mul-add-Large-Left-Module-Large-Ring M
                    ( _)
                    ( _)
                    ( _))
            =
              mul-Large-Left-Module-Large-Ring M
                ( a)
                ( raise-zero-Large-Left-Module-Large-Ring M l2)
              by
                ap-mul-Large-Left-Module-Large-Ring M
                  ( refl)
                  ( right-inverse-law-add-Large-Left-Module-Large-Ring M x)
            = raise-zero-Large-Left-Module-Large-Ring M (l1 ⊔ l2)
              by right-raise-zero-law-mul-Large-Left-Module-Large-Ring M a))

Multiplication by negative one is negation

module _
  {α : Level → Level}
  {β : Level → Level → Level}
  {δ : Level → Level}
  {γ : Level → Level → Level}
  {R : Large-Ring α β}
  (M : Large-Left-Module-Large-Ring δ γ R)
  where

  abstract
    mul-neg-one-Large-Left-Module-Large-Ring :
      {l : Level} →
      (x : type-Large-Left-Module-Large-Ring M l) →
      mul-Large-Left-Module-Large-Ring M
        ( neg-Large-Ring R (one-Large-Ring R))
        ( x) =
      neg-Large-Left-Module-Large-Ring M x
    mul-neg-one-Large-Left-Module-Large-Ring x =
      equational-reasoning
        mul-Large-Left-Module-Large-Ring M
          ( neg-Large-Ring R (one-Large-Ring R))
          ( x)
        = neg-Large-Left-Module-Large-Ring M
            ( mul-Large-Left-Module-Large-Ring M (one-Large-Ring R) x)
          by left-negative-law-mul-Large-Left-Module-Large-Ring M _ _
        = neg-Large-Left-Module-Large-Ring M x
          by
            ap
              ( neg-Large-Left-Module-Large-Ring M)
              ( left-unit-law-mul-Large-Left-Module-Large-Ring M x)

Properties

Small left modules from large left modules

module _
  {α : Level → Level}
  {β : Level → Level → Level}
  {δ : Level → Level}
  {γ : Level → Level → Level}
  {R : Large-Ring α β}
  (M : Large-Left-Module-Large-Ring δ γ R)
  where

  left-module-ring-Large-Left-Module-Large-Ring :
    (l1 l2 : Level) →
    left-module-Ring
      ( δ (l1 ⊔ l2))
      ( ring-Large-Ring R l1)
  left-module-ring-Large-Left-Module-Large-Ring l1 l2 =
    let
      open similarity-reasoning-Large-Left-Module-Large-Ring M
    in
      make-left-module-Ring
        ( ring-Large-Ring R l1)
        ( ab-Large-Ab (large-ab-Large-Left-Module-Large-Ring M) (l1 ⊔ l2))
        ( mul-Large-Left-Module-Large-Ring M)
        ( left-distributive-mul-add-Large-Left-Module-Large-Ring M)
        ( right-distributive-mul-add-Large-Left-Module-Large-Ring M)
        ( λ x →
          ( left-raise-unit-law-mul-Large-Left-Module-Large-Ring M x) ∙
          ( eq-raise-Large-Left-Module-Large-Ring M l2 x))
        ( associative-mul-Large-Left-Module-Large-Ring M)

Recent changes