相关疑难解决方法(0)

Coq - 在if ... then ... else中使用Prop(True | False)

我对Coq很新.

我正在尝试实现插入排序的通用版本.我正在实现的是将Comparator作为参数的模块.此Comparator实现比较运算符(例如is_eq,is_le,is_neq等).

在插入排序中,为了插入,我必须比较输入列表中的两个元素,并根据比较结果将元素插入到正确的位置.

我的问题是比较运算符的实现是type -> type -> prop(我需要它们像这样实现其他类型/证明).type -> type -> bool如果可以避免,我宁愿不创建运算符的版本.

有没有办法将True | False道具转换为布尔用于if ... then ... else条款?

比较器模块类型:

Module Type ComparatorSig.

  Parameter X: Set.
  Parameter is_eq : X -> X -> Prop.
  Parameter is_le : X -> X -> Prop.
  Parameter is_neq :  X -> X -> Prop.

  Infix "=" := is_eq (at level 70).
  Infix "<>" := (~ is_eq) (at level 70).
  Infix "<=" := is_le (at level 70). …
Run Code Online (Sandbox Code Playgroud)

coq

7
推荐指数
1
解决办法
5433
查看次数

标签 统计

coq ×1