# Subterminal types ```agda module foundation.subterminal-types where ``` <details><summary>Imports</summary> ```agda open import foundation.action-on-identifications-functions open import foundation.unit-type open import foundation.universe-levels open import foundation-core.contractible-types open import foundation-core.embeddings open import foundation-core.equivalences open import foundation-core.function-types open import foundation-core.identity-types open import foundation-core.propositions ``` </details> ## Idea A type is said to be {{#concept "subterminal" Agda=is-subterminal}} if it [embeds](foundation-core.embeddings.md) into the [unit type](foundation.unit-type.md). A type is subterminal if and only if it is a [proposition](foundation-core.propositions.md). ## Definition ```agda module _ {l : Level} (A : UU l) where is-subterminal : UU l is-subterminal = is-emb (terminal-map A) ``` ## Properties ### A type is subterminal if and only if it is a proposition ```agda module _ {l : Level} {A : UU l} where abstract is-subterminal-is-proof-irrelevant : is-proof-irrelevant A → is-subterminal A is-subterminal-is-proof-irrelevant H = is-emb-is-emb ( λ x → is-emb-is-equiv (is-equiv-is-contr _ (H x) is-contr-unit)) abstract is-subterminal-all-elements-equal : all-elements-equal A → is-subterminal A is-subterminal-all-elements-equal = is-subterminal-is-proof-irrelevant ∘ is-proof-irrelevant-all-elements-equal abstract is-subterminal-is-prop : is-prop A → is-subterminal A is-subterminal-is-prop = is-subterminal-all-elements-equal ∘ eq-is-prop' abstract is-prop-is-subterminal : is-subterminal A → is-prop A is-prop-is-subterminal H x y = is-contr-is-equiv ( star = star) ( ap (terminal-map A)) ( H x y) ( is-prop-unit star star) abstract eq-is-subterminal : is-subterminal A → all-elements-equal A eq-is-subterminal = eq-is-prop' ∘ is-prop-is-subterminal abstract is-proof-irrelevant-is-subterminal : is-subterminal A → is-proof-irrelevant A is-proof-irrelevant-is-subterminal H = is-proof-irrelevant-all-elements-equal (eq-is-subterminal H) ``` ## Table of files about propositional logic The following table gives an overview of basic constructions in propositional logic and related considerations. {{#include tables/propositional-logic.md}}