{-# OPTIONS --safe #-} module Cubical.Algebra.CommRing.Polynomials.Typevariate.Properties where open import Cubical.Foundations.Prelude open import Cubical.Foundations.Equiv open import Cubical.Foundations.Isomorphism open import Cubical.Foundations.HLevels open import Cubical.Foundations.Structure open import Cubical.Foundations.Function open import Cubical.Foundations.Isomorphism open import Cubical.Data.Sigma.Properties using (Σ≡Prop) open import Cubical.HITs.SetTruncation open import Cubical.Algebra.CommRing open import Cubical.Algebra.CommRing.Polynomials.Typevariate.Base open import Cubical.Algebra.CommRing.Polynomials.Typevariate.UniversalProperty open import Cubical.Data.Empty as ⊥ open import Cubical.Data.Sigma open import Cubical.Tactics.CommRingSolver private variable ℓ ℓ' ℓ'' : Level module _ {R : CommRing ℓ} where open CommRingStr ⦃...⦄ private instance _ = snd R polynomialsOn⊥ : CommRingEquiv (R [ ⊥ ]) R polynomialsOn⊥ = isoToEquiv (iso (to .fst) (from .fst) (λ x → cong (λ f → f .fst x) to∘from) (λ x → cong (λ f → f .fst x) from∘to)) , isHom where to : CommRingHom (R [ ⊥ ]) R to = inducedHom R (idCommRingHom R) ⊥.rec from : CommRingHom R (R [ ⊥ ]) from = constPolynomial R ⊥ to∘from : to ∘cr from ≡ idCommRingHom R to∘from = CommRingHom≡ refl from∘to : from ∘cr to ≡ idCommRingHom (R [ ⊥ ]) from∘to = idByIdOnVars (from ∘cr to) refl (funExt ⊥.elim) abstract isHom : IsCommRingHom ((R [ ⊥ ]) .snd) (to .fst) (R .snd) isHom = to .snd