如何用Coq中的参数表示选择条件

时间:2018-05-19 09:05:20

标签: coq

我有以下代码:

Definition trans := nat -> nat -> Prop.

Definition ifelse (b : nat -> nat -> bool) (P Q : trans) : trans :=
  fun s1 s2 => if b s1 s2 then P s1 s2 else Q s1 s2.

ifelse 表示如果布尔条件为真,则选择命题 P s1 s2 ,否则命题 Q s1 s2 成立。布尔条件还取决于参数 s1 s2

我想证明

的传统定理
  

如果b那么P = Q = IF不是那么Q ELSE P。

有人能给我一些如何提出这个定理的想法吗?

1 个答案:

答案 0 :(得分:2)

bPQ在代码中采用参数的事实并不重要。您可以使用以下结果:

Lemma if_swap T (b : bool) (x y : T) :
  (if b then x else y) = if negb b then y else x.
Proof. now destruct b. Qed.