是否有一种类似于def set_color_from_rgb_hex(self, rgb_hex):
self._color = hex_handler.get_color(rgb_hex)
的策略来证明布尔含义,例如
a1, a2, a3 = 1, 2, 3
print(a1,a2, a3)
此策略会将intros
拉入上下文,并要求证明f : nat -> bool
g : nat -> bool
Lemma f_implies_g : forall n : nat, eq_true(implb (f n) (g n)).
。
答案 0 :(得分:2)
在这种情况下,我建议使用SSReflect。因为它已经有了您需要的机械。它不使用eq_true
来将bool
嵌入Prop
中,而是使用is_true
,这是另一种选择。
From Coq Require Import ssreflect ssrbool.
Variables f g : nat -> bool.
Lemma f_implies_g n : (f n) ==> (g n).
Proof.
apply/implyP => Hfn.
Abort.
上面的代码段可以满足您的要求,将f n
和g n
隐式强制为Prop
。执行完代码段后,您会看到此
n : nat
Hfn : f n
============================
g n
但是Set Printing Coercions.
显示它确实是
n : nat
Hfn : is_true (f n)
============================
is_true (g n)
您拥有的。