38 lines
1.1 KiB
Text
38 lines
1.1 KiB
Text
|
import algebra.e_closure
|
||
|
|
||
|
open eq
|
||
|
|
||
|
namespace relation
|
||
|
section
|
||
|
parameters {A : Type}
|
||
|
(R : A → A → Type)
|
||
|
|
||
|
local abbreviation T := e_closure R
|
||
|
|
||
|
variables ⦃a a' : A⦄ {s : R a a'} {r : T a a}
|
||
|
parameter {R}
|
||
|
|
||
|
theorem ap_ap_e_closure_elim_h₁ {B C D : Type} {f : A → B}
|
||
|
{g : B → C} (h : C → D)
|
||
|
(e : Π⦃a a' : A⦄, R a a' → f a = f a')
|
||
|
{e' : Π⦃a a' : A⦄, R a a' → g (f a) = g (f a')}
|
||
|
(p : Π⦃a a' : A⦄ (s : R a a'), ap g (e s) = e' s) (t : T a a')
|
||
|
: square (ap (ap h) (ap_e_closure_elim_h e p t))
|
||
|
(ap_e_closure_elim_h e (λa a' s, ap_compose h g (e s)) t)
|
||
|
(ap_compose h g (e_closure.elim e t))⁻¹
|
||
|
(ap_e_closure_elim_h e' (λa a' s, (ap (ap h) (p s))⁻¹) t) :=
|
||
|
begin
|
||
|
induction t,
|
||
|
apply sorry,
|
||
|
apply sorry,
|
||
|
{
|
||
|
rewrite [↑e_closure.elim, ↑ap_e_closure_elim_h, ap_con (ap h)],
|
||
|
refine (transpose !ap_compose_inv)⁻¹ᵛ ⬝h _,
|
||
|
rewrite [con_inv,inv_inv,-inv2_inv],
|
||
|
exact !ap_inv2 ⬝v square_inv2 v_0
|
||
|
},
|
||
|
apply sorry
|
||
|
end
|
||
|
end
|
||
|
end relation
|