{-# OPTIONS --safe #-}
module Cubical.Algebra.CommAlgebra.Instances.Pointwise where
open import Cubical.Foundations.Prelude
open import Cubical.Foundations.HLevels
open import Cubical.Algebra.CommRing.Base
open import Cubical.Algebra.CommRing.Instances.Pointwise
open import Cubical.Algebra.CommAlgebra.Base
open import Cubical.Algebra.Algebra using (IsAlgebraHom)
private
variable
ℓ ℓ' ℓ'' : Level
module _ {R : CommRing ℓ} (X : Type ℓ'') (A : CommAlgebra R ℓ') where
pointwiseAlgebra : CommAlgebra R _
pointwiseAlgebra =
let open CommAlgebraStr (snd A)
isSetX→A = isOfHLevelΠ 2 (λ (x : X) → is-set)
in commAlgebraFromCommRing
(pointwiseRing X (CommAlgebra→CommRing A))
(λ r f → (λ x → r ⋆ (f x)))
(λ r s f i x → ⋆Assoc r s (f x) i)
(λ r f g i x → ⋆DistR+ r (f x) (g x) i)
(λ r s f i x → ⋆DistL+ r s (f x) i)
(λ f i x → ⋆IdL (f x) i)
λ r f g i x → ⋆AssocL r (f x) (g x) i
open IsAlgebraHom
evaluationHom : X → CommAlgebraHom pointwiseAlgebra A
fst (evaluationHom x) f = f x
pres0 (snd (evaluationHom x)) = refl
pres1 (snd (evaluationHom x)) = refl
pres+ (snd (evaluationHom x)) _ _ = refl
pres· (snd (evaluationHom x)) _ _ = refl
pres- (snd (evaluationHom x)) _ = refl
pres⋆ (snd (evaluationHom x)) _ _ = refl