Skip to content

Instantly share code, notes, and snippets.

@rntz
Last active August 14, 2017 21:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rntz/ca9ff1191a664256306eaf941cdf57bd to your computer and use it in GitHub Desktop.
Save rntz/ca9ff1191a664256306eaf941cdf57bd to your computer and use it in GitHub Desktop.
open import Relation.Nullary
open import Data.Product
open import Function
module _ {i j} {A : Set i} {B : A -> Set j} where
-- ∀¬ and ¬∃ are interprovable constructively:
¬∃→∀¬ : ¬ (Σ A B) → ∀ a -> ¬ B a; ¬∃→∀¬ = curry
∀¬→¬∃ : (∀ a -> ¬ B a) -> ¬ Σ A B; ∀¬→¬∃ = uncurry
-- So in particular, ¬∀¬ and ¬¬∃ are interprovable:
¬∀¬-to-¬¬∃ : (¬ ∀ (a : A) -> ¬ B a) -> ¬ ¬ Σ A B
¬∀¬-to-¬¬∃ ¬all = ¬all ∘ ¬∃→∀¬
¬¬∃-to-¬∀¬ : ¬ ¬ Σ A B -> ¬ ∀ (a : A) -> ¬ B a
¬¬∃-to-¬∀¬ ¬¬ex = ¬¬ex ∘ ∀¬→¬∃
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment