簡體   English   中英

產品類型Coq

[英]Product Type in Coq

我在將參數傳遞給coq中的產品類型時遇到問題。 我的定義看起來像,

    Definition bar (a:Type) := a->Type.

我需要定義一個函數,它接收'a'和'bar a'所做的東西並輸出它們的產品/有序對。 所以我嘗試了以下內容。

    Definition foo (a:Type)(b:bar a):= prod a b.

這給了我錯誤

術語“b”具有“bar a”類型,而預期類型為“Type”。

這里真正令人困惑的是,

    Definition foo (a:Type) := prod a (bar a). 

工作得很好。 很明顯'bar a'有'Type'類型,所以我不知道如何修復我原來的定義。 我懷疑我沒有正確傳遞變量。

要查看錯誤,請在foo定義中展開bar a

Definition foo (a:Type)(b:a->Type):= prod a b.

現在應該清楚b不是一個類型,它是從aType的函數。

而且,由於您從未獲得類型為a的對象,因此無法將b應用於任何內容,並且無法從中獲取Type

對於第二個定義,再次展開以查看其工作原理:

Definition foo (a:Type) := prod a (a->Type).

aa->Type都是產品的有效Type

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM