[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
⊢ F →ₗ[R] E b
[PROOFSTEP]
refine' IsLinearMap.mk' (e.symm b) _
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
⊢ IsLinearMap R (Pretrivialization.symm e b)
[PROOFSTEP]
by_cases hb : b ∈ e.baseSet
[GOAL]
case pos
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
⊢ IsLinearMap R (Pretrivialization.symm e b)
[PROOFSTEP]
exact
  (((e.linear R hb).mk' _).inverse (e.symm b) (e.symm_apply_apply_mk hb) fun v ↦
      congr_arg Prod.snd <| e.apply_mk_symm hb v).isLinear
[GOAL]
case neg
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
hb : ¬b ∈ e.baseSet
⊢ IsLinearMap R (Pretrivialization.symm e b)
[PROOFSTEP]
rw [e.coe_symm_of_not_mem hb]
[GOAL]
case neg
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
hb : ¬b ∈ e.baseSet
⊢ IsLinearMap R 0
[PROOFSTEP]
exact (0 : F →ₗ[R] E b).isLinear
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
v : F
⊢ AddHom.toFun
      {
          toAddHom :=
            { toFun := fun y => (↑e { proj := b, snd := y }).snd,
              map_add' :=
                (_ :
                  ∀ (v w : E b),
                    (↑e { proj := b, snd := v + w }).snd =
                      (↑e { proj := b, snd := v }).snd + (↑e { proj := b, snd := w }).snd) },
          map_smul' :=
            (_ :
              ∀ (c : R) (v : E b),
                (↑e { proj := b, snd := c • v }).snd = c • (↑e { proj := b, snd := v }).snd) }.toAddHom
      (Pretrivialization.symm e b v) =
    v
[PROOFSTEP]
simp_rw [e.apply_mk_symm hb v]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
⊢ ↑(Pretrivialization.linearMapAt R e b) = fun y => if b ∈ e.baseSet then (↑e { proj := b, snd := y }).snd else 0
[PROOFSTEP]
rw [Pretrivialization.linearMapAt]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
⊢ ↑(if hb : b ∈ e.baseSet then ↑(linearEquivAt R e b hb) else 0) = fun y =>
    if b ∈ e.baseSet then (↑e { proj := b, snd := y }).snd else 0
[PROOFSTEP]
split_ifs
[GOAL]
case pos
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
h✝ : b ∈ e.baseSet
⊢ ↑↑(linearEquivAt R e b h✝) = fun y => (↑e { proj := b, snd := y }).snd
[PROOFSTEP]
rfl
[GOAL]
case neg
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
h✝ : ¬b ∈ e.baseSet
⊢ ↑0 = fun y => 0
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
⊢ ↑(Pretrivialization.linearMapAt R e b) = fun y => (↑e { proj := b, snd := y }).snd
[PROOFSTEP]
simp_rw [coe_linearMapAt, if_pos hb]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
y : E b
⊢ ↑(Pretrivialization.linearMapAt R e b) y = if b ∈ e.baseSet then (↑e { proj := b, snd := y }).snd else 0
[PROOFSTEP]
rw [coe_linearMapAt]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
y : E b
⊢ ↑(Pretrivialization.symmₗ R e b) (↑(Pretrivialization.linearMapAt R e b) y) = y
[PROOFSTEP]
rw [e.linearMapAt_def_of_mem hb]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
y : E b
⊢ ↑(Pretrivialization.symmₗ R e b) (↑↑(linearEquivAt R e b hb) y) = y
[PROOFSTEP]
exact (e.linearEquivAt R b hb).left_inv y
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
y : F
⊢ ↑(Pretrivialization.linearMapAt R e b) (↑(Pretrivialization.symmₗ R e b) y) = y
[PROOFSTEP]
rw [e.linearMapAt_def_of_mem hb]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
y : F
⊢ ↑↑(linearEquivAt R e b hb) (↑(Pretrivialization.symmₗ R e b) y) = y
[PROOFSTEP]
exact (e.linearEquivAt R b hb).right_inv y
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : Semiring R
inst✝⁷ : TopologicalSpace F
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
⊢ ↑(Trivialization.linearMapAt R e b) = fun y => (↑e { proj := b, snd := y }).snd
[PROOFSTEP]
simp_rw [coe_linearMapAt, if_pos hb]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : Semiring R
inst✝⁷ : TopologicalSpace F
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
y : E b
⊢ ↑(Trivialization.linearMapAt R e b) y = if b ∈ e.baseSet then (↑e { proj := b, snd := y }).snd else 0
[PROOFSTEP]
rw [coe_linearMapAt]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
⊢ Continuous
    (↑(if hb : b ∈ e.baseSet ∩ e'.baseSet then
            LinearEquiv.trans (LinearEquiv.symm (linearEquivAt R e b (_ : b ∈ e.baseSet)))
              (linearEquivAt R e' b (_ : b ∈ e'.baseSet))
          else LinearEquiv.refl R F)).toAddHom.toFun
[PROOFSTEP]
by_cases hb : b ∈ e.baseSet ∩ e'.baseSet
[GOAL]
case pos
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
⊢ Continuous
    (↑(if hb : b ∈ e.baseSet ∩ e'.baseSet then
            LinearEquiv.trans (LinearEquiv.symm (linearEquivAt R e b (_ : b ∈ e.baseSet)))
              (linearEquivAt R e' b (_ : b ∈ e'.baseSet))
          else LinearEquiv.refl R F)).toAddHom.toFun
[PROOFSTEP]
rw [dif_pos hb]
[GOAL]
case pos
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
⊢ Continuous
    (↑(LinearEquiv.trans (LinearEquiv.symm (linearEquivAt R e b (_ : b ∈ e.baseSet)))
            (linearEquivAt R e' b (_ : b ∈ e'.baseSet)))).toAddHom.toFun
[PROOFSTEP]
refine' (e'.continuousOn.comp_continuous _ _).snd
[GOAL]
case pos.refine'_1
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
⊢ Continuous fun a => { proj := b, snd := ↑↑(LinearEquiv.symm (linearEquivAt R e b (_ : b ∈ e.baseSet))) a }
[PROOFSTEP]
exact e.continuousOn_symm.comp_continuous (Continuous.Prod.mk b) fun y => mk_mem_prod hb.1 (mem_univ y)
[GOAL]
case pos.refine'_2
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
⊢ ∀ (x : F), { proj := b, snd := ↑↑(LinearEquiv.symm (linearEquivAt R e b (_ : b ∈ e.baseSet))) x } ∈ e'.source
[PROOFSTEP]
exact fun y => e'.mem_source.mpr hb.2
[GOAL]
case neg
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : ¬b ∈ e.baseSet ∩ e'.baseSet
⊢ Continuous
    (↑(if hb : b ∈ e.baseSet ∩ e'.baseSet then
            LinearEquiv.trans (LinearEquiv.symm (linearEquivAt R e b (_ : b ∈ e.baseSet)))
              (linearEquivAt R e' b (_ : b ∈ e'.baseSet))
          else LinearEquiv.refl R F)).toAddHom.toFun
[PROOFSTEP]
rw [dif_neg hb]
[GOAL]
case neg
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : ¬b ∈ e.baseSet ∩ e'.baseSet
⊢ Continuous (↑(LinearEquiv.refl R F)).toAddHom.toFun
[PROOFSTEP]
exact continuous_id
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
⊢ Continuous
    (if hb : b ∈ e.baseSet ∩ e'.baseSet then
        LinearEquiv.trans (LinearEquiv.symm (linearEquivAt R e b (_ : b ∈ e.baseSet)))
          (linearEquivAt R e' b (_ : b ∈ e'.baseSet))
      else LinearEquiv.refl R F).invFun
[PROOFSTEP]
by_cases hb : b ∈ e.baseSet ∩ e'.baseSet
[GOAL]
case pos
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
⊢ Continuous
    (if hb : b ∈ e.baseSet ∩ e'.baseSet then
        LinearEquiv.trans (LinearEquiv.symm (linearEquivAt R e b (_ : b ∈ e.baseSet)))
          (linearEquivAt R e' b (_ : b ∈ e'.baseSet))
      else LinearEquiv.refl R F).invFun
[PROOFSTEP]
rw [dif_pos hb]
[GOAL]
case pos
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
⊢ Continuous
    (LinearEquiv.trans (LinearEquiv.symm (linearEquivAt R e b (_ : b ∈ e.baseSet)))
        (linearEquivAt R e' b (_ : b ∈ e'.baseSet))).invFun
[PROOFSTEP]
refine' (e.continuousOn.comp_continuous _ _).snd
[GOAL]
case pos.refine'_1
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
⊢ Continuous fun a => { proj := b, snd := ↑(LinearEquiv.toEquiv (linearEquivAt R e' b (_ : b ∈ e'.baseSet))).symm a }
case pos.refine'_2
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
⊢ ∀ (x : F), { proj := b, snd := ↑(LinearEquiv.toEquiv (linearEquivAt R e' b (_ : b ∈ e'.baseSet))).symm x } ∈ e.source
[PROOFSTEP]
exact e'.continuousOn_symm.comp_continuous (Continuous.Prod.mk b) fun y => mk_mem_prod hb.2 (mem_univ y)
[GOAL]
case pos.refine'_2
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
⊢ ∀ (x : F), { proj := b, snd := ↑(LinearEquiv.toEquiv (linearEquivAt R e' b (_ : b ∈ e'.baseSet))).symm x } ∈ e.source
[PROOFSTEP]
exact fun y => e.mem_source.mpr hb.1
[GOAL]
case neg
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : ¬b ∈ e.baseSet ∩ e'.baseSet
⊢ Continuous
    (if hb : b ∈ e.baseSet ∩ e'.baseSet then
        LinearEquiv.trans (LinearEquiv.symm (linearEquivAt R e b (_ : b ∈ e.baseSet)))
          (linearEquivAt R e' b (_ : b ∈ e'.baseSet))
      else LinearEquiv.refl R F).invFun
[PROOFSTEP]
rw [dif_neg hb]
[GOAL]
case neg
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : ¬b ∈ e.baseSet ∩ e'.baseSet
⊢ Continuous (LinearEquiv.refl R F).invFun
[PROOFSTEP]
exact continuous_id
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e'.baseSet ∩ e.baseSet
⊢ ContinuousLinearEquiv.symm (coordChangeL R e e' b) = coordChangeL R e' e b
[PROOFSTEP]
apply ContinuousLinearEquiv.toLinearEquiv_injective
[GOAL]
case a
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e'.baseSet ∩ e.baseSet
⊢ (ContinuousLinearEquiv.symm (coordChangeL R e e' b)).toLinearEquiv = (coordChangeL R e' e b).toLinearEquiv
[PROOFSTEP]
rw [coe_coordChangeL' e' e hb, (coordChangeL R e e' b).symm_toLinearEquiv, coe_coordChangeL' e e' hb.symm,
  LinearEquiv.trans_symm, LinearEquiv.symm_symm]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
y : F
⊢ (b, ↑(coordChangeL R e e' b) y) = ↑e' { proj := b, snd := Trivialization.symm e b y }
[PROOFSTEP]
ext
[GOAL]
case h₁
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
y : F
⊢ (b, ↑(coordChangeL R e e' b) y).fst = (↑e' { proj := b, snd := Trivialization.symm e b y }).fst
[PROOFSTEP]
rw [e.mk_symm hb.1 y, e'.coe_fst', e.proj_symm_apply' hb.1]
[GOAL]
case h₁
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
y : F
⊢ (↑(LocalHomeomorph.symm e.toLocalHomeomorph) (b, y)).proj ∈ e'.baseSet
[PROOFSTEP]
rw [e.proj_symm_apply' hb.1]
[GOAL]
case h₁
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
y : F
⊢ b ∈ e'.baseSet
[PROOFSTEP]
exact hb.2
[GOAL]
case h₂
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
y : F
⊢ (b, ↑(coordChangeL R e e' b) y).snd = (↑e' { proj := b, snd := Trivialization.symm e b y }).snd
[PROOFSTEP]
exact e.coordChangeL_apply e' hb y
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ ↑e' (↑(LocalHomeomorph.symm e.toLocalHomeomorph) (b, v)) = (b, ↑(coordChangeL R e e' b) v)
[PROOFSTEP]
rw [e.mk_coordChangeL e' hb, e.mk_symm hb.1]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
y : F
⊢ ↑(coordChangeL R e e' b) y = (↑e' (↑(LocalHomeomorph.symm e.toLocalHomeomorph) (b, y))).snd
[PROOFSTEP]
rw [e.coordChangeL_apply e' hb, e.mk_symm hb.1]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
src✝ : E b →ₗ[R] F := Trivialization.linearMapAt R e b
⊢ Continuous
    {
          toAddHom :=
            { toFun := ↑(Trivialization.linearMapAt R e b),
              map_add' :=
                (_ :
                  ∀ (x y : E b),
                    AddHom.toFun src✝.toAddHom (x + y) = AddHom.toFun src✝.toAddHom x + AddHom.toFun src✝.toAddHom y) },
          map_smul' :=
            (_ :
              ∀ (r : R) (x : E b),
                AddHom.toFun src✝.toAddHom (r • x) = ↑(RingHom.id R) r • AddHom.toFun src✝.toAddHom x) }.toAddHom.toFun
[PROOFSTEP]
dsimp
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
src✝ : E b →ₗ[R] F := Trivialization.linearMapAt R e b
⊢ Continuous ↑(Trivialization.linearMapAt R e b)
[PROOFSTEP]
rw [e.coe_linearMapAt b]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
src✝ : E b →ₗ[R] F := Trivialization.linearMapAt R e b
⊢ Continuous fun y => if b ∈ e.baseSet then (↑e { proj := b, snd := y }).snd else 0
[PROOFSTEP]
refine' continuous_if_const _ (fun hb => _) fun _ => continuous_zero
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
src✝ : E b →ₗ[R] F := Trivialization.linearMapAt R e b
hb : b ∈ e.baseSet
⊢ Continuous fun y => (↑e { proj := b, snd := y }).snd
[PROOFSTEP]
exact
  (e.continuousOn.comp_continuous (FiberBundle.totalSpaceMk_inducing F E b).continuous fun x => e.mem_source.mpr hb).snd
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
src✝ : F →ₗ[R] E b := Trivialization.symmₗ R e b
⊢ Continuous
    {
          toAddHom :=
            { toFun := Trivialization.symm e b,
              map_add' :=
                (_ :
                  ∀ (x y : F),
                    AddHom.toFun src✝.toAddHom (x + y) = AddHom.toFun src✝.toAddHom x + AddHom.toFun src✝.toAddHom y) },
          map_smul' :=
            (_ :
              ∀ (r : R) (x : F),
                AddHom.toFun src✝.toAddHom (r • x) = ↑(RingHom.id R) r • AddHom.toFun src✝.toAddHom x) }.toAddHom.toFun
[PROOFSTEP]
by_cases hb : b ∈ e.baseSet
[GOAL]
case pos
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
src✝ : F →ₗ[R] E b := Trivialization.symmₗ R e b
hb : b ∈ e.baseSet
⊢ Continuous
    {
          toAddHom :=
            { toFun := Trivialization.symm e b,
              map_add' :=
                (_ :
                  ∀ (x y : F),
                    AddHom.toFun src✝.toAddHom (x + y) = AddHom.toFun src✝.toAddHom x + AddHom.toFun src✝.toAddHom y) },
          map_smul' :=
            (_ :
              ∀ (r : R) (x : F),
                AddHom.toFun src✝.toAddHom (r • x) = ↑(RingHom.id R) r • AddHom.toFun src✝.toAddHom x) }.toAddHom.toFun
[PROOFSTEP]
rw [(FiberBundle.totalSpaceMk_inducing F E b).continuous_iff]
[GOAL]
case pos
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
src✝ : F →ₗ[R] E b := Trivialization.symmₗ R e b
hb : b ∈ e.baseSet
⊢ Continuous
    (TotalSpace.mk b ∘
      {
            toAddHom :=
              { toFun := Trivialization.symm e b,
                map_add' :=
                  (_ :
                    ∀ (x y : F),
                      AddHom.toFun src✝.toAddHom (x + y) =
                        AddHom.toFun src✝.toAddHom x + AddHom.toFun src✝.toAddHom y) },
            map_smul' :=
              (_ :
                ∀ (r : R) (x : F),
                  AddHom.toFun src✝.toAddHom (r • x) =
                    ↑(RingHom.id R) r • AddHom.toFun src✝.toAddHom x) }.toAddHom.toFun)
[PROOFSTEP]
exact e.continuousOn_symm.comp_continuous (continuous_const.prod_mk continuous_id) fun x ↦ mk_mem_prod hb (mem_univ x)
[GOAL]
case neg
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
src✝ : F →ₗ[R] E b := Trivialization.symmₗ R e b
hb : ¬b ∈ e.baseSet
⊢ Continuous
    {
          toAddHom :=
            { toFun := Trivialization.symm e b,
              map_add' :=
                (_ :
                  ∀ (x y : F),
                    AddHom.toFun src✝.toAddHom (x + y) = AddHom.toFun src✝.toAddHom x + AddHom.toFun src✝.toAddHom y) },
          map_smul' :=
            (_ :
              ∀ (r : R) (x : F),
                AddHom.toFun src✝.toAddHom (r • x) = ↑(RingHom.id R) r • AddHom.toFun src✝.toAddHom x) }.toAddHom.toFun
[PROOFSTEP]
refine' continuous_zero.congr fun x => (e.symm_apply_of_not_mem hb x).symm
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
z : E b
⊢ ↑e { proj := b, snd := z } = (b, ↑(continuousLinearEquivAt R e b hb) z)
[PROOFSTEP]
ext
[GOAL]
case h₁
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
z : E b
⊢ (↑e { proj := b, snd := z }).fst = (b, ↑(continuousLinearEquivAt R e b hb) z).fst
[PROOFSTEP]
refine' e.coe_fst _
[GOAL]
case h₁
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
z : E b
⊢ { proj := b, snd := z } ∈ e.source
[PROOFSTEP]
rw [e.source_eq]
[GOAL]
case h₁
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
z : E b
⊢ { proj := b, snd := z } ∈ TotalSpace.proj ⁻¹' e.baseSet
[PROOFSTEP]
exact hb
[GOAL]
case h₂
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
z : E b
⊢ (↑e { proj := b, snd := z }).snd = (b, ↑(continuousLinearEquivAt R e b hb) z).snd
[PROOFSTEP]
simp only [coe_coe, continuousLinearEquivAt_apply]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
x : B
hx : x ∈ e.baseSet
⊢ ↑e (zeroSection F E x) = (x, 0)
[PROOFSTEP]
simp_rw [zeroSection, e.apply_eq_prod_continuousLinearEquivAt R x hx 0, map_zero]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
z : F
⊢ ↑(LocalHomeomorph.symm e.toLocalHomeomorph) (b, z) =
    { proj := b, snd := ↑(ContinuousLinearEquiv.symm (continuousLinearEquivAt R e b hb)) z }
[PROOFSTEP]
have h : (b, z) ∈ e.target
[GOAL]
case h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
z : F
⊢ (b, z) ∈ e.target
[PROOFSTEP]
rw [e.target_eq]
[GOAL]
case h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
z : F
⊢ (b, z) ∈ e.baseSet ×ˢ univ
[PROOFSTEP]
exact ⟨hb, mem_univ _⟩
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
z : F
h : (b, z) ∈ e.target
⊢ ↑(LocalHomeomorph.symm e.toLocalHomeomorph) (b, z) =
    { proj := b, snd := ↑(ContinuousLinearEquiv.symm (continuousLinearEquivAt R e b hb)) z }
[PROOFSTEP]
apply e.injOn (e.map_target h)
[GOAL]
case a
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
z : F
h : (b, z) ∈ e.target
⊢ { proj := b, snd := ↑(ContinuousLinearEquiv.symm (continuousLinearEquivAt R e b hb)) z } ∈ e.source
[PROOFSTEP]
simpa only [e.source_eq, mem_preimage]
[GOAL]
case a
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : NontriviallyNormedField R
inst✝⁸ : (x : B) → AddCommMonoid (E x)
inst✝⁷ : (x : B) → Module R (E x)
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace R F
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace (TotalSpace F E)
inst✝² : (x : B) → TopologicalSpace (E x)
inst✝¹ : FiberBundle F E
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
z : F
h : (b, z) ∈ e.target
⊢ ↑e.toLocalHomeomorph (↑(LocalHomeomorph.symm e.toLocalHomeomorph) (b, z)) =
    ↑e.toLocalHomeomorph { proj := b, snd := ↑(ContinuousLinearEquiv.symm (continuousLinearEquivAt R e b hb)) z }
[PROOFSTEP]
simp_rw [e.right_inv h, coe_coe, e.apply_eq_prod_continuousLinearEquivAt R b hb, ContinuousLinearEquiv.apply_symm_apply]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝¹⁰ : NontriviallyNormedField R
inst✝⁹ : (x : B) → AddCommMonoid (E x)
inst✝⁸ : (x : B) → Module R (E x)
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace R F
inst✝⁵ : TopologicalSpace B
inst✝⁴ : TopologicalSpace (TotalSpace F E)
inst✝³ : (x : B) → TopologicalSpace (E x)
inst✝² : FiberBundle F E
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
⊢ ContinuousLinearEquiv.trans (ContinuousLinearEquiv.symm (continuousLinearEquivAt R e b (_ : b ∈ e.baseSet)))
      (continuousLinearEquivAt R e' b (_ : b ∈ e'.baseSet)) =
    coordChangeL R e e' b
[PROOFSTEP]
ext v
[GOAL]
case h.h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝¹⁰ : NontriviallyNormedField R
inst✝⁹ : (x : B) → AddCommMonoid (E x)
inst✝⁸ : (x : B) → Module R (E x)
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace R F
inst✝⁵ : TopologicalSpace B
inst✝⁴ : TopologicalSpace (TotalSpace F E)
inst✝³ : (x : B) → TopologicalSpace (E x)
inst✝² : FiberBundle F E
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ ↑(ContinuousLinearEquiv.trans (ContinuousLinearEquiv.symm (continuousLinearEquivAt R e b (_ : b ∈ e.baseSet)))
          (continuousLinearEquivAt R e' b (_ : b ∈ e'.baseSet)))
      v =
    ↑(coordChangeL R e e' b) v
[PROOFSTEP]
rw [coordChangeL_apply e e' hb]
[GOAL]
case h.h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝¹⁰ : NontriviallyNormedField R
inst✝⁹ : (x : B) → AddCommMonoid (E x)
inst✝⁸ : (x : B) → Module R (E x)
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace R F
inst✝⁵ : TopologicalSpace B
inst✝⁴ : TopologicalSpace (TotalSpace F E)
inst✝³ : (x : B) → TopologicalSpace (E x)
inst✝² : FiberBundle F E
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ ↑(ContinuousLinearEquiv.trans (ContinuousLinearEquiv.symm (continuousLinearEquivAt R e b (_ : b ∈ e.baseSet)))
          (continuousLinearEquivAt R e' b (_ : b ∈ e'.baseSet)))
      v =
    (↑e' { proj := b, snd := Trivialization.symm e b v }).snd
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
i j k : ι
x : B
hx : x ∈ baseSet Z i ∩ baseSet Z j ∩ baseSet Z k
⊢ ContinuousLinearMap.comp (coordChange Z j k x) (coordChange Z i j x) = coordChange Z i k x
[PROOFSTEP]
ext v
[GOAL]
case h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
i j k : ι
x : B
hx : x ∈ baseSet Z i ∩ baseSet Z j ∩ baseSet Z k
v : F
⊢ ↑(ContinuousLinearMap.comp (coordChange Z j k x) (coordChange Z i j x)) v = ↑(coordChange Z i k x) v
[PROOFSTEP]
exact Z.coordChange_comp i j k x hx v
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b : B
a : F
i : ι
x : B
x✝² : x ∈ (localTriv Z i).baseSet
x✝¹ x✝ : Fiber Z x
⊢ (↑(localTriv Z i) { proj := x, snd := x✝¹ + x✝ }).snd =
    (↑(localTriv Z i) { proj := x, snd := x✝¹ }).snd + (↑(localTriv Z i) { proj := x, snd := x✝ }).snd
[PROOFSTEP]
simp only [map_add, localTriv_apply, mfld_simps]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b : B
a : F
i : ι
x : B
x✝² : x ∈ (localTriv Z i).baseSet
x✝¹ : R
x✝ : Fiber Z x
⊢ (↑(localTriv Z i) { proj := x, snd := x✝¹ • x✝ }).snd = x✝¹ • (↑(localTriv Z i) { proj := x, snd := x✝ }).snd
[PROOFSTEP]
simp only [map_smul, localTriv_apply, mfld_simps]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i
v : F
⊢ Trivialization.symm (localTriv Z i) b v = ↑(coordChange Z i (indexAt Z b) b) v
[PROOFSTEP]
apply (Z.localTriv i).symm_apply hb v
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i ∩ baseSet Z j
v : F
⊢ ↑(Trivialization.coordChangeL R (localTriv Z i) (localTriv Z j) b) v = ↑(coordChange Z i j b) v
[PROOFSTEP]
rw [Trivialization.coordChangeL_apply', localTriv_symm_fst, localTriv_apply, coordChange_comp]
[GOAL]
case a
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i ∩ baseSet Z j
v : F
⊢ { proj := (b, v).fst, snd := ↑(coordChange Z i (indexAt Z (b, v).fst) (b, v).fst) (b, v).snd }.proj ∈
    baseSet Z i ∩
        baseSet Z
          (indexAt Z
            { proj := (b, v).fst, snd := ↑(coordChange Z i (indexAt Z (b, v).fst) (b, v).fst) (b, v).snd }.proj) ∩
      baseSet Z j
case hb
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i ∩ baseSet Z j
v : F
⊢ b ∈ (localTriv Z i).baseSet ∩ (localTriv Z j).baseSet
[PROOFSTEP]
exacts [⟨⟨hb.1, Z.mem_baseSet_at b⟩, hb.2⟩, hb]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b : B
a : F
i j : ι
⊢ { proj := b, snd := a } ∈ (localTrivAt Z b).toLocalHomeomorph.toLocalEquiv.source
[PROOFSTEP]
rw [localTrivAt, mem_localTriv_source]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b : B
a : F
i j : ι
⊢ { proj := b, snd := a }.proj ∈ baseSet Z (indexAt Z b)
[PROOFSTEP]
exact Z.mem_baseSet_at b
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b : B
a : F
i j : ι
⊢ ∀ (e : Trivialization F TotalSpace.proj) [inst : MemTrivializationAtlas e], Trivialization.IsLinear R e
[PROOFSTEP]
rintro _ ⟨i, rfl⟩
[GOAL]
case mk.intro
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b : B
a : F
i✝ j i : ι
⊢ Trivialization.IsLinear R (FiberBundleCore.localTriv (toFiberBundleCore Z) i)
[PROOFSTEP]
apply localTriv.isLinear
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b : B
a : F
i j : ι
⊢ ∀ (e e' : Trivialization F TotalSpace.proj) [inst : MemTrivializationAtlas e] [inst_1 : MemTrivializationAtlas e'],
    ContinuousOn (fun b => ↑(Trivialization.coordChangeL R e e' b)) (e.baseSet ∩ e'.baseSet)
[PROOFSTEP]
rintro _ _ ⟨i, rfl⟩ ⟨i', rfl⟩
[GOAL]
case mk.intro.mk.intro
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b : B
a : F
i✝ j i i' : ι
⊢ ContinuousOn
    (fun b =>
      ↑(Trivialization.coordChangeL R (FiberBundleCore.localTriv (toFiberBundleCore Z) i)
          (FiberBundleCore.localTriv (toFiberBundleCore Z) i') b))
    ((FiberBundleCore.localTriv (toFiberBundleCore Z) i).baseSet ∩
      (FiberBundleCore.localTriv (toFiberBundleCore Z) i').baseSet)
[PROOFSTEP]
refine' (Z.continuousOn_coordChange i i').congr fun b hb => _
[GOAL]
case mk.intro.mk.intro
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i✝ j i i' : ι
b : B
hb : b ∈ baseSet Z i ∩ baseSet Z i'
⊢ ↑(Trivialization.coordChangeL R (FiberBundleCore.localTriv (toFiberBundleCore Z) i)
        (FiberBundleCore.localTriv (toFiberBundleCore Z) i') b) =
    coordChange Z i i' b
[PROOFSTEP]
ext v
[GOAL]
case mk.intro.mk.intro.h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i✝ j i i' : ι
b : B
hb : b ∈ baseSet Z i ∩ baseSet Z i'
v : F
⊢ ↑↑(Trivialization.coordChangeL R (FiberBundleCore.localTriv (toFiberBundleCore Z) i)
            (FiberBundleCore.localTriv (toFiberBundleCore Z) i') b)
      v =
    ↑(coordChange Z i i' b) v
[PROOFSTEP]
exact Z.localTriv_coordChange_eq i i' hb v
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i
⊢ Trivialization.continuousLinearMapAt R (localTriv Z i) b = coordChange Z (indexAt Z b) i b
[PROOFSTEP]
ext1 v
[GOAL]
case h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i
v : Fiber Z b
⊢ ↑(Trivialization.continuousLinearMapAt R (localTriv Z i) b) v = ↑(coordChange Z (indexAt Z b) i b) v
[PROOFSTEP]
rw [(Z.localTriv i).continuousLinearMapAt_apply R, (Z.localTriv i).coe_linearMapAt_of_mem]
[GOAL]
case h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i
v : Fiber Z b
⊢ (fun y => (↑(localTriv Z i) { proj := b, snd := y }).snd) v = ↑(coordChange Z (indexAt Z b) i b) v
case h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i
v : Fiber Z b
⊢ b ∈ (localTriv Z i).baseSet
[PROOFSTEP]
exacts [rfl, hb]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i
⊢ Trivialization.symmL R (localTriv Z i) b = coordChange Z i (indexAt Z b) b
[PROOFSTEP]
ext1 v
[GOAL]
case h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i
v : F
⊢ ↑(Trivialization.symmL R (localTriv Z i) b) v = ↑(coordChange Z i (indexAt Z b) b) v
[PROOFSTEP]
rw [(Z.localTriv i).symmL_apply R, (Z.localTriv i).symm_apply]
[GOAL]
case h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i
v : F
⊢ cast (_ : Fiber Z (↑(LocalHomeomorph.symm (localTriv Z i).toLocalHomeomorph) (b, v)).proj = Fiber Z b)
      (↑(LocalHomeomorph.symm (localTriv Z i).toLocalHomeomorph) (b, v)).snd =
    ↑(coordChange Z i (indexAt Z b) b) v
case h.hb
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i
v : F
⊢ b ∈ (localTriv Z i).baseSet
[PROOFSTEP]
exacts [rfl, hb]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e e' : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
he' : e' ∈ a.pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ (b, ↑(coordChange a he he' b) v) = ↑e' { proj := b, snd := Pretrivialization.symm e b v }
[PROOFSTEP]
ext
[GOAL]
case h₁
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e e' : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
he' : e' ∈ a.pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ (b, ↑(coordChange a he he' b) v).fst = (↑e' { proj := b, snd := Pretrivialization.symm e b v }).fst
[PROOFSTEP]
rw [e.mk_symm hb.1 v, e'.coe_fst', e.proj_symm_apply' hb.1]
[GOAL]
case h₁
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e e' : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
he' : e' ∈ a.pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ (↑(LocalEquiv.symm e.toLocalEquiv) (b, v)).proj ∈ e'.baseSet
[PROOFSTEP]
rw [e.proj_symm_apply' hb.1]
[GOAL]
case h₁
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e e' : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
he' : e' ∈ a.pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ b ∈ e'.baseSet
[PROOFSTEP]
exact hb.2
[GOAL]
case h₂
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e e' : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
he' : e' ∈ a.pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ (b, ↑(coordChange a he he' b) v).snd = (↑e' { proj := b, snd := Pretrivialization.symm e b v }).snd
[PROOFSTEP]
exact a.coordChange_apply he he' hb v
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ a.pretrivializationAtlas
⊢ ContinuousOn (↑e ∘ ↑(LocalEquiv.symm e'.toLocalEquiv)) (e'.target ∩ ↑(LocalEquiv.symm e'.toLocalEquiv) ⁻¹' e.source)
[PROOFSTEP]
have : ContinuousOn (fun x : B × F ↦ a.coordChange he' he x.1 x.2) ((e'.baseSet ∩ e.baseSet) ×ˢ univ) :=
  isBoundedBilinearMapApply.continuous.comp_continuousOn ((a.continuousOn_coordChange he' he).prod_map continuousOn_id)
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ a.pretrivializationAtlas
this : ContinuousOn (fun x => ↑(coordChange a he' he x.fst) x.snd) ((e'.baseSet ∩ e.baseSet) ×ˢ univ)
⊢ ContinuousOn (↑e ∘ ↑(LocalEquiv.symm e'.toLocalEquiv)) (e'.target ∩ ↑(LocalEquiv.symm e'.toLocalEquiv) ⁻¹' e.source)
[PROOFSTEP]
rw [e.target_inter_preimage_symm_source_eq e', inter_comm]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ a.pretrivializationAtlas
this : ContinuousOn (fun x => ↑(coordChange a he' he x.fst) x.snd) ((e'.baseSet ∩ e.baseSet) ×ˢ univ)
⊢ ContinuousOn (↑e ∘ ↑(LocalEquiv.symm e'.toLocalEquiv)) ((e'.baseSet ∩ e.baseSet) ×ˢ univ)
[PROOFSTEP]
refine' (continuousOn_fst.prod this).congr _
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ a.pretrivializationAtlas
this : ContinuousOn (fun x => ↑(coordChange a he' he x.fst) x.snd) ((e'.baseSet ∩ e.baseSet) ×ˢ univ)
⊢ EqOn (↑e ∘ ↑(LocalEquiv.symm e'.toLocalEquiv)) (fun x => (x.fst, ↑(coordChange a he' he x.fst) x.snd))
    ((e'.baseSet ∩ e.baseSet) ×ˢ univ)
[PROOFSTEP]
rintro ⟨b, f⟩ ⟨hb, -⟩
[GOAL]
case mk.intro
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ a.pretrivializationAtlas
this : ContinuousOn (fun x => ↑(coordChange a he' he x.fst) x.snd) ((e'.baseSet ∩ e.baseSet) ×ˢ univ)
b : B
f : F
hb : (b, f).fst ∈ e'.baseSet ∩ e.baseSet
⊢ (↑e ∘ ↑(LocalEquiv.symm e'.toLocalEquiv)) (b, f) = (fun x => (x.fst, ↑(coordChange a he' he x.fst) x.snd)) (b, f)
[PROOFSTEP]
dsimp only [Function.comp, Prod.map]
[GOAL]
case mk.intro
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ a.pretrivializationAtlas
this : ContinuousOn (fun x => ↑(coordChange a he' he x.fst) x.snd) ((e'.baseSet ∩ e.baseSet) ×ˢ univ)
b : B
f : F
hb : (b, f).fst ∈ e'.baseSet ∩ e.baseSet
⊢ ↑e (↑(LocalEquiv.symm e'.toLocalEquiv) (b, f)) = (b, ↑(coordChange a he' he b) f)
[PROOFSTEP]
rw [a.mk_coordChange _ _ hb, e'.mk_symm hb.1]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
this✝ : TopologicalSpace (TotalSpace F E) := totalSpaceTopology a
this : FiberBundle F E := toFiberBundle a
⊢ ∀ (e : Trivialization F TotalSpace.proj) [inst : MemTrivializationAtlas e], Trivialization.IsLinear R e
[PROOFSTEP]
rintro _ ⟨e, he, rfl⟩
[GOAL]
case mk.intro.intro
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
this✝ : TopologicalSpace (TotalSpace F E) := totalSpaceTopology a
this : FiberBundle F E := toFiberBundle a
e : Pretrivialization F TotalSpace.proj
he : e ∈ (toFiberPrebundle a).pretrivializationAtlas
⊢ Trivialization.IsLinear R (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he)
[PROOFSTEP]
apply linear_trivializationOfMemPretrivializationAtlas
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
this✝ : TopologicalSpace (TotalSpace F E) := totalSpaceTopology a
this : FiberBundle F E := toFiberBundle a
⊢ ∀ (e e' : Trivialization F TotalSpace.proj) [inst : MemTrivializationAtlas e] [inst_1 : MemTrivializationAtlas e'],
    ContinuousOn (fun b => ↑(Trivialization.coordChangeL R e e' b)) (e.baseSet ∩ e'.baseSet)
[PROOFSTEP]
rintro _ _ ⟨e, he, rfl⟩ ⟨e', he', rfl⟩
[GOAL]
case mk.intro.intro.mk.intro.intro
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
this✝ : TopologicalSpace (TotalSpace F E) := totalSpaceTopology a
this : FiberBundle F E := toFiberBundle a
e : Pretrivialization F TotalSpace.proj
he : e ∈ (toFiberPrebundle a).pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ (toFiberPrebundle a).pretrivializationAtlas
⊢ ContinuousOn
    (fun b =>
      ↑(Trivialization.coordChangeL R (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he)
          (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he') b))
    ((FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he).baseSet ∩
      (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he').baseSet)
[PROOFSTEP]
refine (a.continuousOn_coordChange he he').congr fun b hb ↦ ?_
[GOAL]
case mk.intro.intro.mk.intro.intro
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
this✝ : TopologicalSpace (TotalSpace F E) := totalSpaceTopology a
this : FiberBundle F E := toFiberBundle a
e : Pretrivialization F TotalSpace.proj
he : e ∈ (toFiberPrebundle a).pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ (toFiberPrebundle a).pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
⊢ ↑(Trivialization.coordChangeL R (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he)
        (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he') b) =
    coordChange a he he' b
[PROOFSTEP]
ext v
[GOAL]
case mk.intro.intro.mk.intro.intro.h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
this✝ : TopologicalSpace (TotalSpace F E) := totalSpaceTopology a
this : FiberBundle F E := toFiberBundle a
e : Pretrivialization F TotalSpace.proj
he : e ∈ (toFiberPrebundle a).pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ (toFiberPrebundle a).pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ ↑↑(Trivialization.coordChangeL R (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he)
            (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he') b)
      v =
    ↑(coordChange a he he' b) v
[PROOFSTEP]
haveI h₁ := a.linear_trivializationOfMemPretrivializationAtlas he
[GOAL]
case mk.intro.intro.mk.intro.intro.h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
this✝ : TopologicalSpace (TotalSpace F E) := totalSpaceTopology a
this : FiberBundle F E := toFiberBundle a
e : Pretrivialization F TotalSpace.proj
he : e ∈ (toFiberPrebundle a).pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ (toFiberPrebundle a).pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
h₁ : Trivialization.IsLinear R (trivializationOfMemPretrivializationAtlas a he)
⊢ ↑↑(Trivialization.coordChangeL R (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he)
            (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he') b)
      v =
    ↑(coordChange a he he' b) v
[PROOFSTEP]
haveI h₂ := a.linear_trivializationOfMemPretrivializationAtlas he'
[GOAL]
case mk.intro.intro.mk.intro.intro.h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
this✝ : TopologicalSpace (TotalSpace F E) := totalSpaceTopology a
this : FiberBundle F E := toFiberBundle a
e : Pretrivialization F TotalSpace.proj
he : e ∈ (toFiberPrebundle a).pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ (toFiberPrebundle a).pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
h₁ : Trivialization.IsLinear R (trivializationOfMemPretrivializationAtlas a he)
h₂ : Trivialization.IsLinear R (trivializationOfMemPretrivializationAtlas a he')
⊢ ↑↑(Trivialization.coordChangeL R (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he)
            (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he') b)
      v =
    ↑(coordChange a he he' b) v
[PROOFSTEP]
rw [trivializationOfMemPretrivializationAtlas] at h₁ h₂
[GOAL]
case mk.intro.intro.mk.intro.intro.h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
this✝ : TopologicalSpace (TotalSpace F E) := totalSpaceTopology a
this : FiberBundle F E := toFiberBundle a
e : Pretrivialization F TotalSpace.proj
he : e ∈ (toFiberPrebundle a).pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ (toFiberPrebundle a).pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
h₁ : Trivialization.IsLinear R (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he)
h₂ : Trivialization.IsLinear R (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he')
⊢ ↑↑(Trivialization.coordChangeL R (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he)
            (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he') b)
      v =
    ↑(coordChange a he he' b) v
[PROOFSTEP]
rw [a.coordChange_apply he he' hb v, ContinuousLinearEquiv.coe_coe, Trivialization.coordChangeL_apply]
[GOAL]
case mk.intro.intro.mk.intro.intro.h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
this✝ : TopologicalSpace (TotalSpace F E) := totalSpaceTopology a
this : FiberBundle F E := toFiberBundle a
e : Pretrivialization F TotalSpace.proj
he : e ∈ (toFiberPrebundle a).pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ (toFiberPrebundle a).pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
h₁ : Trivialization.IsLinear R (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he)
h₂ : Trivialization.IsLinear R (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he')
⊢ (↑(FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he')
        { proj := b,
          snd :=
            Trivialization.symm (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he) b
              v }).snd =
    (↑e' { proj := b, snd := Pretrivialization.symm e b v }).snd
case mk.intro.intro.mk.intro.intro.h.hb
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
this✝ : TopologicalSpace (TotalSpace F E) := totalSpaceTopology a
this : FiberBundle F E := toFiberBundle a
e : Pretrivialization F TotalSpace.proj
he : e ∈ (toFiberPrebundle a).pretrivializationAtlas
e' : Pretrivialization F TotalSpace.proj
he' : e' ∈ (toFiberPrebundle a).pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
h₁ : Trivialization.IsLinear R (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he)
h₂ : Trivialization.IsLinear R (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he')
⊢ b ∈
    (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he).baseSet ∩
      (FiberPrebundle.trivializationOfMemPretrivializationAtlas (toFiberPrebundle a) he').baseSet
[PROOFSTEP]
exacts [rfl, hb]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝²² : NontriviallyNormedField R
inst✝²¹ : (x : B) → AddCommMonoid (E x)
inst✝²⁰ : (x : B) → Module R (E x)
inst✝¹⁹ : NormedAddCommGroup F
inst✝¹⁸ : NormedSpace R F
inst✝¹⁷ : TopologicalSpace B
inst✝¹⁶ : (x : B) → TopologicalSpace (E x)
𝕜₁ : Type u_5
𝕜₂ : Type u_6
inst✝¹⁵ : NontriviallyNormedField 𝕜₁
inst✝¹⁴ : NontriviallyNormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
B' : Type u_7
inst✝¹³ : TopologicalSpace B'
inst✝¹² : NormedSpace 𝕜₁ F
inst✝¹¹ : (x : B) → Module 𝕜₁ (E x)
inst✝¹⁰ : TopologicalSpace (TotalSpace F E)
F' : Type u_8
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂ F'
E' : B' → Type u_9
inst✝⁷ : (x : B') → AddCommMonoid (E' x)
inst✝⁶ : (x : B') → Module 𝕜₂ (E' x)
inst✝⁵ : TopologicalSpace (TotalSpace F' E')
inst✝⁴ : FiberBundle F E
inst✝³ : VectorBundle 𝕜₁ F E
inst✝² : (x : B') → TopologicalSpace (E' x)
inst✝¹ : FiberBundle F' E'
inst✝ : VectorBundle 𝕜₂ F' E'
x₀ x : B
y₀ y : B'
ϕ : E x →SL[σ] E' y
hx : x ∈ (trivializationAt F E x₀).baseSet
hy : y ∈ (trivializationAt F' E' y₀).baseSet
⊢ inCoordinates F E F' E' x₀ x y₀ y ϕ =
    comp (↑(Trivialization.continuousLinearEquivAt 𝕜₂ (trivializationAt F' E' y₀) y hy))
      (comp ϕ ↑(ContinuousLinearEquiv.symm (Trivialization.continuousLinearEquivAt 𝕜₁ (trivializationAt F E x₀) x hx)))
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝²² : NontriviallyNormedField R
inst✝²¹ : (x : B) → AddCommMonoid (E x)
inst✝²⁰ : (x : B) → Module R (E x)
inst✝¹⁹ : NormedAddCommGroup F
inst✝¹⁸ : NormedSpace R F
inst✝¹⁷ : TopologicalSpace B
inst✝¹⁶ : (x : B) → TopologicalSpace (E x)
𝕜₁ : Type u_5
𝕜₂ : Type u_6
inst✝¹⁵ : NontriviallyNormedField 𝕜₁
inst✝¹⁴ : NontriviallyNormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
B' : Type u_7
inst✝¹³ : TopologicalSpace B'
inst✝¹² : NormedSpace 𝕜₁ F
inst✝¹¹ : (x : B) → Module 𝕜₁ (E x)
inst✝¹⁰ : TopologicalSpace (TotalSpace F E)
F' : Type u_8
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂ F'
E' : B' → Type u_9
inst✝⁷ : (x : B') → AddCommMonoid (E' x)
inst✝⁶ : (x : B') → Module 𝕜₂ (E' x)
inst✝⁵ : TopologicalSpace (TotalSpace F' E')
inst✝⁴ : FiberBundle F E
inst✝³ : VectorBundle 𝕜₁ F E
inst✝² : (x : B') → TopologicalSpace (E' x)
inst✝¹ : FiberBundle F' E'
inst✝ : VectorBundle 𝕜₂ F' E'
x₀ x : B
y₀ y : B'
ϕ : E x →SL[σ] E' y
hx : x ∈ (trivializationAt F E x₀).baseSet
hy : y ∈ (trivializationAt F' E' y₀).baseSet
x✝ : F
⊢ ↑(inCoordinates F E F' E' x₀ x y₀ y ϕ) x✝ =
    ↑(comp (↑(Trivialization.continuousLinearEquivAt 𝕜₂ (trivializationAt F' E' y₀) y hy))
          (comp ϕ
            ↑(ContinuousLinearEquiv.symm (Trivialization.continuousLinearEquivAt 𝕜₁ (trivializationAt F E x₀) x hx))))
      x✝
[PROOFSTEP]
simp_rw [inCoordinates, ContinuousLinearMap.coe_comp', ContinuousLinearEquiv.coe_coe,
  Trivialization.coe_continuousLinearEquivAt_eq, Trivialization.symm_continuousLinearEquivAt_eq]
[GOAL]
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝²² : NontriviallyNormedField R
inst✝²¹ : (x : B) → AddCommMonoid (E x)
inst✝²⁰ : (x : B) → Module R (E x)
inst✝¹⁹ : NormedAddCommGroup F
inst✝¹⁸ : NormedSpace R F
inst✝¹⁷ : TopologicalSpace B
inst✝¹⁶ : (x : B) → TopologicalSpace (E x)
𝕜₁ : Type u_5
𝕜₂ : Type u_6
inst✝¹⁵ : NontriviallyNormedField 𝕜₁
inst✝¹⁴ : NontriviallyNormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
B' : Type u_7
inst✝¹³ : TopologicalSpace B'
inst✝¹² : NormedSpace 𝕜₁ F
inst✝¹¹ : (x : B) → Module 𝕜₁ (E x)
inst✝¹⁰ : TopologicalSpace (TotalSpace F E)
F' : Type u_8
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂ F'
E' : B' → Type u_9
inst✝⁷ : (x : B') → AddCommMonoid (E' x)
inst✝⁶ : (x : B') → Module 𝕜₂ (E' x)
inst✝⁵ : TopologicalSpace (TotalSpace F' E')
inst✝⁴ : FiberBundle F E
inst✝³ : VectorBundle 𝕜₁ F E
inst✝² : (x : B') → TopologicalSpace (E' x)
inst✝¹ : FiberBundle F' E'
inst✝ : VectorBundle 𝕜₂ F' E'
ι : Type u_10
ι' : Type u_11
Z : VectorBundleCore 𝕜₁ B F ι
Z' : VectorBundleCore 𝕜₂ B' F' ι'
x₀ x : B
y₀ y : B'
ϕ : F →SL[σ] F'
hx : x ∈ VectorBundleCore.baseSet Z (VectorBundleCore.indexAt Z x₀)
hy : y ∈ VectorBundleCore.baseSet Z' (VectorBundleCore.indexAt Z' y₀)
⊢ inCoordinates F (VectorBundleCore.Fiber Z) F' (VectorBundleCore.Fiber Z') x₀ x y₀ y ϕ =
    comp (VectorBundleCore.coordChange Z' (VectorBundleCore.indexAt Z' y) (VectorBundleCore.indexAt Z' y₀) y)
      (comp ϕ (VectorBundleCore.coordChange Z (VectorBundleCore.indexAt Z x₀) (VectorBundleCore.indexAt Z x) x))
[PROOFSTEP]
simp_rw [inCoordinates, Z'.trivializationAt_continuousLinearMapAt hy, Z.trivializationAt_symmL hx]


[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ (mulDysonEtransform e x).fst * (mulDysonEtransform e x).snd ⊆ x.fst * x.snd
[PROOFSTEP]
refine' union_mul_inter_subset_union.trans (union_subset Subset.rfl _)
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ e • x.snd * e⁻¹ • x.fst ⊆ x.fst * x.snd
[PROOFSTEP]
rw [mul_smul_comm, smul_mul_assoc, inv_smul_smul, mul_comm]
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ Finset.card (mulDysonEtransform e x).fst + Finset.card (mulDysonEtransform e x).snd =
    Finset.card x.fst + Finset.card x.snd
[PROOFSTEP]
dsimp
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ Finset.card (x.fst ∪ e • x.snd) + Finset.card (x.snd ∩ e⁻¹ • x.fst) = Finset.card x.fst + Finset.card x.snd
[PROOFSTEP]
rw [← card_smul_finset e (_ ∩ _), smul_finset_inter, smul_inv_smul, inter_comm, card_union_add_card_inter,
  card_smul_finset]
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ mulDysonEtransform e (mulDysonEtransform e x) = mulDysonEtransform e x
[PROOFSTEP]
ext : 1
[GOAL]
case h₁
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ (mulDysonEtransform e (mulDysonEtransform e x)).fst = (mulDysonEtransform e x).fst
[PROOFSTEP]
dsimp
[GOAL]
case h₂
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ (mulDysonEtransform e (mulDysonEtransform e x)).snd = (mulDysonEtransform e x).snd
[PROOFSTEP]
dsimp
[GOAL]
case h₁
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ x.fst ∪ e • x.snd ∪ e • (x.snd ∩ e⁻¹ • x.fst) = x.fst ∪ e • x.snd
[PROOFSTEP]
rw [smul_finset_inter, smul_inv_smul, inter_comm, union_eq_left_iff_subset]
[GOAL]
case h₁
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ x.fst ∩ e • x.snd ⊆ x.fst ∪ e • x.snd
[PROOFSTEP]
exact inter_subset_union
[GOAL]
case h₂
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ x.snd ∩ e⁻¹ • x.fst ∩ e⁻¹ • (x.fst ∪ e • x.snd) = x.snd ∩ e⁻¹ • x.fst
[PROOFSTEP]
rw [smul_finset_union, inv_smul_smul, union_comm, inter_eq_left_iff_subset]
[GOAL]
case h₂
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ x.snd ∩ e⁻¹ • x.fst ⊆ x.snd ∪ e⁻¹ • x.fst
[PROOFSTEP]
exact inter_subset_union
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ e • (mulDysonEtransform e x).snd ⊆ (mulDysonEtransform e x).fst
[PROOFSTEP]
dsimp
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ e • (x.snd ∩ e⁻¹ • x.fst) ⊆ x.fst ∪ e • x.snd
[PROOFSTEP]
rw [smul_finset_inter, smul_inv_smul, inter_comm]
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ x.fst ∩ e • x.snd ⊆ x.fst ∪ e • x.snd
[PROOFSTEP]
exact inter_subset_union
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Group α
e : α
x : Finset α × Finset α
⊢ mulEtransformLeft 1 x = x
[PROOFSTEP]
simp [mulEtransformLeft]
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Group α
e : α
x : Finset α × Finset α
⊢ mulEtransformRight 1 x = x
[PROOFSTEP]
simp [mulEtransformRight]
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Group α
e : α
x : Finset α × Finset α
⊢ (mulEtransformLeft e x).fst * (mulEtransformLeft e x).snd ⊆ x.fst * x.snd
[PROOFSTEP]
refine' inter_mul_union_subset_union.trans (union_subset Subset.rfl _)
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Group α
e : α
x : Finset α × Finset α
⊢ op e • x.fst * e⁻¹ • x.snd ⊆ x.fst * x.snd
[PROOFSTEP]
rw [op_smul_finset_mul_eq_mul_smul_finset, smul_inv_smul]
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Group α
e : α
x : Finset α × Finset α
⊢ (mulEtransformRight e x).fst * (mulEtransformRight e x).snd ⊆ x.fst * x.snd
[PROOFSTEP]
refine' union_mul_inter_subset_union.trans (union_subset Subset.rfl _)
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Group α
e : α
x : Finset α × Finset α
⊢ op e • x.fst * e⁻¹ • x.snd ⊆ x.fst * x.snd
[PROOFSTEP]
rw [op_smul_finset_mul_eq_mul_smul_finset, smul_inv_smul]
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Group α
e : α
x : Finset α × Finset α
⊢ Finset.card x.fst + Finset.card (op e • x.fst) = 2 * Finset.card x.fst
[PROOFSTEP]
rw [card_smul_finset, two_mul]
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Group α
e : α
x : Finset α × Finset α
⊢ Finset.card x.snd + Finset.card (e⁻¹ • x.snd) = 2 * Finset.card x.snd
[PROOFSTEP]
rw [card_smul_finset, two_mul]
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Group α
e : α
x : Finset α × Finset α
⊢ card (mulEtransformLeft e x).fst + card (mulEtransformLeft e x).snd +
      (card (mulEtransformRight e x).fst + card (mulEtransformRight e x).snd) =
    card x.fst + card x.snd + (card x.fst + card x.snd)
[PROOFSTEP]
rw [add_add_add_comm, mulEtransformLeft.card, mulEtransformRight.card, ← mul_add, two_mul]
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ mulEtransformLeft e⁻¹ x = Prod.swap (mulEtransformRight e (Prod.swap x))
[PROOFSTEP]
simp [-op_inv, op_smul_eq_smul, mulEtransformLeft, mulEtransformRight]
[GOAL]
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ mulEtransformRight e⁻¹ x = Prod.swap (mulEtransformLeft e (Prod.swap x))
[PROOFSTEP]
simp [-op_inv, op_smul_eq_smul, mulEtransformLeft, mulEtransformRight]