Negation
Content created by Fredrik Bakke, Jonathan Prieto-Cubides and Egbert Rijke.
Created on 2022-03-05.
Last modified on 2026-05-02.
module foundation-core.negation where
Imports
open import foundation.universe-levels open import foundation-core.empty-types open import foundation-core.logical-equivalences
Idea
The
Curry–Howard interpretation
of negation in type theory is the interpretation of the proposition P ⇒ ⊥
using propositions as types. Thus, the
negation¶
of a type A is the type A → empty.
Definitions
infix 25 ¬_ ¬_ : {l : Level} → UU l → UU l ¬ A = A → empty map-neg : {l1 l2 : Level} {P : UU l1} {Q : UU l2} → (P → Q) → (¬ Q → ¬ P) map-neg f nq p = nq (f p)
Reductio ad absurdum
reductio-ad-absurdum : {l1 l2 : Level} {P : UU l1} {Q : UU l2} → P → ¬ P → Q reductio-ad-absurdum p np = ex-falso (np p)
Negation has no fixed points
no-fixed-points-neg : {l : Level} (A : UU l) → ¬ (A ↔ ¬ A) no-fixed-points-neg A e = ( λ (h : ¬ A) → h (backward-implication e h)) ( λ (a : A) → forward-implication e a a)
External links
- Logical negation at Wikidata
- negation at Lab
- Negation at Wikipedia
Recent changes
- 2026-05-02. Fredrik Bakke and Egbert Rijke. Remove dependency between
BUILTINand postulates (#1373). - 2024-09-23. Fredrik Bakke. Cantor’s theorem and diagonal argument (#1185).
- 2024-04-11. Fredrik Bakke and Egbert Rijke. Propositional operations (#1008).
- 2023-06-08. Fredrik Bakke. Remove empty
foundationmodules and replace them by their core counterparts (#644). - 2023-05-01. Fredrik Bakke. Refactor 2, the sequel to refactor (#581).