[英]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.