Zulip Chat Archive

Stream: mathlib4

Topic: Bundle Construction Lemma Surrogate


Dominic Steinitz (Feb 24 2026 at 09:10):

In my construction of a Riemannian metric, I found myself needing a specialised version of something one gets for free from the Bundle Construction Lemma. Here's a generalised version of what I needed but maybe it already exists?

import Mathlib

open Set Bundle ContDiff Manifold Trivialization SmoothPartitionOfUnity

section foo

variable
  {B : Type*} [TopologicalSpace B]
  {F₁ : Type*} [NormedAddCommGroup F₁] [NormedSpace ℝ F₁]
  {F₂ : Type*} [NormedAddCommGroup F₂] [NormedSpace ℝ F₂]
  {E₁ : B → Type*} [∀ x, NormedAddCommGroup (E₁ x)] [∀ x, NormedSpace ℝ (E₁ x)]
  [TopologicalSpace (TotalSpace F₁ E₁)]
  [FiberBundle F₁ E₁] [VectorBundle ℝ F₁ E₁]
  {E₂ : B → Type*} [∀ x, NormedAddCommGroup (E₂ x)] [∀ x, NormedSpace ℝ (E₂ x)]
  [TopologicalSpace (TotalSpace F₂ E₂)]
  [FiberBundle F₂ E₂] [VectorBundle ℝ F₂ E₂]

/-- The inverse trivialization of the hom-bundle `Hom(E₁, E₂)` at a point `b` acts by
pushing forward the input via the trivialization of `E₁`, applying the linear map,
and pulling back the result via the inverse trivialization of `E₂`. -/
lemma hom_trivializationAt_symm_apply
    (i b : B) (hb : b ∈ (trivializationAt F₁ E₁ i).baseSet)
    (s : F₁ →L[ℝ] F₂) (u : E₁ b) :
    (trivializationAt (F₁ →L[ℝ] F₂) (fun x ↦ E₁ x →L[ℝ] E₂ x) i).symm b s u =
    (trivializationAt F₂ E₂ i).symm b
      (s (trivializationAt F₁ E₁ i |>.continuousLinearMapAt ℝ b u)) := by
  sorry

end foo

Last updated: Feb 28 2026 at 14:05 UTC