我從「Agda的殘酷介紹」中獲取此信息http://oxij.org/note/BrutalDepTypes/ 假設我們想要在偶數上定義除以二的數。我們可以做到這一點爲: div : (n : N) -> even n -> N
div zero p = zero
div (succ (succ n)) p= succ (div n p)
div (succ zero)()
N是自然數,
從我收集的關於agda的信息中我可以得出結論∀ {A}相當於{A : Set}。現在我注意到, flip : ∀ {A B C} -> (A -> B -> C) -> (B -> A -> C)
是無效的(一些關於設置\歐米茄這又似乎是一些內部的東西,但 flip : {A B C : Set} -> (A -> B -> C) -> (B -> A -> C)
是罰款。任何人都可以清除
我在學習Agda by tutorial,現在我正在閱讀有關從屬對。 所以,這是代碼的片段: data Σ (A : Set) (B : A → Set) : Set where
_,_ : (a : A) → (b : B a) → Σ A B
infixr 4 _,_
Σprojₗ : {A : Set}{B : A → Set} → Σ A B → A
Σprojₗ (a
這裏是我瞭解Relation.Binary.PropositionalEquality.TrustMe.trustMe:它似乎採取任意x和y,並且: 如果x和y是真正平等的,它成爲refl 如果他們不,它像postulate lie : x ≡ y 。 現在,在後一種情況下,它可以很容易地阿格達不一致,但是這本身是沒有這麼多的問題:它只是意味着使用trustMe任何證明是訴諸權威證明。此外,儘管你
阿格達2.3.2.1無法看到下面的函數終止: open import Data.Nat
open import Data.List
open import Relation.Nullary
merge : List ℕ → List ℕ → List ℕ
merge (x ∷ xs) (y ∷ ys) with x ≤? y
... | yes p = x ∷ merge xs (y