---
layout: default
file: "src/Classical/Small/Structures/CommutativeRing.lagda.md"
title: "Classical.Small.Structures.CommutativeRing module"
date: "2026-05-30"
author: "the agda-algebras development team"
---
### Level-fixed Commutative Ring
This is the [Classical.Small.Structures.CommutativeRing][] module of the [Agda Universal Algebra Library][].
Specializes [`Classical.Structures.CommutativeRing`][Classical.Structures.CommutativeRing] to the `0ℓ`–`0ℓ` case,
mirroring the veneers of `Ring`, `CommutativeMonoid`, `AbelianGroup`, etc.
<!--
```agda
{-# OPTIONS --cubical-compatible --exact-split --safe #-}
module Classical.Small.Structures.CommutativeRing where
open import Agda.Primitive using () renaming ( Set to Type )
open import Level using ( 0ℓ ; suc )
open import Relation.Binary.PropositionalEquality using ( _≡_ )
import Classical.Structures.CommutativeRing as Polymorphic
```
-->
```agda
CommutativeRing : Type (suc 0ℓ)
CommutativeRing = Polymorphic.CommutativeRing 0ℓ 0ℓ
eqsToCommutativeRing : (A : Type 0ℓ) (_+'_ : A → A → A) (0' : A) (-'_ : A → A) (_*'_ : A → A → A) (1' : A)
→ (∀ a b c → (a +' b) +' c ≡ a +' (b +' c))
→ (∀ a → 0' +' a ≡ a) → (∀ a → a +' 0' ≡ a)
→ (∀ a → (-' a) +' a ≡ 0') → (∀ a → a +' (-' a) ≡ 0')
→ (∀ a b → a +' b ≡ b +' a)
→ (∀ a b c → (a *' b) *' c ≡ a *' (b *' c))
→ (∀ a → 1' *' a ≡ a) → (∀ a → a *' 1' ≡ a)
→ (∀ a b → a *' b ≡ b *' a)
→ (∀ a b c → a *' (b +' c) ≡ (a *' b) +' (a *' c))
→ (∀ a b c → (b +' c) *' a ≡ (b *' a) +' (c *' a))
→ CommutativeRing
eqsToCommutativeRing = Polymorphic.eqsToCommutativeRing
```