代码之家  ›  专栏  ›  技术社区  ›  Mei Zhang

定义“依赖类型”模函子

coq
  •  1
  • Mei Zhang  · 技术社区  · 8 年前

    如何生成依赖类型的函子(因为缺少更好的术语)?我想做如下事情:

    Module Type Element.
      ...
    End Element.
    
    Module Wrapper (E : Element).
      ...
    End Wrapper.
    
    Module DepentlyTypedFunctor (E : Element) (W : Wrapper E).
      ...
    End DepentlyTypedFunctor.
    

    最后一个定义不起作用,我想我正在寻找正确的语法,如果可能的话。我做这种定义的动机是在里面定义定理 DependentlyTypedFunctor 对所有人都有用 Wrappers 包含的任何实例 Element ,类似于定义向量的定理, forall (E : Element) (W : Wrapper E), some_proposition E W

    1 回复  |  直到 8 年前
        1
  •  3
  •   Tej Chajed    8 年前

    我想你只是想 Wrapper Module Type 。如果它不是模块类型,那么只有一个这样的模块,您只需编写 DependentlyTypedFunctor 结束 E 。如果您有 Element 但是,在这种情况下 包装器 可能彼此不相等。

    如果这是一个问题,您可能只想使用记录而不是模块。