Complements of De Morgan subtypes
Content created by Fredrik Bakke.
Created on 2025-01-07.
Last modified on 2025-01-07.
module logic.complements-de-morgan-subtypes where
Imports
open import foundation.complements-subtypes open import foundation.decidable-subtypes open import foundation.dependent-pair-types open import foundation.double-negation open import foundation.full-subtypes open import foundation.involutions open import foundation.negation open import foundation.postcomposition-functions open import foundation.powersets open import foundation.propositional-truncations open import foundation.subtypes open import foundation.unions-subtypes open import foundation.universe-levels open import foundation-core.function-types open import logic.complements-decidable-subtypes open import logic.de-morgan-propositions open import logic.de-morgan-subtypes
Idea
The
complement¶
of a De Morgan subtype B ⊆ A
consists of the
elements that are not in B
.
Definition
Complements of De Morgan subtypes
complement-de-morgan-subtype : {l1 l2 : Level} {A : UU l1} → de-morgan-subtype l2 A → de-morgan-subtype l2 A complement-de-morgan-subtype P x = neg-De-Morgan-Prop (P x)
Properties
Complement of De Morgan subtypes are decidable
is-decidable-complement-de-morgan-subtype : {l1 l2 : Level} {A : UU l1} (P : de-morgan-subtype l2 A) → is-decidable-subtype ( subtype-de-morgan-subtype (complement-de-morgan-subtype P)) is-decidable-complement-de-morgan-subtype P = is-de-morgan-de-morgan-subtype P
The union of the complement of a subtype P
with its double complement is the full subtype if and only if P
is De Morgan
module _ {l1 l2 : Level} {A : UU l1} where is-full-union-complement-subtype-double-complement-subtype : (P : subtype l2 A) → is-de-morgan-subtype P → is-full-subtype ( union-subtype ( complement-subtype P) ( complement-subtype (complement-subtype P))) is-full-union-complement-subtype-double-complement-subtype P = is-full-union-subtype-complement-subtype (complement-subtype P) is-de-morgan-subtype-is-full-union-complement-subtype-double-complement-subtype : (P : subtype l2 A) → is-full-subtype ( union-subtype ( complement-subtype P) ( complement-subtype (complement-subtype P))) → is-de-morgan-subtype P is-de-morgan-subtype-is-full-union-complement-subtype-double-complement-subtype P = is-decidable-subtype-is-full-union-subtype-complement-subtype ( complement-subtype P) is-full-union-subtype-complement-de-morgan-subtype : (P : de-morgan-subtype l2 A) → is-full-subtype ( union-subtype ( complement-subtype (subtype-de-morgan-subtype P)) ( complement-subtype ( complement-subtype (subtype-de-morgan-subtype P)))) is-full-union-subtype-complement-de-morgan-subtype P = is-full-union-complement-subtype-double-complement-subtype ( subtype-de-morgan-subtype P) ( is-de-morgan-de-morgan-subtype P)
Recent changes
- 2025-01-07. Fredrik Bakke. Logic (#1226).