簡體   English   中英

在Agda中鍵入Hierarchy

[英]Type Hierarchy in Agda

我試圖找出類型層次結構如何在Agda中工作。

假設我定義了一個集合類型X:

X : Set 

然后繼續構建歸納型

data Y : X -> Set where

什么是X -> Set 是設置還是類型?

謝謝!

好吧,為什么不問阿格達呢? 我將為Emacs使用出色的Agda模式。 我們從:

module Hierarchy where

postulate
  X : Set

data Y : X → Set where
  -- empty

我們必須使用Cc Cl加載文件; 這個typechecks文件,轉? 進入洞,語法高亮等等。

現在,有一個命令“推斷(演繹)類型”可以通過Cc Cd ,所以讓我們使用:

> C-c C-d
Expression:
> Y
X → Set

對,這是有道理的。 我們定義了Y : X → Set ,所以它應該不足為奇。 我們再問一遍:

> C-c C-d
Expression:
> X → Set
Set₁

所以,你有它: Y : X → Set : Set₁


雖然第一部分回答了問題,並向您展示了如何自己檢查這些東西,但每次這樣做都會變得乏味,至少。 以下是它的工作原理:

為避免悖論,我們要求

Set i : Set (i + 1)

它為您提供了Set的(無限)層次結構。 如果你已經Set : Set (這阿格達通過允許--type-in-type標志),可以推導出矛盾,比如這一個

這也為我們提供了一個簡單的函數規則:

A : Set i
B : A → Set j

(a : A) → B a : Set (max i j)

將此應用於您的示例:

X   : Set
Set : Set₁

X → Set : Set (max 0 1)
X → Set : Set₁

暫無
暫無

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

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