2017-12-09 19 views
0

条件分岐のための簡単な構築物は、Coqの中平等テスト/ wがあります:コック:不等式テスト

Check ltac:(tryif unify 1 (S 0) then idtac "success" else idtac "fail"). (*success...*) 

<および/または<=をテストするための同様の方法はありますか?

答えて

1

標準ライブラリ(<=?<?という表記があります)のと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)であることを確認することができますが、​​ではそうではありません。

+0

'Require Import Arith。 | true => idtac "success" | false => idtac "fail" end)を使用してltac:(match(e e <?S(S e))) 「成功している」と答えたので、(当面は)問題を解決する – jaam