簡體   English   中英

您如何在Coq中定義有序對?

[英]How do you define an ordered pair in Coq?

我是一名程序員,但是對Coq來說是個超級新手,並且試圖弄清楚這些教程沒有太大的成功。 我的問題很簡單:如何在Coq中定義一個有序對(自然數)?

這是我的嘗試:

Variable node1 : nat.
Variable node2 : nat.
Inductive edge : type := node1 -> node2.

(請注意,“ edge”是我用於有序對的名稱。)第三行給出了語法錯誤,提示我需要一個“。”。 在某處的句子中。

我不知道該怎么辦。 任何幫助將是巨大的! (此外,有沒有一個教程可以幫助教授非常基本的Coq概念,而不是那些在Google搜索“ Coq教程”時容易看到的概念?)

您只需使用Coq定義即可輕松完成此操作:

Definition ordered_pair := (nat * nat) % type.

這將ordered_pair引入為(nat * nat) % type的同義詞(注意, % type是使Coq在類型范圍內而不是自然類型中解釋*所必需的)。 真正的力量在於*的使用:

Inductive prod (A B:Type) : Type :=
  pair : A -> B -> prod A B.

(來自http://coq.inria.fr/stdlib/Coq.Init.Datatypes.html

您可以從那里獲得所有必要的消除原則,等等。

暫無
暫無

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

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