证明¬∃x¬ (¬B(x) →¬ A( x ) ) ,∀ x( B( x )→¬C(x ) ) ,¬∀x¬C(x)→∃x(¬A(x ) )
时间: 2023-11-23 10:06:00 浏览: 58
首先,假设存在一个x使得 ¬B(x) →¬ A( x ) 为假,也就是 ¬(¬B(x) →¬ A( x ) )为真。那么根据条件推理,可以得到 ¬¬B(x) 为真,即B(x)为真,进一步根据第二个条件得到¬C(x)为真,再根据第三个条件得到存在一个x使得¬A(x)为真,这与 ¬B(x) →¬ A( x ) 的假设相矛盾,因此 ¬∃x¬ (¬B(x) →¬ A( x ) ) 为真。
接下来,考虑 ¬∀x¬C(x)→∃x(¬A(x)),可以将其转化为 ¬(¬∃x(¬A(x))→∀x¬C(x)) 的形式。由于 ¬A(x) → B(x) 等价于 ¬B(x) → A(x),因此可以将 ¬∃x(¬A(x)) 转化为 ∀x A(x)。于是原式可以转化为 ¬(∀x A(x)→∀x¬C(x))。进一步使用等价变形得到 ¬(∃x A(x) ∧ ∀x¬C(x)),也就是存在一个x使得 A(x) 为真且 C(x)为假。根据第二个条件,可以得到对于所有x,如果B(x)为真,则C(x)为假。因此可以选择一个满足 A(x) 为真且 B(x)为真的x,这样就可以满足 ¬A(x) 为真且¬C(x)为真,证明了原式的成立。
相关问题
theorem q08 : (∀ x : A, ∃ y: A, ¬ ¬ RR x y) → ¬ ¬ (∀ x : A, ∃ y : A, RR x y) :=如何使用lean3证明呢
这个定理看起来像是来自命题逻辑或者集合论,其中"q08"是一个特定的命题,"∀"代表对于所有,"∃"代表存在,"¬¬"表示双重否定,"RR"可能是某种关系或者性质,而"A"是一个集合。在Lean 3这样的依赖类型理论系统中,证明通常会涉及定义、假设、推理步骤以及最终得出结论。
在Lean 3中,证明这样一个定理可能会这样构造:
```lean
import tactic
lemma q08 (A : Type*) [decidable_rel RR] :
(∀ x : A, ∃ y : A, ¬ ¬ RR x y) → ¬ ¬ (∀ x : A, ∃ y : A, RR x y) {
begin
intro h,
-- 首先,假设h是真的,即对于所有x,都存在y使得RR x y不是假的。
assume hcontra : ¬ (∀ x : A, ∃ y : A, RR x y),
-- 接着我们尝试从这个假设hcontra推出矛盾,如果能推导出RR x y是假,则违反了h的条件。
contradiction using h,
-- 如果这里能找到矛盾,那么初始的假设hcontra就是错误的,意味着原命题(对于所有x,都存在y满足RR x y)的双重否定是真实的,
-- 因此我们可以得出结论¬ ¬ (∀ x : A, ∃ y : A, RR x y)
end.
```
这里的`[decidable_rel RR]`表明我们假设`RR`是一个可以判定真假的关系。接下来,使用`intro`引入前提假设,`contradiction`用于试图从假设中推得矛盾,从而完成证明。
``` q06 : ¬ ¬ (∀ x : A, ∀ y : A, RR x y) → ∀ x : A, ∀ y: A, ¬ ¬ RR x y := ```
这个命题是一个逻辑推理,它表示如果对于集合A中的任意两个元素x和y,关系RR都成立(即对于所有x和y,RR(x, y)为真),那么可以推断出对于A中的任意x和y,双重否定的RR(即¬¬RR(x, y))也必定为真,因为双重否定相当于肯定。
用自然语言解释,就是说如果集合A中的每对元素之间都有某种性质RR,那么这个性质是明确存在的,不会有任何例外。
续写代码的部分可以这样:
```coq
(* Coq 语言 *)
Definition q06_proof (H : ∀ x : A, ∀ y : A, RR x y) : ∀ x : A, ∀ y : A, ¬ ¬ RR x y :=
intros x y,
have H_x_y : RR x y, by apply H, (* 应用前提H得到RR(x,y) *)
refine absurd _ (not_true H_x_y), (* 双重否定等价于非真 *)
apply not_not. (* 展开双重否定 *)
Qed.
```
这段代码定义了一个证明函数`q06_proof`,通过引入假设`H_x_y`并使用`absurd`来证伪任何可能的否定,从而证明了结论`∀ x : A, ∀ y : A, ¬ ¬ RR x y`。
阅读全文