代码之家  ›  专栏  ›  技术社区  ›  Daniel

如何在coq中为类型指定别名

  •  0
  • Daniel  · 技术社区  · 7 年前

    假设我想在coq中创建一个自然数矩阵。

    我有一个内置的coq列表,要创建一个自然数列表,我只需要写 list nat .

    为了创建一个二维列表(即矩阵),我需要 list (list nat) .

    我的问题是:与其写作 列表(list nat) ,我该怎么做才能让coq理解这个词呢 matrix 就像是 列表(list nat)


    我试过了 Notation "matrix" := list (list nat) Notation "(matrix nat)" := (list (list nat)) 等等,但似乎什么都不管用。

    1 回复  |  直到 7 年前
        1
  •  6
  •   Tej Chajed    7 年前

    你可以写一个定义: Definition matrix := list (list nat) . 定义应该只适用于大多数情况(例如,你仍然可以写 Definition foo : matrix := [nil] ,带有列表符号)。

    Notation matrix := (list (list nat)) .