相关疑难解决方法(0)

在Coq中实现向量加法

在一些依赖类型的语言(例如Idris)中实现向量添加是相当简单的.根据维基百科上示例:

import Data.Vect

%default total

pairAdd : Num a => Vect n a -> Vect n a -> Vect n a
pairAdd Nil       Nil       = Nil
pairAdd (x :: xs) (y :: ys) = x + y :: pairAdd xs ys
Run Code Online (Sandbox Code Playgroud)

(注意Idris的整体检查器如何自动推断添加Nil和非Nil向量是逻辑上不可能的.)

我正在尝试使用自定义向量实现在Coq中实现等效功能,尽管与官方Coq库中提供的非常相似:

Set Implicit Arguments.

Inductive vector (X : Type) : nat -> Type :=
  | vnul : vector X 0 
  | vcons {n : nat} (h : X) …
Run Code Online (Sandbox Code Playgroud)

vector coq idris convoy-pattern

4
推荐指数
1
解决办法
473
查看次数

标签 统计

convoy-pattern ×1

coq ×1

idris ×1

vector ×1