lean2/hott/types/pathover.hlean
2015-06-04 20:13:53 -04:00

60 lines
2.2 KiB
Text

/-
Copyright (c) 2015 Floris van Doorn. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Author: Floris van Doorn
Pathovers.
Note that the basic definitions are in init.pathover
-/
import types.squareover
open eq equiv is_equiv equiv.ops
namespace eq
variables {A A' : Type} {B B' : A → Type} {C : Πa, B a → Type}
{a a₂ a₃ a₄ : A} {p : a = a₂} {p₂ : a₂ = a₃} {p₃ : a₃ = a₄}
{b b' : B a} {b₂ b₂' : B a₂} {b₃ : B a₃} {b₄ : B a₄}
{c : C a b} {c₂ : C a₂ b₂}
{q q' : a =[p] a₂}
--check λa, pathover (C a) (fc a) (h a) (gc a)
-- λa, pathover P (b a) (p a) (b' a)
-- pathover P b p b'
--set_option pp.notation false
--in this version A' does not depend on A
definition pathover_pathover_fl {a' a₂' : A'} {p : a' = a₂'} {a₂ : A} {f : A' → A}
{b : Πa, B (f a)} {b₂ : B a₂} {q : Π(a' : A'), f a' = a₂} (r : pathover B (b a') (q a') b₂)
(r₂ : pathover B (b a₂') (q a₂') b₂)
(s : squareover B (naturality q p) r r₂ (pathover_ap B f (apdo b p)) (!ap_constant⁻¹ ▸ idpo))
: r =[p] r₂ :=
by cases p; esimp at s; apply pathover_idp_of_eq; apply eq_of_vdeg_squareover; exact s
-- definition pathover_pathover {ba ba' : Πa, B a} {pa : Πa, ba a = ba a}
-- {ca : Πa, C a (ba a)} {ca' : Πa, C a (ba' a)}
-- {qa : ba a =[pa a] ba' a} {qa₂ : ba a₂ =[pa a₂] ba' a₂}
-- (r : squareover _ _ _ _ _ _) : qa =[p] qa₂ :=
-- sorry
-- definition pathover_pathover_constant_FlFr {C : A → A' → Type} {ba ba' : A → A'} {pa : Πa, ba a = ba a}
-- {ca : Πa, C a (ba a)} {ca' : Πa, C a (ba' a)}
-- {qa : ba a =[pa a] ba' a} {qa₂ : ba a₂ =[pa a₂] ba' a₂}
-- (r : squareover (λa, C a _) _ _ _ _ _) : pathover _ qa p qa₂ := sorry
-- definition pathover_pathover_constant_l {C : A → A' → Type} {ba ba' : A → A'} {pa : Πa, ba a = ba a}
-- {ca : Πa, C a (ba a)} {ca' : Πa, C a (ba' a)}
-- {qa : ba a =[pa a] ba' a} {qa₂ : ba a₂ =[pa a₂] ba' a₂}
-- (r : squareover (λa, C a _) _ _ _ _ _) : qa =[p] qa₂ :=
-- begin
-- check_expr qa =[p] qa₂
-- end
end eq