我有以下代码:
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。
有人能给我一些如何提出这个定理的想法吗?
答案 0 :(得分:2)
b
,P
和Q
在代码中采用参数的事实并不重要。您可以使用以下结果:
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.