如何在Coq中将
negb true
重写为false
我一直在图书馆中搜索将negb true
重写为false
的简单方法。
然而,我还没有找到任何有用的东西。
我知道simpl.
,但我更喜欢更基本的语法。
答案 0 :(得分:4)
搜索引力时,搜索引擎仅查看导入的模块。
这就是你第一次需要
的原因Require Import Bool.
然后
Search (negb _ = false).
揭示了引理
negb_false_iff: forall b : bool, negb b = false <-> b = true
如果Require Import Setoid
,您可以使用引理进行重写。
Goal negb true = false.
rewrite negb_false_iff. reflexivity. Qed.
您可能不想使用simpl
,因为您在某些情况下negb true
并且simpl
弄乱了您的目标/假设,因为它展开太多而且创造了大量难以理解的术语。您可以通过这种方式缩小simpl
适用的上下文:
simpl (negb true). (* rewrites `negb true` to `false` in the goal *)
或
simpl (negb true) in *. (* rewrites `negb true` in the goal and hypotheses *)
答案 1 :(得分:1)