首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能破坏存在于假设中

不能破坏存在于假设中
EN

Stack Overflow用户
提问于 2017-04-13 15:08:05
回答 1查看 2K关注 0票数 2

有谁能向我解释为什么同样的策略(毁灭)适用于同样的假设(双射f)在第一个引理中而不是在第二个引理中?另外,我应该做些什么来修复它呢?我想这与第二个引理中的混合支撑和类型有关,但我不明白这里到底发生了什么。提前谢谢你。

代码语言:javascript
复制
Require Import Setoid.

Definition injective {A B: Type} (f: A->B) :=
forall x y: A, f x = f y -> x = y.

Definition bijective {A B: Type} (f: A->B) :=
exists g: B->A, (forall x: A, g (f x) = x) /\ (forall y: B, f (g y) = y).

Definition decidable (t: Type): Type:=
(forall x y: t, {x=y}+{x<>y}).

Lemma bijective_to_injective:
forall t1 t2: Type,
forall f: t1 -> t2,
bijective f -> injective f.
Proof.
intros t1 t2 f H1.
destruct H1 as [g [H1 H2]]. (* <--- WORKS HERE *)
intros x y H3.
rewrite <- H1.
rewrite <- H1 at 1.
rewrite H3.
reflexivity.
Qed.

Lemma bijective_dec:
forall t1 t2: Type,
forall f: t1 -> t2,
bijective f ->
decidable t1 ->
decidable t2.
Proof.
intros t1 t2 f H1 H2 x y.
destruct H1 as [g [H1 H2]]. (* <--- DOESN´T WORK HERE *)
Qed.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-13 21:20:19

实际上,您的问题是您需要为bijective提供一个所谓的“信息性定义”,也就是说,您可以在其中提取实际的证人,例如:

代码语言:javascript
复制
{ g: B -> A | cancel f g /\ cancel g f }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43395845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档