小编Bor*_* E.的帖子

无法猜测Coq中嵌套匹配的fix递减参数

我对术语有以下定义:

Inductive term : Type :=
  | Var : variable -> term
  | Func : function_symbol -> list term -> term.
Run Code Online (Sandbox Code Playgroud)

一个函数,该函数pos_list获取术语列表并为每个子术语返回“位置”列表。例如,对于[Var "e"; Func "f" [Var "x"; Func "i" [Var "x"]]]我来说,应该知道[[1]; [2]; [2; 1]; [2; 2]; [2; 2; 1]]每个元素在子项的树层次结构中的位置。

Definition pos_list (args:list term) : list position :=
  let fix pos_list_aux ts is head :=
    let enumeration := enumerate ts in
      let fix post_enumeration ts is head :=
        match is with
        | [] => [] …
Run Code Online (Sandbox Code Playgroud)

functional-programming coq totality

5
推荐指数
1
解决办法
1186
查看次数

如何正式确定Coq中术语缩减关系的终止?

我有一个术语重写系统(A,→),其中A是一个集合,在A上是一个中缀二元关系.给定A的x和y,x→y表示x减少到y.

为了实现某些属性,我只是用来自定义Coq.Relations.Relation_DefinitionsCoq.Relations.Relation_Operators.

现在我要形式化以下属性:

  • →正在终止,即:没有无限下行链a0→a1→......

我怎样才能在Coq中实现这一目标?

coq

3
推荐指数
1
解决办法
70
查看次数

标签 统计

coq ×2

functional-programming ×1

totality ×1