lean2/hott/hit/cylinder.hlean

33 lines
1,008 B
Text

/-
Copyright (c) 2015 Floris van Doorn. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Module: hit.cylinder
Authors: Floris van Doorn
Mapping cylinders
-/
/- The hit mapping cylinder is primitive, declared in init.hit. -/
open eq
namespace cylinder
variables {A B : Type} {f : A → B}
protected definition elim {P : Type} (Pbase : B → P) (Ptop : A → P)
(Pseg : Π(a : A), Ptop a = Pbase (f a)) {b : B} (x : cylinder f b) : P :=
cylinder.rec Pbase Ptop (λa, !tr_constant ⬝ Pseg a) x
protected definition elim_on [reducible] {P : Type} {b : B} (x : cylinder f b)
(Pbase : B → P) (Ptop : A → P)
(Pseg : Π(a : A), Ptop a = Pbase (f a)) : P :=
cylinder.elim Pbase Ptop Pseg x
definition elim_seg {P : Type} (Pbase : B → P) (Ptop : A → P)
(Pseg : Π(a : A), Ptop a = Pbase (f a)) {b : B} (x : cylinder f b) (a : A) :
ap (elim Pbase Ptop Pseg) (seg f a) = sorry ⬝ Pseg a ⬝ sorry :=
sorry
end cylinder