geometry.manifold.cont_mdiff_mapMathlib.Geometry.Manifold.ContMDiffMap

This file has been ported!

Changes since the initial port

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.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright © 2020 Nicolò Cavalleri. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nicolò Cavalleri
 -/
-import Geometry.Manifold.ContMdiff
+import Geometry.Manifold.ContMDiff.Defs
 import Topology.ContinuousFunction.Basic
 
 #align_import geometry.manifold.cont_mdiff_map from "leanprover-community/mathlib"@"30faa0c3618ce1472bf6305ae0e3fa56affa3f95"
Diff
@@ -57,12 +57,12 @@ namespace ContMDiffMap
 
 variable {I} {I'} {M} {M'} {n}
 
-#print ContMDiffMap.instDFunLike /-
-instance instDFunLike : DFunLike C^n⟮I, M; I', M'⟯ M fun _ => M'
+#print ContMDiffMap.instFunLike /-
+instance instFunLike : DFunLike C^n⟮I, M; I', M'⟯ M fun _ => M'
     where
   coe := Subtype.val
   coe_injective' := Subtype.coe_injective
-#align cont_mdiff_map.fun_like ContMDiffMap.instDFunLike
+#align cont_mdiff_map.fun_like ContMDiffMap.instFunLike
 -/
 
 #print ContMDiffMap.contMDiff /-
@@ -80,7 +80,7 @@ protected theorem smooth (f : C^∞⟮I, M; I', M'⟯) : Smooth I I' f :=
 instance : Coe C^n⟮I, M; I', M'⟯ C(M, M') :=
   ⟨fun f => ⟨f, f.ContMDiff.Continuous⟩⟩
 
-attribute [to_additive_ignore_args 21] ContMDiffMap ContMDiffMap.instDFunLike
+attribute [to_additive_ignore_args 21] ContMDiffMap ContMDiffMap.instFunLike
   ContMDiffMap.ContinuousMap.hasCoe
 
 variable {f g : C^n⟮I, M; I', M'⟯}
Diff
@@ -57,12 +57,12 @@ namespace ContMDiffMap
 
 variable {I} {I'} {M} {M'} {n}
 
-#print ContMDiffMap.funLike /-
-instance funLike : FunLike C^n⟮I, M; I', M'⟯ M fun _ => M'
+#print ContMDiffMap.instDFunLike /-
+instance instDFunLike : DFunLike C^n⟮I, M; I', M'⟯ M fun _ => M'
     where
   coe := Subtype.val
   coe_injective' := Subtype.coe_injective
-#align cont_mdiff_map.fun_like ContMDiffMap.funLike
+#align cont_mdiff_map.fun_like ContMDiffMap.instDFunLike
 -/
 
 #print ContMDiffMap.contMDiff /-
@@ -80,7 +80,7 @@ protected theorem smooth (f : C^∞⟮I, M; I', M'⟯) : Smooth I I' f :=
 instance : Coe C^n⟮I, M; I', M'⟯ C(M, M') :=
   ⟨fun f => ⟨f, f.ContMDiff.Continuous⟩⟩
 
-attribute [to_additive_ignore_args 21] ContMDiffMap ContMDiffMap.funLike
+attribute [to_additive_ignore_args 21] ContMDiffMap ContMDiffMap.instDFunLike
   ContMDiffMap.ContinuousMap.hasCoe
 
 variable {f g : C^n⟮I, M; I', M'⟯}
Diff
@@ -3,8 +3,8 @@ Copyright © 2020 Nicolò Cavalleri. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nicolò Cavalleri
 -/
-import Mathbin.Geometry.Manifold.ContMdiff
-import Mathbin.Topology.ContinuousFunction.Basic
+import Geometry.Manifold.ContMdiff
+import Topology.ContinuousFunction.Basic
 
 #align_import geometry.manifold.cont_mdiff_map from "leanprover-community/mathlib"@"30faa0c3618ce1472bf6305ae0e3fa56affa3f95"
 
Diff
@@ -2,15 +2,12 @@
 Copyright © 2020 Nicolò Cavalleri. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nicolò Cavalleri
-
-! This file was ported from Lean 3 source module geometry.manifold.cont_mdiff_map
-! leanprover-community/mathlib commit 30faa0c3618ce1472bf6305ae0e3fa56affa3f95
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Geometry.Manifold.ContMdiff
 import Mathbin.Topology.ContinuousFunction.Basic
 
+#align_import geometry.manifold.cont_mdiff_map from "leanprover-community/mathlib"@"30faa0c3618ce1472bf6305ae0e3fa56affa3f95"
+
 /-!
 # Smooth bundled map
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nicolò Cavalleri
 
 ! This file was ported from Lean 3 source module geometry.manifold.cont_mdiff_map
-! leanprover-community/mathlib commit 86c29aefdba50b3f33e86e52e3b2f51a0d8f0282
+! leanprover-community/mathlib commit 30faa0c3618ce1472bf6305ae0e3fa56affa3f95
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.Topology.ContinuousFunction.Basic
 /-!
 # Smooth bundled map
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file we define the type `cont_mdiff_map` of `n` times continuously differentiable
 bundled maps.
 -/
Diff
@@ -31,115 +31,147 @@ variable {𝕜 : Type _} [NontriviallyNormedField 𝕜] {E : Type _} [NormedAddC
   [NormedAddCommGroup F] [NormedSpace 𝕜 F] {G : Type _} [TopologicalSpace G]
   {J : ModelWithCorners 𝕜 F G} {N : Type _} [TopologicalSpace N] [ChartedSpace G N] (n : ℕ∞)
 
+#print ContMDiffMap /-
 /-- Bundled `n` times continuously differentiable maps. -/
-def ContMdiffMap :=
+def ContMDiffMap :=
   { f : M → M' // ContMDiff I I' n f }
-#align cont_mdiff_map ContMdiffMap
+#align cont_mdiff_map ContMDiffMap
+-/
 
+#print SmoothMap /-
 /-- Bundled smooth maps. -/
 @[reducible]
 def SmoothMap :=
-  ContMdiffMap I I' M M' ⊤
+  ContMDiffMap I I' M M' ⊤
 #align smooth_map SmoothMap
+-/
 
-scoped[Manifold] notation "C^" n "⟮" I ", " M "; " I' ", " M' "⟯" => ContMdiffMap I I' M M' n
+scoped[Manifold] notation "C^" n "⟮" I ", " M "; " I' ", " M' "⟯" => ContMDiffMap I I' M M' n
 
 scoped[Manifold]
-  notation "C^" n "⟮" I ", " M "; " k "⟯" => ContMdiffMap I (modelWithCornersSelf k k) M k n
+  notation "C^" n "⟮" I ", " M "; " k "⟯" => ContMDiffMap I (modelWithCornersSelf k k) M k n
 
 open scoped Manifold
 
-namespace ContMdiffMap
+namespace ContMDiffMap
 
 variable {I} {I'} {M} {M'} {n}
 
+#print ContMDiffMap.funLike /-
 instance funLike : FunLike C^n⟮I, M; I', M'⟯ M fun _ => M'
     where
   coe := Subtype.val
   coe_injective' := Subtype.coe_injective
-#align cont_mdiff_map.fun_like ContMdiffMap.funLike
+#align cont_mdiff_map.fun_like ContMDiffMap.funLike
+-/
 
+#print ContMDiffMap.contMDiff /-
 protected theorem contMDiff (f : C^n⟮I, M; I', M'⟯) : ContMDiff I I' n f :=
   f.Prop
-#align cont_mdiff_map.cont_mdiff ContMdiffMap.contMDiff
+#align cont_mdiff_map.cont_mdiff ContMDiffMap.contMDiff
+-/
 
+#print ContMDiffMap.smooth /-
 protected theorem smooth (f : C^∞⟮I, M; I', M'⟯) : Smooth I I' f :=
   f.Prop
-#align cont_mdiff_map.smooth ContMdiffMap.smooth
+#align cont_mdiff_map.smooth ContMDiffMap.smooth
+-/
 
 instance : Coe C^n⟮I, M; I', M'⟯ C(M, M') :=
   ⟨fun f => ⟨f, f.ContMDiff.Continuous⟩⟩
 
-attribute [to_additive_ignore_args 21] ContMdiffMap ContMdiffMap.funLike
-  ContMdiffMap.ContinuousMap.hasCoe
+attribute [to_additive_ignore_args 21] ContMDiffMap ContMDiffMap.funLike
+  ContMDiffMap.ContinuousMap.hasCoe
 
 variable {f g : C^n⟮I, M; I', M'⟯}
 
+#print ContMDiffMap.coeFn_mk /-
 @[simp]
 theorem coeFn_mk (f : M → M') (hf : ContMDiff I I' n f) :
     ((Subtype.mk f hf : C^n⟮I, M; I', M'⟯) : M → M') = f :=
   rfl
-#align cont_mdiff_map.coe_fn_mk ContMdiffMap.coeFn_mk
+#align cont_mdiff_map.coe_fn_mk ContMDiffMap.coeFn_mk
+-/
 
-theorem coe_inj ⦃f g : C^n⟮I, M; I', M'⟯⦄ (h : (f : M → M') = g) : f = g := by
+#print ContMDiffMap.coe_injective /-
+theorem coe_injective ⦃f g : C^n⟮I, M; I', M'⟯⦄ (h : (f : M → M') = g) : f = g := by
   cases f <;> cases g <;> cases h <;> rfl
-#align cont_mdiff_map.coe_inj ContMdiffMap.coe_inj
+#align cont_mdiff_map.coe_inj ContMDiffMap.coe_injective
+-/
 
+#print ContMDiffMap.ext /-
 @[ext]
 theorem ext (h : ∀ x, f x = g x) : f = g := by cases f <;> cases g <;> congr <;> exact funext h
-#align cont_mdiff_map.ext ContMdiffMap.ext
+#align cont_mdiff_map.ext ContMDiffMap.ext
+-/
 
 instance : ContinuousMapClass C^n⟮I, M; I', M'⟯ M M'
     where
   coe f := ⇑f
-  coe_injective' := coe_inj
+  coe_injective' := coe_injective
   map_continuous f := f.ContMDiff.Continuous
 
+#print ContMDiffMap.id /-
 /-- The identity as a smooth map. -/
 def id : C^n⟮I, M; I, M⟯ :=
   ⟨id, contMDiff_id⟩
-#align cont_mdiff_map.id ContMdiffMap.id
+#align cont_mdiff_map.id ContMDiffMap.id
+-/
 
+#print ContMDiffMap.comp /-
 /-- The composition of smooth maps, as a smooth map. -/
 def comp (f : C^n⟮I', M'; I'', M''⟯) (g : C^n⟮I, M; I', M'⟯) : C^n⟮I, M; I'', M''⟯
     where
   val a := f (g a)
   property := f.ContMDiff.comp g.ContMDiff
-#align cont_mdiff_map.comp ContMdiffMap.comp
+#align cont_mdiff_map.comp ContMDiffMap.comp
+-/
 
+#print ContMDiffMap.comp_apply /-
 @[simp]
 theorem comp_apply (f : C^n⟮I', M'; I'', M''⟯) (g : C^n⟮I, M; I', M'⟯) (x : M) :
     f.comp g x = f (g x) :=
   rfl
-#align cont_mdiff_map.comp_apply ContMdiffMap.comp_apply
+#align cont_mdiff_map.comp_apply ContMDiffMap.comp_apply
+-/
 
 instance [Inhabited M'] : Inhabited C^n⟮I, M; I', M'⟯ :=
   ⟨⟨fun _ => default, contMDiff_const⟩⟩
 
+#print ContMDiffMap.const /-
 /-- Constant map as a smooth map -/
 def const (y : M') : C^n⟮I, M; I', M'⟯ :=
   ⟨fun x => y, contMDiff_const⟩
-#align cont_mdiff_map.const ContMdiffMap.const
+#align cont_mdiff_map.const ContMDiffMap.const
+-/
 
+#print ContMDiffMap.fst /-
 /-- The first projection of a product, as a smooth map. -/
 def fst : C^n⟮I.Prod I', M × M'; I, M⟯ :=
   ⟨Prod.fst, contMDiff_fst⟩
-#align cont_mdiff_map.fst ContMdiffMap.fst
+#align cont_mdiff_map.fst ContMDiffMap.fst
+-/
 
+#print ContMDiffMap.snd /-
 /-- The second projection of a product, as a smooth map. -/
 def snd : C^n⟮I.Prod I', M × M'; I', M'⟯ :=
   ⟨Prod.snd, contMDiff_snd⟩
-#align cont_mdiff_map.snd ContMdiffMap.snd
+#align cont_mdiff_map.snd ContMDiffMap.snd
+-/
 
+#print ContMDiffMap.prodMk /-
 /-- Given two smooth maps `f` and `g`, this is the smooth map `x ↦ (f x, g x)`. -/
 def prodMk (f : C^n⟮J, N; I, M⟯) (g : C^n⟮J, N; I', M'⟯) : C^n⟮J, N; I.Prod I', M × M'⟯ :=
   ⟨fun x => (f x, g x), f.2.prod_mk g.2⟩
-#align cont_mdiff_map.prod_mk ContMdiffMap.prodMk
+#align cont_mdiff_map.prod_mk ContMDiffMap.prodMk
+-/
 
-end ContMdiffMap
+end ContMDiffMap
 
-instance ContinuousLinearMap.hasCoeToContMdiffMap :
+#print ContinuousLinearMap.hasCoeToContMDiffMap /-
+instance ContinuousLinearMap.hasCoeToContMDiffMap :
     Coe (E →L[𝕜] E') C^n⟮𝓘(𝕜, E), E; 𝓘(𝕜, E'), E'⟯ :=
   ⟨fun f => ⟨f.toFun, f.ContMDiff⟩⟩
-#align continuous_linear_map.has_coe_to_cont_mdiff_map ContinuousLinearMap.hasCoeToContMdiffMap
+#align continuous_linear_map.has_coe_to_cont_mdiff_map ContinuousLinearMap.hasCoeToContMDiffMap
+-/
 
Diff
@@ -33,7 +33,7 @@ variable {𝕜 : Type _} [NontriviallyNormedField 𝕜] {E : Type _} [NormedAddC
 
 /-- Bundled `n` times continuously differentiable maps. -/
 def ContMdiffMap :=
-  { f : M → M' // ContMdiff I I' n f }
+  { f : M → M' // ContMDiff I I' n f }
 #align cont_mdiff_map ContMdiffMap
 
 /-- Bundled smooth maps. -/
@@ -59,16 +59,16 @@ instance funLike : FunLike C^n⟮I, M; I', M'⟯ M fun _ => M'
   coe_injective' := Subtype.coe_injective
 #align cont_mdiff_map.fun_like ContMdiffMap.funLike
 
-protected theorem contMdiff (f : C^n⟮I, M; I', M'⟯) : ContMdiff I I' n f :=
+protected theorem contMDiff (f : C^n⟮I, M; I', M'⟯) : ContMDiff I I' n f :=
   f.Prop
-#align cont_mdiff_map.cont_mdiff ContMdiffMap.contMdiff
+#align cont_mdiff_map.cont_mdiff ContMdiffMap.contMDiff
 
 protected theorem smooth (f : C^∞⟮I, M; I', M'⟯) : Smooth I I' f :=
   f.Prop
 #align cont_mdiff_map.smooth ContMdiffMap.smooth
 
 instance : Coe C^n⟮I, M; I', M'⟯ C(M, M') :=
-  ⟨fun f => ⟨f, f.ContMdiff.Continuous⟩⟩
+  ⟨fun f => ⟨f, f.ContMDiff.Continuous⟩⟩
 
 attribute [to_additive_ignore_args 21] ContMdiffMap ContMdiffMap.funLike
   ContMdiffMap.ContinuousMap.hasCoe
@@ -76,7 +76,7 @@ attribute [to_additive_ignore_args 21] ContMdiffMap ContMdiffMap.funLike
 variable {f g : C^n⟮I, M; I', M'⟯}
 
 @[simp]
-theorem coeFn_mk (f : M → M') (hf : ContMdiff I I' n f) :
+theorem coeFn_mk (f : M → M') (hf : ContMDiff I I' n f) :
     ((Subtype.mk f hf : C^n⟮I, M; I', M'⟯) : M → M') = f :=
   rfl
 #align cont_mdiff_map.coe_fn_mk ContMdiffMap.coeFn_mk
@@ -93,18 +93,18 @@ instance : ContinuousMapClass C^n⟮I, M; I', M'⟯ M M'
     where
   coe f := ⇑f
   coe_injective' := coe_inj
-  map_continuous f := f.ContMdiff.Continuous
+  map_continuous f := f.ContMDiff.Continuous
 
 /-- The identity as a smooth map. -/
 def id : C^n⟮I, M; I, M⟯ :=
-  ⟨id, contMdiff_id⟩
+  ⟨id, contMDiff_id⟩
 #align cont_mdiff_map.id ContMdiffMap.id
 
 /-- The composition of smooth maps, as a smooth map. -/
 def comp (f : C^n⟮I', M'; I'', M''⟯) (g : C^n⟮I, M; I', M'⟯) : C^n⟮I, M; I'', M''⟯
     where
   val a := f (g a)
-  property := f.ContMdiff.comp g.ContMdiff
+  property := f.ContMDiff.comp g.ContMDiff
 #align cont_mdiff_map.comp ContMdiffMap.comp
 
 @[simp]
@@ -114,21 +114,21 @@ theorem comp_apply (f : C^n⟮I', M'; I'', M''⟯) (g : C^n⟮I, M; I', M'⟯) (
 #align cont_mdiff_map.comp_apply ContMdiffMap.comp_apply
 
 instance [Inhabited M'] : Inhabited C^n⟮I, M; I', M'⟯ :=
-  ⟨⟨fun _ => default, contMdiff_const⟩⟩
+  ⟨⟨fun _ => default, contMDiff_const⟩⟩
 
 /-- Constant map as a smooth map -/
 def const (y : M') : C^n⟮I, M; I', M'⟯ :=
-  ⟨fun x => y, contMdiff_const⟩
+  ⟨fun x => y, contMDiff_const⟩
 #align cont_mdiff_map.const ContMdiffMap.const
 
 /-- The first projection of a product, as a smooth map. -/
 def fst : C^n⟮I.Prod I', M × M'; I, M⟯ :=
-  ⟨Prod.fst, contMdiff_fst⟩
+  ⟨Prod.fst, contMDiff_fst⟩
 #align cont_mdiff_map.fst ContMdiffMap.fst
 
 /-- The second projection of a product, as a smooth map. -/
 def snd : C^n⟮I.Prod I', M × M'; I', M'⟯ :=
-  ⟨Prod.snd, contMdiff_snd⟩
+  ⟨Prod.snd, contMDiff_snd⟩
 #align cont_mdiff_map.snd ContMdiffMap.snd
 
 /-- Given two smooth maps `f` and `g`, this is the smooth map `x ↦ (f x, g x)`. -/
@@ -140,6 +140,6 @@ end ContMdiffMap
 
 instance ContinuousLinearMap.hasCoeToContMdiffMap :
     Coe (E →L[𝕜] E') C^n⟮𝓘(𝕜, E), E; 𝓘(𝕜, E'), E'⟯ :=
-  ⟨fun f => ⟨f.toFun, f.ContMdiff⟩⟩
+  ⟨fun f => ⟨f.toFun, f.ContMDiff⟩⟩
 #align continuous_linear_map.has_coe_to_cont_mdiff_map ContinuousLinearMap.hasCoeToContMdiffMap
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nicolò Cavalleri
 
 ! This file was ported from Lean 3 source module geometry.manifold.cont_mdiff_map
-! leanprover-community/mathlib commit e354e865255654389cc46e6032160238df2e0f40
+! leanprover-community/mathlib commit 86c29aefdba50b3f33e86e52e3b2f51a0d8f0282
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -32,10 +32,8 @@ variable {𝕜 : Type _} [NontriviallyNormedField 𝕜] {E : Type _} [NormedAddC
   {J : ModelWithCorners 𝕜 F G} {N : Type _} [TopologicalSpace N] [ChartedSpace G N] (n : ℕ∞)
 
 /-- Bundled `n` times continuously differentiable maps. -/
-@[protect_proj]
-structure ContMdiffMap where
-  toFun : M → M'
-  contMdiff_toFun : ContMdiff I I' n to_fun
+def ContMdiffMap :=
+  { f : M → M' // ContMdiff I I' n f }
 #align cont_mdiff_map ContMdiffMap
 
 /-- Bundled smooth maps. -/
@@ -55,30 +53,34 @@ namespace ContMdiffMap
 
 variable {I} {I'} {M} {M'} {n}
 
-instance : CoeFun C^n⟮I, M; I', M'⟯ fun _ => M → M' :=
-  ⟨ContMdiffMap.toFun⟩
+instance funLike : FunLike C^n⟮I, M; I', M'⟯ M fun _ => M'
+    where
+  coe := Subtype.val
+  coe_injective' := Subtype.coe_injective
+#align cont_mdiff_map.fun_like ContMdiffMap.funLike
+
+protected theorem contMdiff (f : C^n⟮I, M; I', M'⟯) : ContMdiff I I' n f :=
+  f.Prop
+#align cont_mdiff_map.cont_mdiff ContMdiffMap.contMdiff
+
+protected theorem smooth (f : C^∞⟮I, M; I', M'⟯) : Smooth I I' f :=
+  f.Prop
+#align cont_mdiff_map.smooth ContMdiffMap.smooth
 
 instance : Coe C^n⟮I, M; I', M'⟯ C(M, M') :=
-  ⟨fun f => ⟨f, f.contMdiff_toFun.Continuous⟩⟩
+  ⟨fun f => ⟨f, f.ContMdiff.Continuous⟩⟩
 
-attribute [to_additive_ignore_args 21] ContMdiffMap ContMdiffMap.hasCoeToFun
+attribute [to_additive_ignore_args 21] ContMdiffMap ContMdiffMap.funLike
   ContMdiffMap.ContinuousMap.hasCoe
 
 variable {f g : C^n⟮I, M; I', M'⟯}
 
 @[simp]
-theorem coeFn_mk (f : M → M') (hf : ContMdiff I I' n f) : (mk f hf : M → M') = f :=
+theorem coeFn_mk (f : M → M') (hf : ContMdiff I I' n f) :
+    ((Subtype.mk f hf : C^n⟮I, M; I', M'⟯) : M → M') = f :=
   rfl
 #align cont_mdiff_map.coe_fn_mk ContMdiffMap.coeFn_mk
 
-protected theorem contMdiff (f : C^n⟮I, M; I', M'⟯) : ContMdiff I I' n f :=
-  f.contMdiff_toFun
-#align cont_mdiff_map.cont_mdiff ContMdiffMap.contMdiff
-
-protected theorem smooth (f : C^∞⟮I, M; I', M'⟯) : Smooth I I' f :=
-  f.contMdiff_toFun
-#align cont_mdiff_map.smooth ContMdiffMap.smooth
-
 theorem coe_inj ⦃f g : C^n⟮I, M; I', M'⟯⦄ (h : (f : M → M') = g) : f = g := by
   cases f <;> cases g <;> cases h <;> rfl
 #align cont_mdiff_map.coe_inj ContMdiffMap.coe_inj
@@ -101,8 +103,8 @@ def id : C^n⟮I, M; I, M⟯ :=
 /-- The composition of smooth maps, as a smooth map. -/
 def comp (f : C^n⟮I', M'; I'', M''⟯) (g : C^n⟮I, M; I', M'⟯) : C^n⟮I, M; I'', M''⟯
     where
-  toFun a := f (g a)
-  contMdiff_toFun := f.contMdiff_toFun.comp g.contMdiff_toFun
+  val a := f (g a)
+  property := f.ContMdiff.comp g.ContMdiff
 #align cont_mdiff_map.comp ContMdiffMap.comp
 
 @[simp]
Diff
@@ -44,10 +44,8 @@ def SmoothMap :=
   ContMdiffMap I I' M M' ⊤
 #align smooth_map SmoothMap
 
--- mathport name: cont_mdiff_map
 scoped[Manifold] notation "C^" n "⟮" I ", " M "; " I' ", " M' "⟯" => ContMdiffMap I I' M M' n
 
--- mathport name: cont_mdiff_map.self
 scoped[Manifold]
   notation "C^" n "⟮" I ", " M "; " k "⟯" => ContMdiffMap I (modelWithCornersSelf k k) M k n
 
Diff
@@ -4,11 +4,11 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nicolò Cavalleri
 
 ! This file was ported from Lean 3 source module geometry.manifold.cont_mdiff_map
-! leanprover-community/mathlib commit be2c24f56783935652cefffb4bfca7e4b25d167e
+! leanprover-community/mathlib commit e354e865255654389cc46e6032160238df2e0f40
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
-import Mathbin.Geometry.Manifold.ContMdiffMfderiv
+import Mathbin.Geometry.Manifold.ContMdiff
 import Mathbin.Topology.ContinuousFunction.Basic
 
 /-!
@@ -25,7 +25,11 @@ variable {𝕜 : Type _} [NontriviallyNormedField 𝕜] {E : Type _} [NormedAddC
   (I' : ModelWithCorners 𝕜 E' H') (M : Type _) [TopologicalSpace M] [ChartedSpace H M] (M' : Type _)
   [TopologicalSpace M'] [ChartedSpace H' M'] {E'' : Type _} [NormedAddCommGroup E'']
   [NormedSpace 𝕜 E''] {H'' : Type _} [TopologicalSpace H''] {I'' : ModelWithCorners 𝕜 E'' H''}
-  {M'' : Type _} [TopologicalSpace M''] [ChartedSpace H'' M''] (n : ℕ∞)
+  {M'' : Type _} [TopologicalSpace M''] [ChartedSpace H'' M'']
+  -- declare a manifold `N` over the pair `(F, G)`.
+  {F : Type _}
+  [NormedAddCommGroup F] [NormedSpace 𝕜 F] {G : Type _} [TopologicalSpace G]
+  {J : ModelWithCorners 𝕜 F G} {N : Type _} [TopologicalSpace N] [ChartedSpace G N] (n : ℕ∞)
 
 /-- Bundled `n` times continuously differentiable maps. -/
 @[protect_proj]
@@ -77,18 +81,6 @@ protected theorem smooth (f : C^∞⟮I, M; I', M'⟯) : Smooth I I' f :=
   f.contMdiff_toFun
 #align cont_mdiff_map.smooth ContMdiffMap.smooth
 
-protected theorem mdifferentiable' (f : C^n⟮I, M; I', M'⟯) (hn : 1 ≤ n) : Mdifferentiable I I' f :=
-  f.ContMdiff.Mdifferentiable hn
-#align cont_mdiff_map.mdifferentiable' ContMdiffMap.mdifferentiable'
-
-protected theorem mdifferentiable (f : C^∞⟮I, M; I', M'⟯) : Mdifferentiable I I' f :=
-  f.ContMdiff.Mdifferentiable le_top
-#align cont_mdiff_map.mdifferentiable ContMdiffMap.mdifferentiable
-
-protected theorem mdifferentiableAt (f : C^∞⟮I, M; I', M'⟯) {x} : MdifferentiableAt I I' f x :=
-  f.Mdifferentiable x
-#align cont_mdiff_map.mdifferentiable_at ContMdiffMap.mdifferentiableAt
-
 theorem coe_inj ⦃f g : C^n⟮I, M; I', M'⟯⦄ (h : (f : M → M') = g) : f = g := by
   cases f <;> cases g <;> cases h <;> rfl
 #align cont_mdiff_map.coe_inj ContMdiffMap.coe_inj
@@ -129,6 +121,21 @@ def const (y : M') : C^n⟮I, M; I', M'⟯ :=
   ⟨fun x => y, contMdiff_const⟩
 #align cont_mdiff_map.const ContMdiffMap.const
 
+/-- The first projection of a product, as a smooth map. -/
+def fst : C^n⟮I.Prod I', M × M'; I, M⟯ :=
+  ⟨Prod.fst, contMdiff_fst⟩
+#align cont_mdiff_map.fst ContMdiffMap.fst
+
+/-- The second projection of a product, as a smooth map. -/
+def snd : C^n⟮I.Prod I', M × M'; I', M'⟯ :=
+  ⟨Prod.snd, contMdiff_snd⟩
+#align cont_mdiff_map.snd ContMdiffMap.snd
+
+/-- Given two smooth maps `f` and `g`, this is the smooth map `x ↦ (f x, g x)`. -/
+def prodMk (f : C^n⟮J, N; I, M⟯) (g : C^n⟮J, N; I', M'⟯) : C^n⟮J, N; I.Prod I', M × M'⟯ :=
+  ⟨fun x => (f x, g x), f.2.prod_mk g.2⟩
+#align cont_mdiff_map.prod_mk ContMdiffMap.prodMk
+
 end ContMdiffMap
 
 instance ContinuousLinearMap.hasCoeToContMdiffMap :
Diff
@@ -59,8 +59,8 @@ instance : CoeFun C^n⟮I, M; I', M'⟯ fun _ => M → M' :=
 instance : Coe C^n⟮I, M; I', M'⟯ C(M, M') :=
   ⟨fun f => ⟨f, f.contMdiff_toFun.Continuous⟩⟩
 
-attribute [to_additive_ignore_args 21]
-  ContMdiffMap ContMdiffMap.hasCoeToFun ContMdiffMap.ContinuousMap.hasCoe
+attribute [to_additive_ignore_args 21] ContMdiffMap ContMdiffMap.hasCoeToFun
+  ContMdiffMap.ContinuousMap.hasCoe
 
 variable {f g : C^n⟮I, M; I', M'⟯}
 
Diff
@@ -47,7 +47,7 @@ scoped[Manifold] notation "C^" n "⟮" I ", " M "; " I' ", " M' "⟯" => ContMdi
 scoped[Manifold]
   notation "C^" n "⟮" I ", " M "; " k "⟯" => ContMdiffMap I (modelWithCornersSelf k k) M k n
 
-open Manifold
+open scoped Manifold
 
 namespace ContMdiffMap
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nicolò Cavalleri
 
 ! This file was ported from Lean 3 source module geometry.manifold.cont_mdiff_map
-! leanprover-community/mathlib commit 2b69cd5eca1cc3c5f4a754abe7dab71111959a9d
+! leanprover-community/mathlib commit be2c24f56783935652cefffb4bfca7e4b25d167e
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -97,6 +97,12 @@ theorem coe_inj ⦃f g : C^n⟮I, M; I', M'⟯⦄ (h : (f : M → M') = g) : f =
 theorem ext (h : ∀ x, f x = g x) : f = g := by cases f <;> cases g <;> congr <;> exact funext h
 #align cont_mdiff_map.ext ContMdiffMap.ext
 
+instance : ContinuousMapClass C^n⟮I, M; I', M'⟯ M M'
+    where
+  coe f := ⇑f
+  coe_injective' := coe_inj
+  map_continuous f := f.ContMdiff.Continuous
+
 /-- The identity as a smooth map. -/
 def id : C^n⟮I, M; I, M⟯ :=
   ⟨id, contMdiff_id⟩

Changes in mathlib4

mathlib3
mathlib4
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -63,7 +63,7 @@ protected theorem smooth (f : C^∞⟮I, M; I', M'⟯) : Smooth I I' f :=
   f.prop
 #align cont_mdiff_map.smooth ContMDiffMap.smooth
 
--- porting note: use generic instance instead
+-- Porting note: use generic instance instead
 -- instance : Coe C^n⟮I, M; I', M'⟯ C(M, M') :=
 --   ⟨fun f => ⟨f, f.contMDiff.continuous⟩⟩
 
doc: @[inherit_doc] on notations (#9942)

Make all the notations that unambiguously should inherit the docstring of their definition actually inherit it.

Also write a few docstrings by hand. I only wrote the ones I was competent to write and which I was sure of. Some docstrings come from mathlib3 as they were lost during the early port.

This PR is only intended as a first pass There are many more docstrings to add.

Diff
@@ -37,8 +37,10 @@ def SmoothMap :=
   ContMDiffMap I I' M M' ⊤
 #align smooth_map SmoothMap
 
+@[inherit_doc]
 scoped[Manifold] notation "C^" n "⟮" I ", " M "; " I' ", " M' "⟯" => ContMDiffMap I I' M M' n
 
+@[inherit_doc]
 scoped[Manifold]
   notation "C^" n "⟮" I ", " M "; " k "⟯" => ContMDiffMap I (modelWithCornersSelf k k) M k n
 
refactor(*): abbreviation for non-dependent FunLike (#9833)

This follows up from #9785, which renamed FunLike to DFunLike, by introducing a new abbreviation FunLike F α β := DFunLike F α (fun _ => β), to make the non-dependent use of FunLike easier.

I searched for the pattern DFunLike.*fun and DFunLike.*λ in all files to replace expressions of the form DFunLike F α (fun _ => β) with FunLike F α β. I did this everywhere except for extends clauses for two reasons: it would conflict with #8386, and more importantly extends must directly refer to a structure with no unfolding of defs or abbrevs.

Diff
@@ -48,10 +48,10 @@ namespace ContMDiffMap
 
 variable {I} {I'} {M} {M'} {n}
 
-instance instDFunLike : DFunLike C^n⟮I, M; I', M'⟯ M fun _ => M' where
+instance instFunLike : FunLike C^n⟮I, M; I', M'⟯ M M' where
   coe := Subtype.val
   coe_injective' := Subtype.coe_injective
-#align cont_mdiff_map.fun_like ContMDiffMap.instDFunLike
+#align cont_mdiff_map.fun_like ContMDiffMap.instFunLike
 
 protected theorem contMDiff (f : C^n⟮I, M; I', M'⟯) : ContMDiff I I' n f :=
   f.prop
@@ -65,7 +65,7 @@ protected theorem smooth (f : C^∞⟮I, M; I', M'⟯) : Smooth I I' f :=
 -- instance : Coe C^n⟮I, M; I', M'⟯ C(M, M') :=
 --   ⟨fun f => ⟨f, f.contMDiff.continuous⟩⟩
 
-attribute [to_additive_ignore_args 21] ContMDiffMap ContMDiffMap.instDFunLike
+attribute [to_additive_ignore_args 21] ContMDiffMap ContMDiffMap.instFunLike
 
 variable {f g : C^n⟮I, M; I', M'⟯}
 
chore(*): rename FunLike to DFunLike (#9785)

This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.

This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:

sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean     
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean

Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -48,10 +48,10 @@ namespace ContMDiffMap
 
 variable {I} {I'} {M} {M'} {n}
 
-instance funLike : FunLike C^n⟮I, M; I', M'⟯ M fun _ => M' where
+instance instDFunLike : DFunLike C^n⟮I, M; I', M'⟯ M fun _ => M' where
   coe := Subtype.val
   coe_injective' := Subtype.coe_injective
-#align cont_mdiff_map.fun_like ContMDiffMap.funLike
+#align cont_mdiff_map.fun_like ContMDiffMap.instDFunLike
 
 protected theorem contMDiff (f : C^n⟮I, M; I', M'⟯) : ContMDiff I I' n f :=
   f.prop
@@ -65,22 +65,22 @@ protected theorem smooth (f : C^∞⟮I, M; I', M'⟯) : Smooth I I' f :=
 -- instance : Coe C^n⟮I, M; I', M'⟯ C(M, M') :=
 --   ⟨fun f => ⟨f, f.contMDiff.continuous⟩⟩
 
-attribute [to_additive_ignore_args 21] ContMDiffMap ContMDiffMap.funLike
+attribute [to_additive_ignore_args 21] ContMDiffMap ContMDiffMap.instDFunLike
 
 variable {f g : C^n⟮I, M; I', M'⟯}
 
 @[simp]
 theorem coeFn_mk (f : M → M') (hf : ContMDiff I I' n f) :
-    FunLike.coe (F := C^n⟮I, M; I', M'⟯) ⟨f, hf⟩ = f :=
+    DFunLike.coe (F := C^n⟮I, M; I', M'⟯) ⟨f, hf⟩ = f :=
   rfl
 #align cont_mdiff_map.coe_fn_mk ContMDiffMap.coeFn_mk
 
 theorem coe_injective ⦃f g : C^n⟮I, M; I', M'⟯⦄ (h : (f : M → M') = g) : f = g :=
-  FunLike.ext' h
+  DFunLike.ext' h
 #align cont_mdiff_map.coe_inj ContMDiffMap.coe_injective
 
 @[ext]
-theorem ext (h : ∀ x, f x = g x) : f = g := FunLike.ext _ _ h
+theorem ext (h : ∀ x, f x = g x) : f = g := DFunLike.ext _ _ h
 #align cont_mdiff_map.ext ContMDiffMap.ext
 
 instance : ContinuousMapClass C^n⟮I, M; I', M'⟯ M M' where
chore: split Geometry/Manifold/ContMDiff (#8726)

At about 2200 lines, this is currently the longest file in the Geometry/Manifolds.

(It also moves the slowly compiling proof of ContMDiffWithinAt.cle_arrowCongr out of a common recompilation path.)

Diff
@@ -3,8 +3,7 @@ Copyright © 2020 Nicolò Cavalleri. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nicolò Cavalleri
 -/
-import Mathlib.Geometry.Manifold.ContMDiff
-import Mathlib.Topology.ContinuousFunction.Basic
+import Mathlib.Geometry.Manifold.ContMDiff.NormedSpace
 
 #align_import geometry.manifold.cont_mdiff_map from "leanprover-community/mathlib"@"86c29aefdba50b3f33e86e52e3b2f51a0d8f0282"
 
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -15,17 +15,17 @@ In this file we define the type `ContMDiffMap` of `n` times continuously differe
 bundled maps.
 -/
 
-variable {𝕜 : Type _} [NontriviallyNormedField 𝕜] {E : Type _} [NormedAddCommGroup E]
-  [NormedSpace 𝕜 E] {E' : Type _} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H : Type _}
-  [TopologicalSpace H] {H' : Type _} [TopologicalSpace H'] (I : ModelWithCorners 𝕜 E H)
-  (I' : ModelWithCorners 𝕜 E' H') (M : Type _) [TopologicalSpace M] [ChartedSpace H M] (M' : Type _)
-  [TopologicalSpace M'] [ChartedSpace H' M'] {E'' : Type _} [NormedAddCommGroup E'']
-  [NormedSpace 𝕜 E''] {H'' : Type _} [TopologicalSpace H''] {I'' : ModelWithCorners 𝕜 E'' H''}
-  {M'' : Type _} [TopologicalSpace M''] [ChartedSpace H'' M'']
+variable {𝕜 : Type*} [NontriviallyNormedField 𝕜] {E : Type*} [NormedAddCommGroup E]
+  [NormedSpace 𝕜 E] {E' : Type*} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H : Type*}
+  [TopologicalSpace H] {H' : Type*} [TopologicalSpace H'] (I : ModelWithCorners 𝕜 E H)
+  (I' : ModelWithCorners 𝕜 E' H') (M : Type*) [TopologicalSpace M] [ChartedSpace H M] (M' : Type*)
+  [TopologicalSpace M'] [ChartedSpace H' M'] {E'' : Type*} [NormedAddCommGroup E'']
+  [NormedSpace 𝕜 E''] {H'' : Type*} [TopologicalSpace H''] {I'' : ModelWithCorners 𝕜 E'' H''}
+  {M'' : Type*} [TopologicalSpace M''] [ChartedSpace H'' M'']
   -- declare a manifold `N` over the pair `(F, G)`.
-  {F : Type _}
-  [NormedAddCommGroup F] [NormedSpace 𝕜 F] {G : Type _} [TopologicalSpace G]
-  {J : ModelWithCorners 𝕜 F G} {N : Type _} [TopologicalSpace N] [ChartedSpace G N] (n : ℕ∞)
+  {F : Type*}
+  [NormedAddCommGroup F] [NormedSpace 𝕜 F] {G : Type*} [TopologicalSpace G]
+  {J : ModelWithCorners 𝕜 F G} {N : Type*} [TopologicalSpace N] [ChartedSpace G N] (n : ℕ∞)
 
 /-- Bundled `n` times continuously differentiable maps. -/
 def ContMDiffMap :=
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,15 +2,12 @@
 Copyright © 2020 Nicolò Cavalleri. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nicolò Cavalleri
-
-! This file was ported from Lean 3 source module geometry.manifold.cont_mdiff_map
-! leanprover-community/mathlib commit 86c29aefdba50b3f33e86e52e3b2f51a0d8f0282
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Geometry.Manifold.ContMDiff
 import Mathlib.Topology.ContinuousFunction.Basic
 
+#align_import geometry.manifold.cont_mdiff_map from "leanprover-community/mathlib"@"86c29aefdba50b3f33e86e52e3b2f51a0d8f0282"
+
 /-!
 # Smooth bundled map
 
chore: tidy various files (#5482)
Diff
@@ -14,7 +14,7 @@ import Mathlib.Topology.ContinuousFunction.Basic
 /-!
 # Smooth bundled map
 
-In this file we define the type `cont_mdiff_map` of `n` times continuously differentiable
+In this file we define the type `ContMDiffMap` of `n` times continuously differentiable
 bundled maps.
 -/
 
feat: port Geometry.Manifold.Algebra.Structures (#5453)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>

Diff
@@ -69,8 +69,7 @@ protected theorem smooth (f : C^∞⟮I, M; I', M'⟯) : Smooth I I' f :=
 -- instance : Coe C^n⟮I, M; I', M'⟯ C(M, M') :=
 --   ⟨fun f => ⟨f, f.contMDiff.continuous⟩⟩
 
--- attribute [to_additive_ignore_args 21] ContMDiffMap ContMDiffMap.funLike
---   ContMDiffMap.ContinuousMap.hasCoe
+attribute [to_additive_ignore_args 21] ContMDiffMap ContMDiffMap.funLike
 
 variable {f g : C^n⟮I, M; I', M'⟯}
 
feat: port Geometry.Manifold.ContMdiffMap (#5436)

Dependencies 12 + 877

878 files ported (98.7%)
391326 lines ported (98.6%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file