Homomorphisms of semirings
module ring-theory.homomorphisms-semirings where
Imports
open import foundation.contractible-types open import foundation.dependent-pair-types open import foundation.equivalences open import foundation.fundamental-theorem-of-identity-types open import foundation.homotopies open import foundation.identity-types open import foundation.propositions open import foundation.sets open import foundation.subtype-identity-principle open import foundation.subtypes open import foundation.universe-levels open import group-theory.homomorphisms-commutative-monoids open import group-theory.homomorphisms-monoids open import group-theory.homomorphisms-semigroups open import ring-theory.semirings
Idea
Homomorphisms of semirings are homomorphisms of their underlying additive commutative monoids that preserve multiplication and the multiplicative unit.
Definitions
module _ {l1 l2 : Level} (R : Semiring l1) (S : Semiring l2) where is-homomorphism-semiring-hom-Commutative-Monoid-Prop : ( type-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S)) → Prop (l1 ⊔ l2) is-homomorphism-semiring-hom-Commutative-Monoid-Prop f = Σ-Prop ( preserves-mul-semigroup-Prop ( multiplicative-semigroup-Semiring R) ( multiplicative-semigroup-Semiring S) ( map-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S) ( f))) ( λ H → preserves-unit-hom-semigroup-Prop ( multiplicative-monoid-Semiring R) ( multiplicative-monoid-Semiring S) ( ( map-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S) ( f)) , ( H))) is-homomorphism-semiring-hom-Commutative-Monoid : ( type-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S)) → UU (l1 ⊔ l2) is-homomorphism-semiring-hom-Commutative-Monoid f = type-Prop (is-homomorphism-semiring-hom-Commutative-Monoid-Prop f) is-prop-is-homomorphism-semiring-hom-Commutative-Monoid : ( f : type-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S)) → is-prop (is-homomorphism-semiring-hom-Commutative-Monoid f) is-prop-is-homomorphism-semiring-hom-Commutative-Monoid f = is-prop-type-Prop (is-homomorphism-semiring-hom-Commutative-Monoid-Prop f) hom-Semiring : Set (l1 ⊔ l2) hom-Semiring = set-subset ( hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S)) ( is-homomorphism-semiring-hom-Commutative-Monoid-Prop) type-hom-Semiring : UU (l1 ⊔ l2) type-hom-Semiring = type-Set hom-Semiring is-set-type-hom-Semiring : is-set type-hom-Semiring is-set-type-hom-Semiring = is-set-type-Set hom-Semiring module _ (f : type-hom-Semiring) where hom-additive-commutative-monoid-hom-Semiring : type-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S) hom-additive-commutative-monoid-hom-Semiring = pr1 f map-hom-Semiring : type-Semiring R → type-Semiring S map-hom-Semiring = map-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S) ( hom-additive-commutative-monoid-hom-Semiring) preserves-addition-hom-Semiring : (x y : type-Semiring R) → map-hom-Semiring (add-Semiring R x y) = add-Semiring S (map-hom-Semiring x) (map-hom-Semiring y) preserves-addition-hom-Semiring = preserves-mul-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S) ( hom-additive-commutative-monoid-hom-Semiring) preserves-zero-hom-Semiring : map-hom-Semiring (zero-Semiring R) = zero-Semiring S preserves-zero-hom-Semiring = preserves-unit-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S) ( hom-additive-commutative-monoid-hom-Semiring) preserves-mul-hom-Semiring : (x y : type-Semiring R) → map-hom-Semiring (mul-Semiring R x y) = mul-Semiring S (map-hom-Semiring x) (map-hom-Semiring y) preserves-mul-hom-Semiring = pr1 (pr2 f) preserves-unit-hom-Semiring : map-hom-Semiring (one-Semiring R) = one-Semiring S preserves-unit-hom-Semiring = pr2 (pr2 f) is-homomorphism-semiring-hom-Semiring : is-homomorphism-semiring-hom-Commutative-Monoid ( hom-additive-commutative-monoid-hom-Semiring) pr1 is-homomorphism-semiring-hom-Semiring = preserves-mul-hom-Semiring pr2 is-homomorphism-semiring-hom-Semiring = preserves-unit-hom-Semiring hom-multiplicative-monoid-hom-Semiring : type-hom-Monoid ( multiplicative-monoid-Semiring R) ( multiplicative-monoid-Semiring S) pr1 (pr1 hom-multiplicative-monoid-hom-Semiring) = map-hom-Semiring pr2 (pr1 hom-multiplicative-monoid-hom-Semiring) = preserves-mul-hom-Semiring pr2 hom-multiplicative-monoid-hom-Semiring = preserves-unit-hom-Semiring
The identity homomorphism of semirings
module _ {l : Level} (R : Semiring l) where hom-additive-commutative-monoid-id-hom-Semiring : type-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring R) hom-additive-commutative-monoid-id-hom-Semiring = id-hom-Commutative-Monoid (additive-commutative-monoid-Semiring R) preserves-mul-id-hom-Semiring : (x y : type-Semiring R) → mul-Semiring R x y = mul-Semiring R x y preserves-mul-id-hom-Semiring x y = refl preserves-unit-id-hom-Semiring : one-Semiring R = one-Semiring R preserves-unit-id-hom-Semiring = refl id-hom-Semiring : type-hom-Semiring R R pr1 id-hom-Semiring = hom-additive-commutative-monoid-id-hom-Semiring pr1 (pr2 id-hom-Semiring) = preserves-mul-id-hom-Semiring pr2 (pr2 id-hom-Semiring) = preserves-unit-id-hom-Semiring
Composition of homomorphisms of semirings
module _ {l1 l2 l3 : Level} (R : Semiring l1) (S : Semiring l2) (T : Semiring l3) (g : type-hom-Semiring S T) (f : type-hom-Semiring R S) where hom-additive-commutative-monoid-comp-hom-Semiring : type-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring T) hom-additive-commutative-monoid-comp-hom-Semiring = comp-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S) ( additive-commutative-monoid-Semiring T) ( hom-additive-commutative-monoid-hom-Semiring S T g) ( hom-additive-commutative-monoid-hom-Semiring R S f) hom-multiplicative-monoid-comp-hom-Semiring : type-hom-Monoid ( multiplicative-monoid-Semiring R) ( multiplicative-monoid-Semiring T) hom-multiplicative-monoid-comp-hom-Semiring = comp-hom-Monoid ( multiplicative-monoid-Semiring R) ( multiplicative-monoid-Semiring S) ( multiplicative-monoid-Semiring T) ( hom-multiplicative-monoid-hom-Semiring S T g) ( hom-multiplicative-monoid-hom-Semiring R S f) map-comp-hom-Semiring : type-Semiring R → type-Semiring T map-comp-hom-Semiring = map-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring T) ( hom-additive-commutative-monoid-comp-hom-Semiring) preserves-mul-comp-hom-Semiring : (x y : type-Semiring R) → map-comp-hom-Semiring (mul-Semiring R x y) = mul-Semiring T (map-comp-hom-Semiring x) (map-comp-hom-Semiring y) preserves-mul-comp-hom-Semiring = preserves-mul-hom-Monoid ( multiplicative-monoid-Semiring R) ( multiplicative-monoid-Semiring T) ( hom-multiplicative-monoid-comp-hom-Semiring) preserves-unit-comp-hom-Semiring : map-comp-hom-Semiring (one-Semiring R) = one-Semiring T preserves-unit-comp-hom-Semiring = preserves-unit-hom-Monoid ( multiplicative-monoid-Semiring R) ( multiplicative-monoid-Semiring T) ( hom-multiplicative-monoid-comp-hom-Semiring) comp-hom-Semiring : type-hom-Semiring R T pr1 comp-hom-Semiring = hom-additive-commutative-monoid-comp-hom-Semiring pr1 (pr2 comp-hom-Semiring) = preserves-mul-comp-hom-Semiring pr2 (pr2 comp-hom-Semiring) = preserves-unit-comp-hom-Semiring
Homotopies of homomorphisms of semirings
module _ {l1 l2 : Level} (R : Semiring l1) (S : Semiring l2) where htpy-hom-Semiring : (f g : type-hom-Semiring R S) → UU (l1 ⊔ l2) htpy-hom-Semiring f g = htpy-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S) ( hom-additive-commutative-monoid-hom-Semiring R S f) ( hom-additive-commutative-monoid-hom-Semiring R S g) refl-htpy-hom-Semiring : (f : type-hom-Semiring R S) → htpy-hom-Semiring f f refl-htpy-hom-Semiring f = refl-htpy-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S) ( hom-additive-commutative-monoid-hom-Semiring R S f)
Properties
Homotopies characterize identifications of homomorphisms of semirings
module _ {l1 l2 : Level} (R : Semiring l1) (S : Semiring l2) (f : type-hom-Semiring R S) where is-contr-total-htpy-hom-Semiring : is-contr (Σ (type-hom-Semiring R S) (htpy-hom-Semiring R S f)) is-contr-total-htpy-hom-Semiring = is-contr-total-Eq-subtype ( is-contr-total-htpy-hom-Commutative-Monoid ( additive-commutative-monoid-Semiring R) ( additive-commutative-monoid-Semiring S) ( hom-additive-commutative-monoid-hom-Semiring R S f)) ( is-prop-is-homomorphism-semiring-hom-Commutative-Monoid R S) ( hom-additive-commutative-monoid-hom-Semiring R S f) ( refl-htpy-hom-Semiring R S f) ( is-homomorphism-semiring-hom-Semiring R S f) htpy-eq-hom-Semiring : (g : type-hom-Semiring R S) → (f = g) → htpy-hom-Semiring R S f g htpy-eq-hom-Semiring .f refl = refl-htpy-hom-Semiring R S f is-equiv-htpy-eq-hom-Semiring : (g : type-hom-Semiring R S) → is-equiv (htpy-eq-hom-Semiring g) is-equiv-htpy-eq-hom-Semiring = fundamental-theorem-id is-contr-total-htpy-hom-Semiring htpy-eq-hom-Semiring extensionality-hom-Semiring : (g : type-hom-Semiring R S) → (f = g) ≃ htpy-hom-Semiring R S f g pr1 (extensionality-hom-Semiring g) = htpy-eq-hom-Semiring g pr2 (extensionality-hom-Semiring g) = is-equiv-htpy-eq-hom-Semiring g eq-htpy-hom-Semiring : (g : type-hom-Semiring R S) → htpy-hom-Semiring R S f g → f = g eq-htpy-hom-Semiring g = map-inv-equiv (extensionality-hom-Semiring g)
Associativity of composition of homomorphisms of semirings
module _ {l1 l2 l3 l4 : Level} (R : Semiring l1) (S : Semiring l2) (T : Semiring l3) (U : Semiring l4) (h : type-hom-Semiring T U) (g : type-hom-Semiring S T) (f : type-hom-Semiring R S) where associative-comp-hom-Semiring : comp-hom-Semiring R S U (comp-hom-Semiring S T U h g) f = comp-hom-Semiring R T U h (comp-hom-Semiring R S T g f) associative-comp-hom-Semiring = eq-htpy-hom-Semiring R U ( comp-hom-Semiring R S U (comp-hom-Semiring S T U h g) f) ( comp-hom-Semiring R T U h (comp-hom-Semiring R S T g f)) ( refl-htpy)
Unit laws for composition of homomorphisms of semirings
module _ {l1 l2 : Level} (R : Semiring l1) (S : Semiring l2) (f : type-hom-Semiring R S) where left-unit-law-comp-hom-Semiring : comp-hom-Semiring R S S (id-hom-Semiring S) f = f left-unit-law-comp-hom-Semiring = eq-htpy-hom-Semiring R S ( comp-hom-Semiring R S S (id-hom-Semiring S) f) ( f) ( refl-htpy) right-unit-law-comp-hom-Semiring : comp-hom-Semiring R R S f (id-hom-Semiring R) = f right-unit-law-comp-hom-Semiring = eq-htpy-hom-Semiring R S ( comp-hom-Semiring R R S f (id-hom-Semiring R)) ( f) ( refl-htpy)