簡體   English   中英

使用coqtop檢查表達式的類型

[英]Use coqtop to check type of expression

我對與邏輯連接詞等效的Coq實體的類型感到好奇。 為了具體起見,讓我們說->/\\ 如果->是一個神奇的非[一流實體],那么我們僅使用/\\作為實體。 我很好奇它的域名是Prop還是Set。

是否可以使用coqtop獲取表達式的類型?

我想用ghci做類似以下的事情。

> ghci
:GHCi, version 8.6.3:  :? for help
Prelude> :t (**)
(**) :: Floating a => a -> a -> a

/\\->都是符號,而不是Coq中的實際常量。 要找到它們的簽名,您必須首先確定它們的符號。 運行命令Locate "/\\". 應該按照

Notation
"A /\ B" := and A B : type_scope
(default interpretation)

所以/\\是常數and的表示法。 然后,您可以使用命令Check來找到其類型。 Check and.

and
     : Prop -> Prop -> Prop

因此and需要兩個Prop並給出一個Prop

類似地, A -> Bforall _: A, B的符號forall _: A, B and不同, forall不是常量,而是Coq語言的關鍵字,因此您不能使用Check forall. 獲得簽名。 在這種情況下,您可以查看產品的參考手冊,然后

表達式forall ident : type, term表示術語term上type type的變量ident的乘積。 至於抽象, forall之后是一個綁定器列表,並且多個變量上的乘積等效於單變量乘積的迭代。 請注意,該term旨在作為一種類型。

因此,這意味着AB都應該是類型,這意味着它們可以是PropSetType任意Universe的元素。

暫無
暫無

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

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