簡體   English   中英

Agda中的參數化利用證明

[英]Parametricity-exploiting proofs in Agda

閱讀這個答案促使我嘗試構建,然后證明多態容器函數的規范形式。 施工很簡單,但證據證明了這一點。 下面是我嘗試編寫證明的簡化版本。

簡化版本證明,由於參數性,足夠多態的函數不能僅基於參數的選擇來改變它們的行為。 假設我們有兩個參數的函數,一個是固定類型,一個是參數:

PolyFun : Set → Set _
PolyFun A = ∀ {X : Set} → A → X → A

我要證明的財產:

open import Relation.Binary.PropositionalEquality

parametricity : ∀ {A X Y} → (f : PolyFun A) → ∀ a x y → f {X} a x ≡ f {Y} a y
parametricity f a x y = {!!}

這樣的陳述是否可以從Agda內部證明?

不,在Agda中沒有參數化原則(然而![1])。

但是,您可以使用這些組合器來構建相應的自由定理的類型並假設它:

http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Libraries.LightweightFreeTheorems

[1] http://www.cse.chalmers.se/~mouling/share/PresheafModelParametericTT.pdf

暫無
暫無

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

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