Ответ 1
Чтобы подражать вашему неофициальному доказательству, я использую классическую аксиому ¬¬P → P (называемую NNPP) [1].
После его применения вам нужно доказать False
как с A: ¬ (∀ x: U, φ x), так и с B: ¬ (∃ x: U, φ x). A и B - ваше единственное оружие для вывода False
. Попробуем A [2]. Поэтому вам нужно доказать, что ∀ x: U, φ x. Для этого возьмем произвольное t₀ и попытаемся доказать, что φ t₀ выполняется [3]. Теперь, поскольку вы находитесь в классической настройке [4], вы знаете, что выполняется либо φ t₀ (и закончено [5]), либо ¬ (φ t₀). Но последнее невозможно, так как это противоречило B [6].
Require Import Classical.
Section Answer.
Variable U : Type.
Variable φ : U -> Prop.
Lemma forall_exists:
~ (forall x : U, φ x) -> exists x: U, ~(φ x).
intros A.
apply NNPP. (* [1] *)
intro B.
apply A. (* [2] *)
intro t₀. (* [3] *)
elim classic with (φ t₀). (* [4] *)
trivial. (* [5] *)
intro H.
elim B. (* [6] *)
exists t₀.
assumption.
Qed.