来自第一原理的基本含义的证明,“精益中的定理证明”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
但没有足够的知识将其转换回战术模式,所以这无助于我的理解。