在Coq:
中有一个简单的条件分支构造和/或相等测试Check ltac:(tryif unify 1 (S 0) then idtac "success" else idtac "fail"). (*success...*)
是否有类似方法来测试<
和/或<=
?
答案 0 :(得分:1)
也许您可以使用标准库中的leb
和ltb
函数(它们包含符号<=?
和<?
)。
Require Import Arith.
Check ltac:(match (eval cbv in (2 <? 5)) with
| true => idtac "success"
| false => idtac "fail" end).
当然,如果函数的评估卡在变量上,例如,这将失败。如果您在上下文中有x
,则可以查看3 < 5
和1 < S (S x)
,但不会查看S x < S (S x)
。