Legacy.Base.Structures.Sigma.Products¶
Product structures¶
{-# OPTIONS --cubical-compatible --exact-split --safe #-} module Legacy.Base.Structures.Sigma.Products where -- Imports from the Agda Standard Library ------------------------------------ open import Agda.Primitive using ( _โ_ ; lsuc ) renaming ( Set to Type ) open import Data.Product using ( _,_ ; _ร_ ; ฮฃ-syntax ) open import Level using ( Level ; Lift ) open import Relation.Unary using ( _โ_ ; Pred ) -- Imports from the Agda Universal Algebra Library --------------------------- open import Overture using ( โฃ_โฃ ; โฅ_โฅ ; ฮ ; ฮ -syntax ) open import Legacy.Base.Structures.Sigma.Basic using ( Signature ; Structure ; _สณ_ ; _แต_ ) private variable ๐ ๐น : Signature ฮฑ ฯ ฮน : Level โจ : {โ : Type ฮน}(๐ : โ โ Structure ๐ ๐น{ฮฑ}{ฯ}) โ Structure ๐ ๐น {ฮฑ โ ฮน} {ฯ โ ฮน} โจ {โ = โ} ๐ = ฮ [ ๐ฆ โ โ ] โฃ ๐ ๐ฆ โฃ -- domain of the product structure , ( ฮป r a โ โ ๐ฆ โ (r สณ ๐ ๐ฆ) ฮป x โ a x ๐ฆ ) -- interpretations of relations , ( ฮป ๐ a ๐ฆ โ (๐ แต ๐ ๐ฆ) ฮป x โ a x ๐ฆ ) -- interpretations of operations module _ {ฮฑ ฯ ฯ : Level}{๐ฆ : Pred (Structure ๐ ๐น {ฮฑ}{ฯ}) ฯ} where โp : Level โp = lsuc (ฮฑ โ ฯ) โ ฯ โ : Type โp โ = ฮฃ[ ๐จ โ Structure ๐ ๐น ] (๐จ โ ๐ฆ) ๐ : โ โ Structure ๐ ๐น -- (type \MfS to get ๐) ๐ ๐ฆ = โฃ ๐ฆ โฃ class-prod : Structure ๐ ๐น class-prod = โจ ๐
If p : ๐จ โ ๐ฆ, we view the pair (๐จ , p) โ โ as an index over the class, so we can think of ๐ (๐จ , p) (which is simply ๐จ) as the projection of the product โจ
๐ onto the (๐จ , p)-th component.