# The closed modalities ```agda module orthogonal-factorization-systems.closed-modalities where ``` <details><summary>Imports</summary> ```agda open import foundation.contractible-maps open import foundation.contractible-types open import foundation.dependent-pair-types open import foundation.equivalences open import foundation.function-types open import foundation.functoriality-dependent-pair-types open import foundation.identity-types open import foundation.propositions open import foundation.torsorial-type-families open import foundation.type-arithmetic-dependent-pair-types open import foundation.universe-levels open import orthogonal-factorization-systems.modal-operators open import orthogonal-factorization-systems.reflective-subuniverses open import orthogonal-factorization-systems.sigma-closed-reflective-subuniverses open import synthetic-homotopy-theory.joins-of-types ``` </details> ## Idea Given any [proposition](foundation.propositions.md) `Q`, the [join operation](synthetic-homotopy-theory.joins-of-types.md) `_* Q` defines a [higher modality](orthogonal-factorization-systems.higher-modalities.md). We call these the **closed modalities**. ## Definition ```agda operator-closed-modality : {l lQ : Level} (Q : Prop lQ) → operator-modality l (l ⊔ lQ) operator-closed-modality Q A = A * type-Prop Q unit-closed-modality : {l lQ : Level} (Q : Prop lQ) → unit-modality (operator-closed-modality {l} Q) unit-closed-modality Q = inl-join is-closed-modal : {l lQ : Level} (Q : Prop lQ) → UU l → Prop (l ⊔ lQ) pr1 (is-closed-modal Q B) = type-Prop Q → is-contr B pr2 (is-closed-modal Q B) = is-prop-function-type is-property-is-contr ``` ## Properties ### The closed modalities define Σ-closed reflective subuniverses ```agda module _ {l lQ : Level} (Q : Prop lQ) where is-reflective-subuniverse-closed-modality : is-reflective-subuniverse {l ⊔ lQ} (is-closed-modal Q) pr1 is-reflective-subuniverse-closed-modality = operator-closed-modality {l ⊔ lQ} Q pr1 (pr2 is-reflective-subuniverse-closed-modality) = unit-closed-modality Q pr1 (pr2 (pr2 is-reflective-subuniverse-closed-modality)) A q = right-zero-law-join-is-contr ( A) ( type-Prop Q) ( is-proof-irrelevant-is-prop (is-prop-type-Prop Q) q) pr2 (pr2 (pr2 is-reflective-subuniverse-closed-modality)) B A is-modal-B = is-equiv-is-contr-map ( λ f → is-contr-equiv ( Σ (A → B) (_= f)) ( equiv-Σ-equiv-base ( _= f) ( right-unit-law-Σ-is-contr ( λ f' → is-contr-Σ ( is-contr-Π is-modal-B) ( center ∘ is-modal-B) ( is-contr-Π ( λ (a , q) → is-prop-is-contr ( is-modal-B q) ( f' a) ( center (is-modal-B q))))) ∘e ( equiv-up-join B))) ( is-torsorial-Id' f)) reflective-subuniverse-closed-modality : reflective-subuniverse (l ⊔ lQ) (l ⊔ lQ) pr1 reflective-subuniverse-closed-modality = is-closed-modal Q pr2 reflective-subuniverse-closed-modality = is-reflective-subuniverse-closed-modality is-closed-under-Σ-reflective-subuniverse-closed-modality : is-closed-under-Σ-reflective-subuniverse ( reflective-subuniverse-closed-modality) is-closed-under-Σ-reflective-subuniverse-closed-modality A B q = is-contr-Σ ( pr2 A q) ( center (pr2 A q)) ( pr2 (B (center (pr2 A q))) q) closed-under-Σ-reflective-subuniverse-closed-modality : closed-under-Σ-reflective-subuniverse (l ⊔ lQ) (l ⊔ lQ) pr1 closed-under-Σ-reflective-subuniverse-closed-modality = reflective-subuniverse-closed-modality pr2 closed-under-Σ-reflective-subuniverse-closed-modality = is-closed-under-Σ-reflective-subuniverse-closed-modality ``` ## References {{#bibliography}} {{#reference RSS20}}