這是一個後續問題Getting path induction to work in Agda路徑誘導暗示
不知何時該構造可能更有表現力。在我看來,我們總能表達同樣的,像這樣:
f : forall {A} -> {x y : A} -> x == y -> "some type"
f refl = instance of "some type" for p == refl
這裏阿格達給予其相同c : (x : A) -> C refl
從這個問題的例子會做路徑誘導:
pathInd : forall {A} -> (C : {x y : A} -> x == y -> Set)
-> (c : (x : A) -> C refl)
-> {x y : A} -> (p : x == y) -> C p
看來這功能同構於:
f' : forall {A} -> {x y : A} -> x == y -> "some type"
f' = pathInd (\p -> "some type") (\x -> f {x} refl)
是這兩種方式(f
VS pathInd
)在功率相同的?
這可能會有所幫助:http://homotopytypetheory.org/2011/04/10/just-kidding-understanding-identity-elimination-in-homotopy-type-theory/ – user3237465 2014-10-30 13:58:01
@ user3237465是的,我正在閱讀。然而我的問題是關於Agda爲'f'做路徑歸納。我沒有看到'pathInd'的用法,就像在HoTT中一樣被表示爲一個函數,除非它比'f'更普遍。換句話說,既然使用'pathInd',需要複製同樣的事情來定義'f',我沒有看到引入'pathInd'是否有任何實際的可行性,除了練習,這當然是一個優點。 – 2014-10-30 14:14:38