来自第一原理的基本含义的证明,“精益中的定理证明”4.4 中的一个练习,击败了我迄今为止的所有尝试:
open classical
variables (α : Type) (p q : α → Prop)
variable a : α
local attribute [instance] classical.prop_decidable
theorem T08R : (¬ ∀ x, p x) → (∃ x, ¬ p x) :=
begin
intro nAxpx,
--by_contradiction nExnpx,
--apply nAxpx,
end
之后intro我不知道怎么用nAxpx才能走得更远。我想过by_contradiction,但那只引入了否定存在nExnpx,不能与 一起使用cases,所以我不能产生一个x : α。排除中间似乎也无济于事。我可以用mathlib战术来证明,
theorem T08R : (¬ ∀ x, p x) → (∃ x, ¬ p x) :=
begin
push_neg,
tauto
end
但没有足够的知识将其转换回战术模式,所以这无助于我的理解。