RelativeMonadOnStructuredTypes.OneSigmaStructure
Martin Escardo, Paulo Oliva, June 2024{-# OPTIONS --safe --without-K #-} open import MLTT.Spartan module RelativeMonadOnStructuredTypes.OneSigmaStructure where record 𝟙-Σ-structure : 𝓤ω where field S : {𝓤 : Universe} → 𝓤 ̇ → 𝓤 ̇ 𝟙-is-S : {𝓤 : Universe} → S (𝟙 {𝓤}) 𝕊 : (𝓤 : Universe) → 𝓤 ⁺ ̇ 𝕊 𝓤 = Σ X ꞉ 𝓤 ̇ , S X ⟨_⟩ : {𝓤 : Universe} → 𝕊 𝓤 → 𝓤 ̇ ⟨_⟩ = pr₁ underlying-structure : {𝓤 : Universe} (𝓧 : 𝕊 𝓤) → S ⟨ 𝓧 ⟩ underlying-structure = pr₂ 𝟙ₛ : {𝓤 : Universe} → 𝕊 𝓤 𝟙ₛ = 𝟙 , 𝟙-is-S field Σ-is-S : {𝓤 𝓥 : Universe} (𝓧 : 𝕊 𝓤) (𝓨 : ⟨ 𝓧 ⟩ → 𝕊 𝓥) → S (Σ x ꞉ ⟨ 𝓧 ⟩ , ⟨ 𝓨 x ⟩) Sigmaₛ : {𝓤 𝓥 : Universe} (𝓧 : 𝕊 𝓤) (𝓨 : ⟨ 𝓧 ⟩ → 𝕊 𝓥) → 𝕊 (𝓤 ⊔ 𝓥) Sigmaₛ {𝓤} {𝓥} 𝓧 𝓨 = (Σ x ꞉ ⟨ 𝓧 ⟩ , ⟨ 𝓨 x ⟩) , Σ-is-S 𝓧 𝓨 syntax Sigmaₛ 𝓧 (λ x → 𝓨) = Σₛ x ꞉ 𝓧 , 𝓨 infixr -1 SigmaₛSome typical examples that we are going to need.open import UF.DiscreteAndSeparated open import TypeTopology.SigmaDiscreteAndTotallySeparated discrete-𝟙-Σ-structure : 𝟙-Σ-structure discrete-𝟙-Σ-structure = record { S = is-discrete ; 𝟙-is-S = 𝟙-is-discrete ; Σ-is-S = λ (X , d) 𝓨 → Σ-is-discrete d (λ x → pr₂ (𝓨 x)) }