Products of commutative finite rings
Content created by Fredrik Bakke, Egbert Rijke and Victor Blanchi.
Created on 2023-05-25.
Last modified on 2025-02-11.
module finite-algebra.products-commutative-finite-rings where
Imports
open import commutative-algebra.commutative-rings open import commutative-algebra.products-commutative-rings open import finite-algebra.commutative-finite-rings open import finite-algebra.products-finite-rings open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.sets open import foundation.universe-levels open import group-theory.abelian-groups open import group-theory.groups open import group-theory.semigroups open import univalent-combinatorics.finite-types
Idea
Given two commutative finite rings R1 and R2, we define a commutative finite ring structure on the product of R1 and R2.
Definition
module _ {l1 l2 : Level} (R1 : Finite-Commutative-Ring l1) (R2 : Finite-Commutative-Ring l2) where set-product-Finite-Commutative-Ring : Set (l1 ⊔ l2) set-product-Finite-Commutative-Ring = set-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) type-product-Finite-Commutative-Ring : UU (l1 ⊔ l2) type-product-Finite-Commutative-Ring = type-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) is-set-type-product-Finite-Commutative-Ring : is-set type-product-Finite-Commutative-Ring is-set-type-product-Finite-Commutative-Ring = is-set-type-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) is-finite-type-product-Finite-Commutative-Ring : is-finite type-product-Finite-Commutative-Ring is-finite-type-product-Finite-Commutative-Ring = is-finite-type-product-Finite-Ring ( finite-ring-Finite-Commutative-Ring R1) ( finite-ring-Finite-Commutative-Ring R2) finite-type-product-Finite-Commutative-Ring : Finite-Type (l1 ⊔ l2) pr1 finite-type-product-Finite-Commutative-Ring = type-product-Finite-Commutative-Ring pr2 finite-type-product-Finite-Commutative-Ring = is-finite-type-product-Finite-Commutative-Ring add-product-Finite-Commutative-Ring : type-product-Finite-Commutative-Ring → type-product-Finite-Commutative-Ring → type-product-Finite-Commutative-Ring add-product-Finite-Commutative-Ring = add-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) zero-product-Finite-Commutative-Ring : type-product-Finite-Commutative-Ring zero-product-Finite-Commutative-Ring = zero-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) neg-product-Finite-Commutative-Ring : type-product-Finite-Commutative-Ring → type-product-Finite-Commutative-Ring neg-product-Finite-Commutative-Ring = neg-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) left-unit-law-add-product-Finite-Commutative-Ring : (x : type-product-Finite-Commutative-Ring) → Id ( add-product-Finite-Commutative-Ring ( zero-product-Finite-Commutative-Ring) ( x)) ( x) left-unit-law-add-product-Finite-Commutative-Ring = left-unit-law-add-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) right-unit-law-add-product-Finite-Commutative-Ring : (x : type-product-Finite-Commutative-Ring) → Id ( add-product-Finite-Commutative-Ring ( x) ( zero-product-Finite-Commutative-Ring)) ( x) right-unit-law-add-product-Finite-Commutative-Ring = right-unit-law-add-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) left-inverse-law-add-product-Finite-Commutative-Ring : (x : type-product-Finite-Commutative-Ring) → Id ( add-product-Finite-Commutative-Ring ( neg-product-Finite-Commutative-Ring x) ( x)) zero-product-Finite-Commutative-Ring left-inverse-law-add-product-Finite-Commutative-Ring = left-inverse-law-add-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) right-inverse-law-add-product-Finite-Commutative-Ring : (x : type-product-Finite-Commutative-Ring) → Id ( add-product-Finite-Commutative-Ring ( x) ( neg-product-Finite-Commutative-Ring x)) ( zero-product-Finite-Commutative-Ring) right-inverse-law-add-product-Finite-Commutative-Ring = right-inverse-law-add-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) associative-add-product-Finite-Commutative-Ring : (x y z : type-product-Finite-Commutative-Ring) → Id ( add-product-Finite-Commutative-Ring ( add-product-Finite-Commutative-Ring x y) ( z)) ( add-product-Finite-Commutative-Ring ( x) ( add-product-Finite-Commutative-Ring y z)) associative-add-product-Finite-Commutative-Ring = associative-add-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) commutative-add-product-Finite-Commutative-Ring : (x y : type-product-Finite-Commutative-Ring) → Id ( add-product-Finite-Commutative-Ring x y) ( add-product-Finite-Commutative-Ring y x) commutative-add-product-Finite-Commutative-Ring = commutative-add-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) mul-product-Finite-Commutative-Ring : type-product-Finite-Commutative-Ring → type-product-Finite-Commutative-Ring → type-product-Finite-Commutative-Ring mul-product-Finite-Commutative-Ring = mul-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) one-product-Finite-Commutative-Ring : type-product-Finite-Commutative-Ring one-product-Finite-Commutative-Ring = one-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) associative-mul-product-Finite-Commutative-Ring : (x y z : type-product-Finite-Commutative-Ring) → Id ( mul-product-Finite-Commutative-Ring ( mul-product-Finite-Commutative-Ring x y) ( z)) ( mul-product-Finite-Commutative-Ring ( x) ( mul-product-Finite-Commutative-Ring y z)) associative-mul-product-Finite-Commutative-Ring = associative-mul-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) left-unit-law-mul-product-Finite-Commutative-Ring : (x : type-product-Finite-Commutative-Ring) → mul-product-Finite-Commutative-Ring one-product-Finite-Commutative-Ring x = x left-unit-law-mul-product-Finite-Commutative-Ring = left-unit-law-mul-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) right-unit-law-mul-product-Finite-Commutative-Ring : (x : type-product-Finite-Commutative-Ring) → mul-product-Finite-Commutative-Ring x one-product-Finite-Commutative-Ring = x right-unit-law-mul-product-Finite-Commutative-Ring = right-unit-law-mul-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) left-distributive-mul-add-product-Finite-Commutative-Ring : (x y z : type-product-Finite-Commutative-Ring) → Id ( mul-product-Finite-Commutative-Ring ( x) ( add-product-Finite-Commutative-Ring y z)) ( add-product-Finite-Commutative-Ring ( mul-product-Finite-Commutative-Ring x y) ( mul-product-Finite-Commutative-Ring x z)) left-distributive-mul-add-product-Finite-Commutative-Ring = left-distributive-mul-add-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) right-distributive-mul-add-product-Finite-Commutative-Ring : (x y z : type-product-Finite-Commutative-Ring) → Id ( mul-product-Finite-Commutative-Ring ( add-product-Finite-Commutative-Ring x y) ( z)) ( add-product-Finite-Commutative-Ring ( mul-product-Finite-Commutative-Ring x z) ( mul-product-Finite-Commutative-Ring y z)) right-distributive-mul-add-product-Finite-Commutative-Ring = right-distributive-mul-add-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) semigroup-product-Finite-Commutative-Ring : Semigroup (l1 ⊔ l2) semigroup-product-Finite-Commutative-Ring = semigroup-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) group-product-Finite-Commutative-Ring : Group (l1 ⊔ l2) group-product-Finite-Commutative-Ring = group-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) ab-product-Finite-Commutative-Ring : Ab (l1 ⊔ l2) ab-product-Finite-Commutative-Ring = ab-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) ring-product-Finite-Commutative-Ring : Commutative-Ring (l1 ⊔ l2) ring-product-Finite-Commutative-Ring = product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) commutative-mul-product-Finite-Commutative-Ring : (x y : type-product-Finite-Commutative-Ring) → mul-product-Finite-Commutative-Ring x y = mul-product-Finite-Commutative-Ring y x commutative-mul-product-Finite-Commutative-Ring = commutative-mul-product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) commutative-ring-product-Finite-Commutative-Ring : Commutative-Ring (l1 ⊔ l2) commutative-ring-product-Finite-Commutative-Ring = product-Commutative-Ring ( commutative-ring-Finite-Commutative-Ring R1) ( commutative-ring-Finite-Commutative-Ring R2) product-Finite-Commutative-Ring : Finite-Commutative-Ring (l1 ⊔ l2) pr1 product-Finite-Commutative-Ring = product-Finite-Ring ( finite-ring-Finite-Commutative-Ring R1) ( finite-ring-Finite-Commutative-Ring R2) pr2 product-Finite-Commutative-Ring = commutative-mul-product-Finite-Commutative-Ring
Recent changes
- 2025-02-11. Fredrik Bakke. Switch from
𝔽
toFinite-*
(#1312). - 2024-02-06. Fredrik Bakke. Rename
(co)prod
to(co)product
(#1017). - 2023-06-09. Fredrik Bakke. Remove unused imports (#648).
- 2023-05-28. Fredrik Bakke. Enforce even indentation and automate some conventions (#635).
- 2023-05-25. Victor Blanchi and Egbert Rijke. Towards Hasse-Weil species (#631).