如何在 Coq 中系统地将不等式归一化为 < (lt) 和 <= (le)?
How to systematically normalize inequalities to < (lt) and <= (le) in Coq?
在证明不等式(对于实数)的事实时,有<
、<=
、>
和>=
。对于这两种形式,写下并使用 theorems/lemmas 有点乏味。
目前,我首先 assert
手动将它们转换为 <
和 <=
,然后证明一个微不足道的子目标。我想知道是否有可能将所有不等式自动归一化为假设和目标中的 <
和 <=
?
gt
和 ge
是分别调用 lt
和 le
交换参数的函数。要摆脱它们,只需展开它们。
unfold gt, ge.
您可能还想展开 lt
:它是根据 le
定义的。由于gt
的定义使用了lt
,所以先展开gt
。
unfold gt, ge, lt.
你可以告诉 Coq 在试图用 auto
证明一个目标时尝试这个。
Hint Unfold gt ge lt.
在证明不等式(对于实数)的事实时,有<
、<=
、>
和>=
。对于这两种形式,写下并使用 theorems/lemmas 有点乏味。
目前,我首先 assert
手动将它们转换为 <
和 <=
,然后证明一个微不足道的子目标。我想知道是否有可能将所有不等式自动归一化为假设和目标中的 <
和 <=
?
gt
和 ge
是分别调用 lt
和 le
交换参数的函数。要摆脱它们,只需展开它们。
unfold gt, ge.
您可能还想展开 lt
:它是根据 le
定义的。由于gt
的定义使用了lt
,所以先展开gt
。
unfold gt, ge, lt.
你可以告诉 Coq 在试图用 auto
证明一个目标时尝试这个。
Hint Unfold gt ge lt.