小编Dan*_*nke的帖子

Coq:为什么我不能从Decidable的实例中得到明确的证人?

我首先定义一个辅助函数来构建Decidable P给定证明的实例{P} + {~P}:

Require Import Coq.Classes.DecidableClass.

Definition derive_decidable : forall P : Prop, {P} + {~P} -> Decidable P.
intros P H; destruct H; 
[ apply (Build_Decidable P true) | apply (Build_Decidable P false) ];
intuition congruence.
Qed.
Run Code Online (Sandbox Code Playgroud)

现在我定义一个愚蠢的类型并给它一个愚蠢的Decidable实例:

Inductive Color := red | green | blue.

Instance Color_eqdec (x y : Color) : Decidable (x = y).
apply derive_decidable; decide equality.
Qed.
Run Code Online (Sandbox Code Playgroud)

现在我希望能够使用这个实例来证明关于颜色的命题,但是我得到了一个令人惊讶的结果.后

Lemma green_neq_blue : green <> blue.
apply (Decidable_complete_alt _ (Color_eqdec green …
Run Code Online (Sandbox Code Playgroud)

coq

1
推荐指数
1
解决办法
75
查看次数

标签 统计

coq ×1