topology.fiber_bundle.is_homeomorphic_trivial_bundle
⟷
Mathlib.Topology.FiberBundle.IsHomeomorphicTrivialBundle
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
@@ -16,7 +16,7 @@ map `p : Z → B` between topological spaces is a "trivial fiber bundle" in the
exists a homeomorphism `h : Z ≃ₜ B × F` such that `proj x = (h x).1`. This is an abstraction which
is occasionally convenient in showing that a map is open, a quotient map, etc.
-This material was formerly linked to the main definition of fibre bundles, but after a series of
+This material was formerly linked to the main definition of fiber bundles, but after a series of
refactors, there is no longer a direct connection.
-/
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(first ported)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2019 Sébastien Gouëzel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel
-/
-import Mathbin.Topology.Homeomorph
+import Topology.Homeomorph
#align_import topology.fiber_bundle.is_homeomorphic_trivial_bundle from "leanprover-community/mathlib"@"be2c24f56783935652cefffb4bfca7e4b25d167e"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2019 Sébastien Gouëzel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel
-
-! This file was ported from Lean 3 source module topology.fiber_bundle.is_homeomorphic_trivial_bundle
-! leanprover-community/mathlib commit be2c24f56783935652cefffb4bfca7e4b25d167e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Topology.Homeomorph
+#align_import topology.fiber_bundle.is_homeomorphic_trivial_bundle from "leanprover-community/mathlib"@"be2c24f56783935652cefffb4bfca7e4b25d167e"
+
/-!
# Maps equivariantly-homeomorphic to projection in a product
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -42,49 +42,63 @@ namespace IsHomeomorphicTrivialFiberBundle
variable {F} {proj : Z → B}
+#print IsHomeomorphicTrivialFiberBundle.proj_eq /-
protected theorem proj_eq (h : IsHomeomorphicTrivialFiberBundle F proj) :
∃ e : Z ≃ₜ B × F, proj = Prod.fst ∘ e :=
⟨h.some, (funext h.choose_spec).symm⟩
#align is_homeomorphic_trivial_fiber_bundle.proj_eq IsHomeomorphicTrivialFiberBundle.proj_eq
+-/
+#print IsHomeomorphicTrivialFiberBundle.surjective_proj /-
/-- The projection from a trivial fiber bundle to its base is surjective. -/
protected theorem surjective_proj [Nonempty F] (h : IsHomeomorphicTrivialFiberBundle F proj) :
Function.Surjective proj := by
obtain ⟨e, rfl⟩ := h.proj_eq
exact prod.fst_surjective.comp e.surjective
#align is_homeomorphic_trivial_fiber_bundle.surjective_proj IsHomeomorphicTrivialFiberBundle.surjective_proj
+-/
+#print IsHomeomorphicTrivialFiberBundle.continuous_proj /-
/-- The projection from a trivial fiber bundle to its base is continuous. -/
protected theorem continuous_proj (h : IsHomeomorphicTrivialFiberBundle F proj) : Continuous proj :=
by
obtain ⟨e, rfl⟩ := h.proj_eq
exact continuous_fst.comp e.continuous
#align is_homeomorphic_trivial_fiber_bundle.continuous_proj IsHomeomorphicTrivialFiberBundle.continuous_proj
+-/
+#print IsHomeomorphicTrivialFiberBundle.isOpenMap_proj /-
/-- The projection from a trivial fiber bundle to its base is open. -/
protected theorem isOpenMap_proj (h : IsHomeomorphicTrivialFiberBundle F proj) : IsOpenMap proj :=
by
obtain ⟨e, rfl⟩ := h.proj_eq
exact is_open_map_fst.comp e.is_open_map
#align is_homeomorphic_trivial_fiber_bundle.is_open_map_proj IsHomeomorphicTrivialFiberBundle.isOpenMap_proj
+-/
+#print IsHomeomorphicTrivialFiberBundle.quotientMap_proj /-
/-- The projection from a trivial fiber bundle to its base is open. -/
protected theorem quotientMap_proj [Nonempty F] (h : IsHomeomorphicTrivialFiberBundle F proj) :
QuotientMap proj :=
h.isOpenMap_proj.to_quotientMap h.continuous_proj h.surjective_proj
#align is_homeomorphic_trivial_fiber_bundle.quotient_map_proj IsHomeomorphicTrivialFiberBundle.quotientMap_proj
+-/
end IsHomeomorphicTrivialFiberBundle
+#print isHomeomorphicTrivialFiberBundle_fst /-
/-- The first projection in a product is a trivial fiber bundle. -/
theorem isHomeomorphicTrivialFiberBundle_fst :
IsHomeomorphicTrivialFiberBundle F (Prod.fst : B × F → B) :=
⟨Homeomorph.refl _, fun x => rfl⟩
#align is_homeomorphic_trivial_fiber_bundle_fst isHomeomorphicTrivialFiberBundle_fst
+-/
+#print isHomeomorphicTrivialFiberBundle_snd /-
/-- The second projection in a product is a trivial fiber bundle. -/
theorem isHomeomorphicTrivialFiberBundle_snd :
IsHomeomorphicTrivialFiberBundle F (Prod.snd : F × B → B) :=
⟨Homeomorph.prodComm _ _, fun x => rfl⟩
#align is_homeomorphic_trivial_fiber_bundle_snd isHomeomorphicTrivialFiberBundle_snd
+-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -42,23 +42,11 @@ namespace IsHomeomorphicTrivialFiberBundle
variable {F} {proj : Z → B}
-/- warning: is_homeomorphic_trivial_fiber_bundle.proj_eq -> IsHomeomorphicTrivialFiberBundle.proj_eq is a dubious translation:
-lean 3 declaration is
- forall {B : Type.{u1}} {F : Type.{u2}} {Z : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} B] [_inst_2 : TopologicalSpace.{u2} F] [_inst_3 : TopologicalSpace.{u3} Z] {proj : Z -> B}, (IsHomeomorphicTrivialFiberBundle.{u1, u2, u3} B F Z _inst_1 _inst_2 _inst_3 proj) -> (Exists.{max (succ u3) (succ (max u1 u2))} (Homeomorph.{u3, max u1 u2} Z (Prod.{u1, u2} B F) _inst_3 (Prod.topologicalSpace.{u1, u2} B F _inst_1 _inst_2)) (fun (e : Homeomorph.{u3, max u1 u2} Z (Prod.{u1, u2} B F) _inst_3 (Prod.topologicalSpace.{u1, u2} B F _inst_1 _inst_2)) => Eq.{max (succ u3) (succ u1)} (Z -> B) proj (Function.comp.{succ u3, max (succ u1) (succ u2), succ u1} Z (Prod.{u1, u2} B F) B (Prod.fst.{u1, u2} B F) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ u3) (succ (max u1 u2))} (Homeomorph.{u3, max u1 u2} Z (Prod.{u1, u2} B F) _inst_3 (Prod.topologicalSpace.{u1, u2} B F _inst_1 _inst_2)) (fun (_x : Homeomorph.{u3, max u1 u2} Z (Prod.{u1, u2} B F) _inst_3 (Prod.topologicalSpace.{u1, u2} B F _inst_1 _inst_2)) => Z -> (Prod.{u1, u2} B F)) (Homeomorph.hasCoeToFun.{u3, max u1 u2} Z (Prod.{u1, u2} B F) _inst_3 (Prod.topologicalSpace.{u1, u2} B F _inst_1 _inst_2)) e))))
-but is expected to have type
- forall {B : Type.{u3}} {F : Type.{u2}} {Z : Type.{u1}} [_inst_1 : TopologicalSpace.{u3} B] [_inst_2 : TopologicalSpace.{u2} F] [_inst_3 : TopologicalSpace.{u1} Z] {proj : Z -> B}, (IsHomeomorphicTrivialFiberBundle.{u3, u2, u1} B F Z _inst_1 _inst_2 _inst_3 proj) -> (Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Homeomorph.{u1, max u2 u3} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) (fun (e : Homeomorph.{u1, max u2 u3} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) => Eq.{max (succ u3) (succ u1)} (Z -> B) proj (Function.comp.{succ u1, max (succ u2) (succ u3), succ u3} Z (Prod.{u3, u2} B F) B (Prod.fst.{u3, u2} B F) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ u1, succ (max u3 u2)} (Homeomorph.{u1, max u3 u2} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) Z (fun (_x : Z) => Prod.{u3, u2} B F) (EmbeddingLike.toFunLike.{max (succ u1) (succ (max u3 u2)), succ u1, succ (max u3 u2)} (Homeomorph.{u1, max u3 u2} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) Z (Prod.{u3, u2} B F) (EquivLike.toEmbeddingLike.{max (succ u1) (succ (max u3 u2)), succ u1, succ (max u3 u2)} (Homeomorph.{u1, max u3 u2} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) Z (Prod.{u3, u2} B F) (Homeomorph.instEquivLikeHomeomorph.{u1, max u3 u2} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)))) e))))
-Case conversion may be inaccurate. Consider using '#align is_homeomorphic_trivial_fiber_bundle.proj_eq IsHomeomorphicTrivialFiberBundle.proj_eqₓ'. -/
protected theorem proj_eq (h : IsHomeomorphicTrivialFiberBundle F proj) :
∃ e : Z ≃ₜ B × F, proj = Prod.fst ∘ e :=
⟨h.some, (funext h.choose_spec).symm⟩
#align is_homeomorphic_trivial_fiber_bundle.proj_eq IsHomeomorphicTrivialFiberBundle.proj_eq
-/- warning: is_homeomorphic_trivial_fiber_bundle.surjective_proj -> IsHomeomorphicTrivialFiberBundle.surjective_proj is a dubious translation:
-lean 3 declaration is
- forall {B : Type.{u1}} {F : Type.{u2}} {Z : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} B] [_inst_2 : TopologicalSpace.{u2} F] [_inst_3 : TopologicalSpace.{u3} Z] {proj : Z -> B} [_inst_4 : Nonempty.{succ u2} F], (IsHomeomorphicTrivialFiberBundle.{u1, u2, u3} B F Z _inst_1 _inst_2 _inst_3 proj) -> (Function.Surjective.{succ u3, succ u1} Z B proj)
-but is expected to have type
- forall {B : Type.{u2}} {F : Type.{u3}} {Z : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} B] [_inst_2 : TopologicalSpace.{u3} F] [_inst_3 : TopologicalSpace.{u1} Z] {proj : Z -> B} [_inst_4 : Nonempty.{succ u3} F], (IsHomeomorphicTrivialFiberBundle.{u2, u3, u1} B F Z _inst_1 _inst_2 _inst_3 proj) -> (Function.Surjective.{succ u1, succ u2} Z B proj)
-Case conversion may be inaccurate. Consider using '#align is_homeomorphic_trivial_fiber_bundle.surjective_proj IsHomeomorphicTrivialFiberBundle.surjective_projₓ'. -/
/-- The projection from a trivial fiber bundle to its base is surjective. -/
protected theorem surjective_proj [Nonempty F] (h : IsHomeomorphicTrivialFiberBundle F proj) :
Function.Surjective proj := by
@@ -66,12 +54,6 @@ protected theorem surjective_proj [Nonempty F] (h : IsHomeomorphicTrivialFiberBu
exact prod.fst_surjective.comp e.surjective
#align is_homeomorphic_trivial_fiber_bundle.surjective_proj IsHomeomorphicTrivialFiberBundle.surjective_proj
-/- warning: is_homeomorphic_trivial_fiber_bundle.continuous_proj -> IsHomeomorphicTrivialFiberBundle.continuous_proj is a dubious translation:
-lean 3 declaration is
- forall {B : Type.{u1}} {F : Type.{u2}} {Z : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} B] [_inst_2 : TopologicalSpace.{u2} F] [_inst_3 : TopologicalSpace.{u3} Z] {proj : Z -> B}, (IsHomeomorphicTrivialFiberBundle.{u1, u2, u3} B F Z _inst_1 _inst_2 _inst_3 proj) -> (Continuous.{u3, u1} Z B _inst_3 _inst_1 proj)
-but is expected to have type
- forall {B : Type.{u3}} {F : Type.{u2}} {Z : Type.{u1}} [_inst_1 : TopologicalSpace.{u3} B] [_inst_2 : TopologicalSpace.{u2} F] [_inst_3 : TopologicalSpace.{u1} Z] {proj : Z -> B}, (IsHomeomorphicTrivialFiberBundle.{u3, u2, u1} B F Z _inst_1 _inst_2 _inst_3 proj) -> (Continuous.{u1, u3} Z B _inst_3 _inst_1 proj)
-Case conversion may be inaccurate. Consider using '#align is_homeomorphic_trivial_fiber_bundle.continuous_proj IsHomeomorphicTrivialFiberBundle.continuous_projₓ'. -/
/-- The projection from a trivial fiber bundle to its base is continuous. -/
protected theorem continuous_proj (h : IsHomeomorphicTrivialFiberBundle F proj) : Continuous proj :=
by
@@ -79,12 +61,6 @@ protected theorem continuous_proj (h : IsHomeomorphicTrivialFiberBundle F proj)
exact continuous_fst.comp e.continuous
#align is_homeomorphic_trivial_fiber_bundle.continuous_proj IsHomeomorphicTrivialFiberBundle.continuous_proj
-/- warning: is_homeomorphic_trivial_fiber_bundle.is_open_map_proj -> IsHomeomorphicTrivialFiberBundle.isOpenMap_proj is a dubious translation:
-lean 3 declaration is
- forall {B : Type.{u1}} {F : Type.{u2}} {Z : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} B] [_inst_2 : TopologicalSpace.{u2} F] [_inst_3 : TopologicalSpace.{u3} Z] {proj : Z -> B}, (IsHomeomorphicTrivialFiberBundle.{u1, u2, u3} B F Z _inst_1 _inst_2 _inst_3 proj) -> (IsOpenMap.{u3, u1} Z B _inst_3 _inst_1 proj)
-but is expected to have type
- forall {B : Type.{u3}} {F : Type.{u2}} {Z : Type.{u1}} [_inst_1 : TopologicalSpace.{u3} B] [_inst_2 : TopologicalSpace.{u2} F] [_inst_3 : TopologicalSpace.{u1} Z] {proj : Z -> B}, (IsHomeomorphicTrivialFiberBundle.{u3, u2, u1} B F Z _inst_1 _inst_2 _inst_3 proj) -> (IsOpenMap.{u1, u3} Z B _inst_3 _inst_1 proj)
-Case conversion may be inaccurate. Consider using '#align is_homeomorphic_trivial_fiber_bundle.is_open_map_proj IsHomeomorphicTrivialFiberBundle.isOpenMap_projₓ'. -/
/-- The projection from a trivial fiber bundle to its base is open. -/
protected theorem isOpenMap_proj (h : IsHomeomorphicTrivialFiberBundle F proj) : IsOpenMap proj :=
by
@@ -92,12 +68,6 @@ protected theorem isOpenMap_proj (h : IsHomeomorphicTrivialFiberBundle F proj) :
exact is_open_map_fst.comp e.is_open_map
#align is_homeomorphic_trivial_fiber_bundle.is_open_map_proj IsHomeomorphicTrivialFiberBundle.isOpenMap_proj
-/- warning: is_homeomorphic_trivial_fiber_bundle.quotient_map_proj -> IsHomeomorphicTrivialFiberBundle.quotientMap_proj is a dubious translation:
-lean 3 declaration is
- forall {B : Type.{u1}} {F : Type.{u2}} {Z : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} B] [_inst_2 : TopologicalSpace.{u2} F] [_inst_3 : TopologicalSpace.{u3} Z] {proj : Z -> B} [_inst_4 : Nonempty.{succ u2} F], (IsHomeomorphicTrivialFiberBundle.{u1, u2, u3} B F Z _inst_1 _inst_2 _inst_3 proj) -> (QuotientMap.{u3, u1} Z B _inst_3 _inst_1 proj)
-but is expected to have type
- forall {B : Type.{u2}} {F : Type.{u3}} {Z : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} B] [_inst_2 : TopologicalSpace.{u3} F] [_inst_3 : TopologicalSpace.{u1} Z] {proj : Z -> B} [_inst_4 : Nonempty.{succ u3} F], (IsHomeomorphicTrivialFiberBundle.{u2, u3, u1} B F Z _inst_1 _inst_2 _inst_3 proj) -> (QuotientMap.{u1, u2} Z B _inst_3 _inst_1 proj)
-Case conversion may be inaccurate. Consider using '#align is_homeomorphic_trivial_fiber_bundle.quotient_map_proj IsHomeomorphicTrivialFiberBundle.quotientMap_projₓ'. -/
/-- The projection from a trivial fiber bundle to its base is open. -/
protected theorem quotientMap_proj [Nonempty F] (h : IsHomeomorphicTrivialFiberBundle F proj) :
QuotientMap proj :=
@@ -106,24 +76,12 @@ protected theorem quotientMap_proj [Nonempty F] (h : IsHomeomorphicTrivialFiberB
end IsHomeomorphicTrivialFiberBundle
-/- warning: is_homeomorphic_trivial_fiber_bundle_fst -> isHomeomorphicTrivialFiberBundle_fst is a dubious translation:
-lean 3 declaration is
- forall {B : Type.{u1}} (F : Type.{u2}) [_inst_1 : TopologicalSpace.{u1} B] [_inst_2 : TopologicalSpace.{u2} F], IsHomeomorphicTrivialFiberBundle.{u1, u2, max u1 u2} B F (Prod.{u1, u2} B F) _inst_1 _inst_2 (Prod.topologicalSpace.{u1, u2} B F _inst_1 _inst_2) (Prod.fst.{u1, u2} B F)
-but is expected to have type
- forall {B : Type.{u2}} (F : Type.{u1}) [_inst_1 : TopologicalSpace.{u2} B] [_inst_2 : TopologicalSpace.{u1} F], IsHomeomorphicTrivialFiberBundle.{u2, u1, max u2 u1} B F (Prod.{u2, u1} B F) _inst_1 _inst_2 (instTopologicalSpaceProd.{u2, u1} B F _inst_1 _inst_2) (Prod.fst.{u2, u1} B F)
-Case conversion may be inaccurate. Consider using '#align is_homeomorphic_trivial_fiber_bundle_fst isHomeomorphicTrivialFiberBundle_fstₓ'. -/
/-- The first projection in a product is a trivial fiber bundle. -/
theorem isHomeomorphicTrivialFiberBundle_fst :
IsHomeomorphicTrivialFiberBundle F (Prod.fst : B × F → B) :=
⟨Homeomorph.refl _, fun x => rfl⟩
#align is_homeomorphic_trivial_fiber_bundle_fst isHomeomorphicTrivialFiberBundle_fst
-/- warning: is_homeomorphic_trivial_fiber_bundle_snd -> isHomeomorphicTrivialFiberBundle_snd is a dubious translation:
-lean 3 declaration is
- forall {B : Type.{u1}} (F : Type.{u2}) [_inst_1 : TopologicalSpace.{u1} B] [_inst_2 : TopologicalSpace.{u2} F], IsHomeomorphicTrivialFiberBundle.{u1, u2, max u2 u1} B F (Prod.{u2, u1} F B) _inst_1 _inst_2 (Prod.topologicalSpace.{u2, u1} F B _inst_2 _inst_1) (Prod.snd.{u2, u1} F B)
-but is expected to have type
- forall {B : Type.{u2}} (F : Type.{u1}) [_inst_1 : TopologicalSpace.{u2} B] [_inst_2 : TopologicalSpace.{u1} F], IsHomeomorphicTrivialFiberBundle.{u2, u1, max u2 u1} B F (Prod.{u1, u2} F B) _inst_1 _inst_2 (instTopologicalSpaceProd.{u1, u2} F B _inst_2 _inst_1) (Prod.snd.{u1, u2} F B)
-Case conversion may be inaccurate. Consider using '#align is_homeomorphic_trivial_fiber_bundle_snd isHomeomorphicTrivialFiberBundle_sndₓ'. -/
/-- The second projection in a product is a trivial fiber bundle. -/
theorem isHomeomorphicTrivialFiberBundle_snd :
IsHomeomorphicTrivialFiberBundle F (Prod.snd : F × B → B) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce7e9d53d4bbc38065db3b595cd5bd73c323bc1d
@@ -46,7 +46,7 @@ variable {F} {proj : Z → B}
lean 3 declaration is
forall {B : Type.{u1}} {F : Type.{u2}} {Z : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} B] [_inst_2 : TopologicalSpace.{u2} F] [_inst_3 : TopologicalSpace.{u3} Z] {proj : Z -> B}, (IsHomeomorphicTrivialFiberBundle.{u1, u2, u3} B F Z _inst_1 _inst_2 _inst_3 proj) -> (Exists.{max (succ u3) (succ (max u1 u2))} (Homeomorph.{u3, max u1 u2} Z (Prod.{u1, u2} B F) _inst_3 (Prod.topologicalSpace.{u1, u2} B F _inst_1 _inst_2)) (fun (e : Homeomorph.{u3, max u1 u2} Z (Prod.{u1, u2} B F) _inst_3 (Prod.topologicalSpace.{u1, u2} B F _inst_1 _inst_2)) => Eq.{max (succ u3) (succ u1)} (Z -> B) proj (Function.comp.{succ u3, max (succ u1) (succ u2), succ u1} Z (Prod.{u1, u2} B F) B (Prod.fst.{u1, u2} B F) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ u3) (succ (max u1 u2))} (Homeomorph.{u3, max u1 u2} Z (Prod.{u1, u2} B F) _inst_3 (Prod.topologicalSpace.{u1, u2} B F _inst_1 _inst_2)) (fun (_x : Homeomorph.{u3, max u1 u2} Z (Prod.{u1, u2} B F) _inst_3 (Prod.topologicalSpace.{u1, u2} B F _inst_1 _inst_2)) => Z -> (Prod.{u1, u2} B F)) (Homeomorph.hasCoeToFun.{u3, max u1 u2} Z (Prod.{u1, u2} B F) _inst_3 (Prod.topologicalSpace.{u1, u2} B F _inst_1 _inst_2)) e))))
but is expected to have type
- forall {B : Type.{u3}} {F : Type.{u2}} {Z : Type.{u1}} [_inst_1 : TopologicalSpace.{u3} B] [_inst_2 : TopologicalSpace.{u2} F] [_inst_3 : TopologicalSpace.{u1} Z] {proj : Z -> B}, (IsHomeomorphicTrivialFiberBundle.{u3, u2, u1} B F Z _inst_1 _inst_2 _inst_3 proj) -> (Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Homeomorph.{u1, max u2 u3} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) (fun (e : Homeomorph.{u1, max u2 u3} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) => Eq.{max (succ u3) (succ u1)} (Z -> B) proj (Function.comp.{succ u1, max (succ u2) (succ u3), succ u3} Z (Prod.{u3, u2} B F) B (Prod.fst.{u3, u2} B F) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u1, max (succ u3) (succ u2)} (Homeomorph.{u1, max u2 u3} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) Z (fun (_x : Z) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Z) => Prod.{u3, u2} B F) _x) (EmbeddingLike.toFunLike.{max (max (succ u3) (succ u2)) (succ u1), succ u1, max (succ u3) (succ u2)} (Homeomorph.{u1, max u2 u3} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) Z (Prod.{u3, u2} B F) (EquivLike.toEmbeddingLike.{max (max (succ u3) (succ u2)) (succ u1), succ u1, max (succ u3) (succ u2)} (Homeomorph.{u1, max u2 u3} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) Z (Prod.{u3, u2} B F) (Homeomorph.instEquivLikeHomeomorph.{u1, max u3 u2} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)))) e))))
+ forall {B : Type.{u3}} {F : Type.{u2}} {Z : Type.{u1}} [_inst_1 : TopologicalSpace.{u3} B] [_inst_2 : TopologicalSpace.{u2} F] [_inst_3 : TopologicalSpace.{u1} Z] {proj : Z -> B}, (IsHomeomorphicTrivialFiberBundle.{u3, u2, u1} B F Z _inst_1 _inst_2 _inst_3 proj) -> (Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Homeomorph.{u1, max u2 u3} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) (fun (e : Homeomorph.{u1, max u2 u3} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) => Eq.{max (succ u3) (succ u1)} (Z -> B) proj (Function.comp.{succ u1, max (succ u2) (succ u3), succ u3} Z (Prod.{u3, u2} B F) B (Prod.fst.{u3, u2} B F) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ u1, succ (max u3 u2)} (Homeomorph.{u1, max u3 u2} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) Z (fun (_x : Z) => Prod.{u3, u2} B F) (EmbeddingLike.toFunLike.{max (succ u1) (succ (max u3 u2)), succ u1, succ (max u3 u2)} (Homeomorph.{u1, max u3 u2} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) Z (Prod.{u3, u2} B F) (EquivLike.toEmbeddingLike.{max (succ u1) (succ (max u3 u2)), succ u1, succ (max u3 u2)} (Homeomorph.{u1, max u3 u2} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)) Z (Prod.{u3, u2} B F) (Homeomorph.instEquivLikeHomeomorph.{u1, max u3 u2} Z (Prod.{u3, u2} B F) _inst_3 (instTopologicalSpaceProd.{u3, u2} B F _inst_1 _inst_2)))) e))))
Case conversion may be inaccurate. Consider using '#align is_homeomorphic_trivial_fiber_bundle.proj_eq IsHomeomorphicTrivialFiberBundle.proj_eqₓ'. -/
protected theorem proj_eq (h : IsHomeomorphicTrivialFiberBundle F proj) :
∃ e : Z ≃ₜ B × F, proj = Prod.fst ∘ e :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel
! This file was ported from Lean 3 source module topology.fiber_bundle.is_homeomorphic_trivial_bundle
-! leanprover-community/mathlib commit ad0089aca372256fe53dde13ca0dfea569bf5ac7
+! leanprover-community/mathlib commit be2c24f56783935652cefffb4bfca7e4b25d167e
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -21,7 +21,7 @@ map `p : Z → B` between topological spaces is a "trivial fiber bundle" in the
exists a homeomorphism `h : Z ≃ₜ B × F` such that `proj x = (h x).1`. This is an abstraction which
is occasionally convenient in showing that a map is open, a quotient map, etc.
-This material was formerly linked to the main definition of fibre bundles, but after a series of
+This material was formerly linked to the main definition of fiber bundles, but after a series of
refactors, there is no longer a direct connection.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -47,13 +47,15 @@ protected theorem surjective_proj [Nonempty F] (h : IsHomeomorphicTrivialFiberBu
#align is_homeomorphic_trivial_fiber_bundle.surjective_proj IsHomeomorphicTrivialFiberBundle.surjective_proj
/-- The projection from a trivial fiber bundle to its base is continuous. -/
-protected theorem continuous_proj (h : IsHomeomorphicTrivialFiberBundle F proj) : Continuous proj :=
- by obtain ⟨e, rfl⟩ := h.proj_eq; exact continuous_fst.comp e.continuous
+protected theorem continuous_proj (h : IsHomeomorphicTrivialFiberBundle F proj) :
+ Continuous proj := by
+ obtain ⟨e, rfl⟩ := h.proj_eq; exact continuous_fst.comp e.continuous
#align is_homeomorphic_trivial_fiber_bundle.continuous_proj IsHomeomorphicTrivialFiberBundle.continuous_proj
/-- The projection from a trivial fiber bundle to its base is open. -/
-protected theorem isOpenMap_proj (h : IsHomeomorphicTrivialFiberBundle F proj) : IsOpenMap proj :=
- by obtain ⟨e, rfl⟩ := h.proj_eq; exact isOpenMap_fst.comp e.isOpenMap
+protected theorem isOpenMap_proj (h : IsHomeomorphicTrivialFiberBundle F proj) :
+ IsOpenMap proj := by
+ obtain ⟨e, rfl⟩ := h.proj_eq; exact isOpenMap_fst.comp e.isOpenMap
#align is_homeomorphic_trivial_fiber_bundle.is_open_map_proj IsHomeomorphicTrivialFiberBundle.isOpenMap_proj
/-- The projection from a trivial fiber bundle to its base is open. -/
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -20,7 +20,7 @@ refactors, there is no longer a direct connection.
-/
-variable {B : Type _} (F : Type _) {Z : Type _} [TopologicalSpace B] [TopologicalSpace F]
+variable {B : Type*} (F : Type*) {Z : Type*} [TopologicalSpace B] [TopologicalSpace F]
[TopologicalSpace Z]
/-- A trivial fiber bundle with fiber `F` over a base `B` is a space `Z`
@@ -2,14 +2,11 @@
Copyright (c) 2019 Sébastien Gouëzel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel
-
-! This file was ported from Lean 3 source module topology.fiber_bundle.is_homeomorphic_trivial_bundle
-! leanprover-community/mathlib commit be2c24f56783935652cefffb4bfca7e4b25d167e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Topology.Homeomorph
+#align_import topology.fiber_bundle.is_homeomorphic_trivial_bundle from "leanprover-community/mathlib"@"be2c24f56783935652cefffb4bfca7e4b25d167e"
+
/-!
# Maps equivariantly-homeomorphic to projection in a product
fix-comments.py
on all files.@@ -28,7 +28,7 @@ variable {B : Type _} (F : Type _) {Z : Type _} [TopologicalSpace B] [Topologica
/-- A trivial fiber bundle with fiber `F` over a base `B` is a space `Z`
projecting on `B` for which there exists a homeomorphism to `B × F` that sends `proj`
-to `prod.fst`. -/
+to `Prod.fst`. -/
def IsHomeomorphicTrivialFiberBundle (proj : Z → B) : Prop :=
∃ e : Z ≃ₜ B × F, ∀ x, (e x).1 = proj x
#align is_homeomorphic_trivial_fiber_bundle IsHomeomorphicTrivialFiberBundle
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel
! This file was ported from Lean 3 source module topology.fiber_bundle.is_homeomorphic_trivial_bundle
-! leanprover-community/mathlib commit 0a0ec35061ed9960bf0e7ffb0335f44447b58977
+! leanprover-community/mathlib commit be2c24f56783935652cefffb4bfca7e4b25d167e
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -18,7 +18,7 @@ map `p : Z → B` between topological spaces is a "trivial fiber bundle" in the
exists a homeomorphism `h : Z ≃ₜ B × F` such that `proj x = (h x).1`. This is an abstraction which
is occasionally convenient in showing that a map is open, a quotient map, etc.
-This material was formerly linked to the main definition of fibre bundles, but after a series of
+This material was formerly linked to the main definition of fiber bundles, but after a series of
refactors, there is no longer a direct connection.
-/
@@ -78,4 +78,3 @@ theorem isHomeomorphicTrivialFiberBundle_snd :
IsHomeomorphicTrivialFiberBundle F (Prod.snd : F × B → B) :=
⟨Homeomorph.prodComm _ _, fun _x => rfl⟩
#align is_homeomorphic_trivial_fiber_bundle_snd isHomeomorphicTrivialFiberBundle_snd
-
@@ -3,8 +3,7 @@ Copyright (c) 2019 Sébastien Gouëzel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel
-! This file was ported from Lean 3 source module
-! topology.fiber_bundle.is_homeomorphic_trivial_bundle
+! This file was ported from Lean 3 source module topology.fiber_bundle.is_homeomorphic_trivial_bundle
! leanprover-community/mathlib commit 0a0ec35061ed9960bf0e7ffb0335f44447b58977
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
The unported dependencies are