2014-08-12 00:35:25 +00:00
|
|
|
|
-- Copyright (c) 2014 Microsoft Corporation. All rights reserved.
|
|
|
|
|
-- Released under Apache 2.0 license as described in the file LICENSE.
|
2014-10-23 05:24:31 +00:00
|
|
|
|
-- Author: Jeremy Avigad, Jakob von Raumer
|
2014-08-12 00:35:25 +00:00
|
|
|
|
-- Ported from Coq HoTT
|
|
|
|
|
|
|
|
|
|
-- TODO: move this to an "axioms" folder
|
|
|
|
|
-- TODO: take a look at the Coq tricks
|
|
|
|
|
import .path .equiv
|
2014-09-09 20:20:04 +00:00
|
|
|
|
open path
|
2014-08-12 00:35:25 +00:00
|
|
|
|
|
|
|
|
|
-- Funext
|
|
|
|
|
-- ------
|
|
|
|
|
|
|
|
|
|
axiom funext {A : Type} {P : A → Type} (f g : Π x : A, P x) : IsEquiv (@apD10 A P f g)
|
|
|
|
|
|
|
|
|
|
definition path_forall {A : Type} {P : A → Type} (f g : Π x : A, P x) : f ∼ g → f ≈ g :=
|
2014-11-04 14:53:21 +00:00
|
|
|
|
@IsEquiv.inv _ _ _ (funext f g)
|
2014-08-12 00:35:25 +00:00
|
|
|
|
|
|
|
|
|
definition path_forall2 {A B : Type} {P : A → B → Type} (f g : Π x y, P x y) :
|
|
|
|
|
(Πx y, f x y ≈ g x y) → f ≈ g :=
|
|
|
|
|
λE, path_forall f g (λx, path_forall (f x) (g x) (E x))
|