Ettore Aldrovandi ealdrovandi@fsu.edu Keri D'Angelo kd349@cornell.edu July 17, 2021 -------------------------------------------------------------------------------- Opposite of a Group. Given a group G, its opposite G ᵒᵖ has the same underlying type, but the "opposite" group structure: g ·⟨ G ᵒᵖ ⟩ h = h ·⟨ G ⟩ g \begin{code} {-# OPTIONS --safe --without-K #-} open import MLTT.Spartan open import Groups.Type renaming (_≅_ to _≣_) module Groups.Opposite where _ᵒᵖ : Group 𝓤 → Group 𝓤 G ᵒᵖ = ⟨ G ⟩ , ( (λ g h → h ·⟨ G ⟩ g) , (groups-are-sets G) , ((λ x y z → (assoc G z y x) ⁻¹) , (unit G) , ((λ x → unit-right G x) , ((λ x → unit-left G x) , (λ x → (inv G x) , (inv-right G x) , (inv-left G x)))))) infixr 30 _ᵒᵖ \end{code} Forming the opposite gives a functor \begin{code} op-functoriality : (G H : Group 𝓤) → (f : ⟨ G ⟩ → ⟨ H ⟩) (i : is-hom G H f) → is-hom (G ᵒᵖ) (H ᵒᵖ) f op-functoriality G H f i {x} {y} = i {y} {x} \end{code} Forming the opposite is idempotent. \begin{code} opposite-idempotent : (G : Group 𝓤) → G ≣ (G ᵒᵖ) ᵒᵖ opposite-idempotent G = id , ((pr₂ (≃-refl ⟨ G ⟩)) , refl) where open import UF.Equiv \end{code} The underlying identity map ⟨ G ⟩ → ⟨ G ᵒᵖ ⟩ is NOT a homomorphism, unless G is abelian. In fact this is equivalent to G being abelian. \begin{code} underlying-id-is-hom : (G : Group 𝓤) (ab : is-abelian G) → is-hom G (G ᵒᵖ) id underlying-id-is-hom G ab {x} {y} = ab x y op-hom-gives-abelian : (G : Group 𝓤) → (i : is-hom G (G ᵒᵖ) id) → is-abelian G op-hom-gives-abelian G i = λ x y → i {x} {y} \end{code}