Derivatives for Containers in Univalent Foundations
Cubical.Algebra.Group.DirProd
Initializing search
    phijor/derivatives
    • Overview
    • Library
    phijor/derivatives
    • Overview
      • Derivative.Bag
      • Derivative.Adjunction
      • Derivative.Basics.Sum
      • Derivative.Basics.Unit
      • Derivative.Basics.W
      • Derivative.Basics.Decidable
      • Derivative.Basics.Embedding
      • Derivative.Basics.Equiv
      • Derivative.Basics.Maybe
      • Derivative.Basics.Sigma
      • Derivative.Category
      • Derivative.ChainRule
      • Derivative.Container
      • Derivative.Derivative
      • Derivative.Indexed.Mu
      • Derivative.Indexed.ChainRule
      • Derivative.Indexed.Container
      • Derivative.Indexed.Derivative
      • Derivative.Indexed.MuRule
      • Derivative.Indexed.Univalence
      • Derivative.Isolated.Base
      • Derivative.Isolated
      • Derivative.Isolated.S1
      • Derivative.Isolated.Sum
      • Derivative.Isolated.W
      • Derivative.Isolated.DependentGrafting
      • Derivative.Isolated.Grafting
      • Derivative.Isolated.Maybe
      • Derivative.Isolated.Sigma
      • Derivative.Prelude
      • Derivative.Properties
      • Derivative.Remove

    Cubical.Algebra.Group.DirProd

    module Cubical.Algebra.Group.DirProd where
    
    open import Cubical.Foundations.Prelude
    open import Cubical.Foundations.HLevels
    open import Cubical.Data.Sigma
    open import Cubical.Algebra.Group.Base
    open import Cubical.Algebra.Monoid
    open import Cubical.Algebra.Semigroup
    
    open GroupStr
    open IsGroup hiding (·IdR ; ·IdL ; ·InvR ; ·InvL)
    open IsMonoid hiding (·IdR ; ·IdL)
    open IsSemigroup
    
    DirProd : ∀ {ℓ ℓ'} → Group ℓ → Group ℓ' → Group (ℓ-max ℓ ℓ')
    fst (DirProd G H) = (fst G) × (fst H)
    1g (snd (DirProd G H)) = (1g (snd G)) , (1g (snd H))
    _·_ (snd (DirProd G H)) (g , h) (g' , h') = _·_ (snd G) g g' , _·_ (snd H) h h'
    inv (snd (DirProd G H)) (g , h) = (inv (snd G) g) , (inv (snd H) h)
    isGroup (snd (DirProd G H)) = makeIsGroup
                                  (isSet× (is-set (snd G)) (is-set (snd H)))
                                  (λ x y z → ≡-× (·Assoc (snd G) _ _ _) (·Assoc (snd H) _ _ _))
                                  (λ x → ≡-× (·IdR (snd G) _) (·IdR (snd H) _))
                                  (λ x → ≡-× (·IdL (snd G) _) (·IdL (snd H) _))
                                  (λ x → ≡-× (·InvR (snd G) _) (·InvR (snd H) _))
                                  λ x → ≡-× (·InvL (snd G) _) (·InvL (snd H) _)
    
    Made with Material for MkDocs