geometry.manifold.complex โŸท Mathlib.Geometry.Manifold.Complex

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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -5,7 +5,7 @@ Authors: Heather Macbeth
 -/
 import Analysis.Complex.AbsMax
 import Analysis.LocallyConvex.WithSeminorms
-import Geometry.Manifold.Mfderiv
+import Geometry.Manifold.MFDeriv.Defs
 import Topology.LocallyConstant.Basic
 
 #align_import geometry.manifold.complex from "leanprover-community/mathlib"@"9240e8be927a0955b9a82c6c85ef499ee3a626b8"
Diff
@@ -93,7 +93,7 @@ protected theorem isLocallyConstant {f : M โ†’ F} (hf : MDifferentiable ๐“˜(โ„‚
     have Hโ‚ : (chart_at E p).symm z โˆˆ (chart_at E p).source := (chart_at E p).map_target hz
     have Hโ‚‚ : f ((chart_at E p).symm z) โˆˆ (chart_at F (0 : F)).source := trivial
     have H := (mdifferentiableAt_iff_of_mem_source Hโ‚ Hโ‚‚).mp (hf ((chart_at E p).symm z))
-    simp only [differentiableWithinAt_univ, mfld_simps] at H 
+    simp only [differentiableWithinAt_univ, mfld_simps] at H
     simpa [PartialHomeomorph.right_inv _ hz] using H.2
   -- `f` pulled back by the chart at `p` has a local max at `chart_at E p p`
   have hf'' : IsLocalMax (norm โˆ˜ f โˆ˜ (chart_at E p).symm) (chart_at E p p) :=
Diff
@@ -85,7 +85,7 @@ protected theorem isLocallyConstant {f : M โ†’ F} (hf : MDifferentiable ๐“˜(โ„‚
     rw [โ† Filter.mem_map, (chart_at E p).symm_map_nhds_eq (mem_chart_source E p)]
     exact hps'
   have keyโ‚‚ : (chart_at E p).target โˆˆ ๐“ (chart_at E p p) :=
-    (LocalHomeomorph.open_target _).mem_nhds (mem_chart_target E p)
+    (PartialHomeomorph.open_target _).mem_nhds (mem_chart_target E p)
   -- `f` pulled back by the chart at `p` is differentiable around `chart_at E p p`
   have hf' : โˆ€แถ  z : E in ๐“ (chart_at E p p), DifferentiableAt โ„‚ (f โˆ˜ (chart_at E p).symm) z :=
     by
@@ -94,22 +94,22 @@ protected theorem isLocallyConstant {f : M โ†’ F} (hf : MDifferentiable ๐“˜(โ„‚
     have Hโ‚‚ : f ((chart_at E p).symm z) โˆˆ (chart_at F (0 : F)).source := trivial
     have H := (mdifferentiableAt_iff_of_mem_source Hโ‚ Hโ‚‚).mp (hf ((chart_at E p).symm z))
     simp only [differentiableWithinAt_univ, mfld_simps] at H 
-    simpa [LocalHomeomorph.right_inv _ hz] using H.2
+    simpa [PartialHomeomorph.right_inv _ hz] using H.2
   -- `f` pulled back by the chart at `p` has a local max at `chart_at E p p`
   have hf'' : IsLocalMax (norm โˆ˜ f โˆ˜ (chart_at E p).symm) (chart_at E p p) :=
     by
     refine' Filter.eventually_of_mem keyโ‚ fun z hz => _
     refine' (hpโ‚€ ((chart_at E p).symm z) hz).trans (_ : โ€–f pโ‚€โ€– โ‰ค โ€–f _โ€–)
-    rw [โ† hp, LocalHomeomorph.left_inv _ (mem_chart_source E p)]
+    rw [โ† hp, PartialHomeomorph.left_inv _ (mem_chart_source E p)]
   -- so by the maximum principle `f` is equal to `f p` near `p`
   obtain โŸจU, hU, hUfโŸฉ := (Complex.eventually_eq_of_isLocalMax_norm hf' hf'').exists_mem
   have Hโ‚ : chart_at E p โปยน' U โˆˆ ๐“ p := (chart_at E p).ContinuousAt (mem_chart_source E p) hU
   have Hโ‚‚ : (chart_at E p).source โˆˆ ๐“ p :=
-    (LocalHomeomorph.open_source _).mem_nhds (mem_chart_source E p)
+    (PartialHomeomorph.open_source _).mem_nhds (mem_chart_source E p)
   apply Filter.mem_of_superset (Filter.inter_mem hps' (Filter.inter_mem Hโ‚ Hโ‚‚))
   rintro q โŸจhqs, hq : chart_at E p q โˆˆ _, hq'โŸฉ
   refine' โŸจ_, hqsโŸฉ
-  simpa [LocalHomeomorph.left_inv _ hq', hp, -norm_eq_abs] using hUf (chart_at E p q) hq
+  simpa [PartialHomeomorph.left_inv _ hq', hp, -norm_eq_abs] using hUf (chart_at E p q) hq
 #align mdifferentiable.is_locally_constant MDifferentiable.isLocallyConstant
 -/
 
Diff
@@ -3,10 +3,10 @@ Copyright (c) 2022 Heather Macbeth. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Heather Macbeth
 -/
-import Mathbin.Analysis.Complex.AbsMax
-import Mathbin.Analysis.LocallyConvex.WithSeminorms
-import Mathbin.Geometry.Manifold.Mfderiv
-import Mathbin.Topology.LocallyConstant.Basic
+import Analysis.Complex.AbsMax
+import Analysis.LocallyConvex.WithSeminorms
+import Geometry.Manifold.Mfderiv
+import Topology.LocallyConstant.Basic
 
 #align_import geometry.manifold.complex from "leanprover-community/mathlib"@"9240e8be927a0955b9a82c6c85ef499ee3a626b8"
 
Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2022 Heather Macbeth. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Heather Macbeth
-
-! This file was ported from Lean 3 source module geometry.manifold.complex
-! leanprover-community/mathlib commit 9240e8be927a0955b9a82c6c85ef499ee3a626b8
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Analysis.Complex.AbsMax
 import Mathbin.Analysis.LocallyConvex.WithSeminorms
 import Mathbin.Geometry.Manifold.Mfderiv
 import Mathbin.Topology.LocallyConstant.Basic
 
+#align_import geometry.manifold.complex from "leanprover-community/mathlib"@"9240e8be927a0955b9a82c6c85ef499ee3a626b8"
+
 /-! # Holomorphic functions on complex manifolds
 
 > THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Heather Macbeth
 
 ! This file was ported from Lean 3 source module geometry.manifold.complex
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit 9240e8be927a0955b9a82c6c85ef499ee3a626b8
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.Topology.LocallyConstant.Basic
 
 /-! # Holomorphic functions on complex manifolds
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Thanks to the rigidity of complex-differentiability compared to real-differentiability, there are
 many results about complex manifolds with no analogue for manifolds over a general normed field. For
 now, this file contains just two (closely related) such results:
Diff
@@ -55,6 +55,7 @@ variable {F : Type _} [NormedAddCommGroup F] [NormedSpace โ„‚ F] [StrictConvexSp
 variable {M : Type _} [TopologicalSpace M] [CompactSpace M] [ChartedSpace E M]
   [SmoothManifoldWithCorners ๐“˜(โ„‚, E) M]
 
+#print MDifferentiable.isLocallyConstant /-
 /-- A holomorphic function on a compact complex manifold is locally constant. -/
 protected theorem isLocallyConstant {f : M โ†’ F} (hf : MDifferentiable ๐“˜(โ„‚, E) ๐“˜(โ„‚, F) f) :
     IsLocallyConstant f :=
@@ -110,19 +111,24 @@ protected theorem isLocallyConstant {f : M โ†’ F} (hf : MDifferentiable ๐“˜(โ„‚
   refine' โŸจ_, hqsโŸฉ
   simpa [LocalHomeomorph.left_inv _ hq', hp, -norm_eq_abs] using hUf (chart_at E p q) hq
 #align mdifferentiable.is_locally_constant MDifferentiable.isLocallyConstant
+-/
 
+#print MDifferentiable.apply_eq_of_compactSpace /-
 /-- A holomorphic function on a compact connected complex manifold is constant. -/
 theorem apply_eq_of_compactSpace [PreconnectedSpace M] {f : M โ†’ F}
     (hf : MDifferentiable ๐“˜(โ„‚, E) ๐“˜(โ„‚, F) f) (a b : M) : f a = f b :=
   hf.IsLocallyConstant.apply_eq_of_preconnectedSpace _ _
 #align mdifferentiable.apply_eq_of_compact_space MDifferentiable.apply_eq_of_compactSpace
+-/
 
+#print MDifferentiable.exists_eq_const_of_compactSpace /-
 /-- A holomorphic function on a compact connected complex manifold is the constant function `f โ‰ก v`,
 for some value `v`. -/
 theorem exists_eq_const_of_compactSpace [PreconnectedSpace M] {f : M โ†’ F}
     (hf : MDifferentiable ๐“˜(โ„‚, E) ๐“˜(โ„‚, F) f) : โˆƒ v : F, f = Function.const M v :=
   hf.IsLocallyConstant.exists_eq_const
 #align mdifferentiable.exists_eq_const_of_compact_space MDifferentiable.exists_eq_const_of_compactSpace
+-/
 
 end MDifferentiable
 
Diff
@@ -46,7 +46,7 @@ open scoped Manifold Topology
 
 open Complex
 
-namespace Mdifferentiable
+namespace MDifferentiable
 
 variable {E : Type _} [NormedAddCommGroup E] [NormedSpace โ„‚ E]
 
@@ -56,7 +56,7 @@ variable {M : Type _} [TopologicalSpace M] [CompactSpace M] [ChartedSpace E M]
   [SmoothManifoldWithCorners ๐“˜(โ„‚, E) M]
 
 /-- A holomorphic function on a compact complex manifold is locally constant. -/
-protected theorem isLocallyConstant {f : M โ†’ F} (hf : Mdifferentiable ๐“˜(โ„‚, E) ๐“˜(โ„‚, F) f) :
+protected theorem isLocallyConstant {f : M โ†’ F} (hf : MDifferentiable ๐“˜(โ„‚, E) ๐“˜(โ„‚, F) f) :
     IsLocallyConstant f :=
   by
   haveI : LocallyConnectedSpace M := ChartedSpace.locallyConnectedSpace E M
@@ -109,20 +109,20 @@ protected theorem isLocallyConstant {f : M โ†’ F} (hf : Mdifferentiable ๐“˜(โ„‚
   rintro q โŸจhqs, hq : chart_at E p q โˆˆ _, hq'โŸฉ
   refine' โŸจ_, hqsโŸฉ
   simpa [LocalHomeomorph.left_inv _ hq', hp, -norm_eq_abs] using hUf (chart_at E p q) hq
-#align mdifferentiable.is_locally_constant Mdifferentiable.isLocallyConstant
+#align mdifferentiable.is_locally_constant MDifferentiable.isLocallyConstant
 
 /-- A holomorphic function on a compact connected complex manifold is constant. -/
 theorem apply_eq_of_compactSpace [PreconnectedSpace M] {f : M โ†’ F}
-    (hf : Mdifferentiable ๐“˜(โ„‚, E) ๐“˜(โ„‚, F) f) (a b : M) : f a = f b :=
+    (hf : MDifferentiable ๐“˜(โ„‚, E) ๐“˜(โ„‚, F) f) (a b : M) : f a = f b :=
   hf.IsLocallyConstant.apply_eq_of_preconnectedSpace _ _
-#align mdifferentiable.apply_eq_of_compact_space Mdifferentiable.apply_eq_of_compactSpace
+#align mdifferentiable.apply_eq_of_compact_space MDifferentiable.apply_eq_of_compactSpace
 
 /-- A holomorphic function on a compact connected complex manifold is the constant function `f โ‰ก v`,
 for some value `v`. -/
 theorem exists_eq_const_of_compactSpace [PreconnectedSpace M] {f : M โ†’ F}
-    (hf : Mdifferentiable ๐“˜(โ„‚, E) ๐“˜(โ„‚, F) f) : โˆƒ v : F, f = Function.const M v :=
+    (hf : MDifferentiable ๐“˜(โ„‚, E) ๐“˜(โ„‚, F) f) : โˆƒ v : F, f = Function.const M v :=
   hf.IsLocallyConstant.exists_eq_const
-#align mdifferentiable.exists_eq_const_of_compact_space Mdifferentiable.exists_eq_const_of_compactSpace
+#align mdifferentiable.exists_eq_const_of_compact_space MDifferentiable.exists_eq_const_of_compactSpace
 
-end Mdifferentiable
+end MDifferentiable
 
Diff
@@ -69,7 +69,7 @@ protected theorem isLocallyConstant {f : M โ†’ F} (hf : Mdifferentiable ๐“˜(โ„‚
   -- otherwise, let `pโ‚€` be a point where the value of `f` has maximal norm
   obtain โŸจpโ‚€, hpโ‚€s, hpโ‚€โŸฉ := hsโ‚.exists_forall_ge hs' hf.continuous.norm.continuous_on
   -- we will show `f` agrees everywhere with `f pโ‚€`
-  suffices s โŠ† { r : M | f r = f pโ‚€ } โˆฉ s by exact (this hb).1.trans (this ha).1.symm;
+  suffices s โŠ† {r : M | f r = f pโ‚€} โˆฉ s by exact (this hb).1.trans (this ha).1.symm;
   clear ha hb a b
   refine' hsโ‚‚.subset_clopen _ โŸจpโ‚€, hpโ‚€s, โŸจrfl, hpโ‚€sโŸฉโŸฉ
   -- closedness of the set of points sent to `f pโ‚€`
Diff
@@ -92,7 +92,7 @@ protected theorem isLocallyConstant {f : M โ†’ F} (hf : Mdifferentiable ๐“˜(โ„‚
     have Hโ‚ : (chart_at E p).symm z โˆˆ (chart_at E p).source := (chart_at E p).map_target hz
     have Hโ‚‚ : f ((chart_at E p).symm z) โˆˆ (chart_at F (0 : F)).source := trivial
     have H := (mdifferentiableAt_iff_of_mem_source Hโ‚ Hโ‚‚).mp (hf ((chart_at E p).symm z))
-    simp only [differentiableWithinAt_univ, mfld_simps] at H
+    simp only [differentiableWithinAt_univ, mfld_simps] at H 
     simpa [LocalHomeomorph.right_inv _ hz] using H.2
   -- `f` pulled back by the chart at `p` has a local max at `chart_at E p p`
   have hf'' : IsLocalMax (norm โˆ˜ f โˆ˜ (chart_at E p).symm) (chart_at E p p) :=
Diff
@@ -42,7 +42,7 @@ stalks, such as the Weierstrass preparation theorem.
 -/
 
 
-open Manifold Topology
+open scoped Manifold Topology
 
 open Complex
 
Diff
@@ -69,7 +69,7 @@ protected theorem isLocallyConstant {f : M โ†’ F} (hf : Mdifferentiable ๐“˜(โ„‚
   -- otherwise, let `pโ‚€` be a point where the value of `f` has maximal norm
   obtain โŸจpโ‚€, hpโ‚€s, hpโ‚€โŸฉ := hsโ‚.exists_forall_ge hs' hf.continuous.norm.continuous_on
   -- we will show `f` agrees everywhere with `f pโ‚€`
-  suffices s โŠ† { r : M | f r = f pโ‚€ } โˆฉ s by exact (this hb).1.trans (this ha).1.symm
+  suffices s โŠ† { r : M | f r = f pโ‚€ } โˆฉ s by exact (this hb).1.trans (this ha).1.symm;
   clear ha hb a b
   refine' hsโ‚‚.subset_clopen _ โŸจpโ‚€, hpโ‚€s, โŸจrfl, hpโ‚€sโŸฉโŸฉ
   -- closedness of the set of points sent to `f pโ‚€`

Changes in mathlib4

mathlib3
mathlib4
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -42,11 +42,8 @@ open scoped Manifold Topology Filter
 open Function Set Filter Complex
 
 variable {E : Type*} [NormedAddCommGroup E] [NormedSpace โ„‚ E]
-
 variable {F : Type*} [NormedAddCommGroup F] [NormedSpace โ„‚ F]
-
 variable {H : Type*} [TopologicalSpace H] {I : ModelWithCorners โ„‚ E H} [I.Boundaryless]
-
 variable {M : Type*} [TopologicalSpace M] [CompactSpace M] [ChartedSpace H M]
   [SmoothManifoldWithCorners I M]
 
chore: prepare Lean version bump with explicit simp (#10999)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -74,7 +74,7 @@ theorem Complex.norm_eventually_eq_of_mdifferentiableAt_of_isLocalMax {f : M โ†’
     exact hyโ‚‚.2
   convert norm_eventually_eq_of_isLocalMax hd _
   ยท exact congr_arg f (extChartAt_to_inv _ _).symm
-  ยท simpa only [IsLocalMax, IsMaxFilter, โ† Hโ‚‚, (ยท โˆ˜ ยท), extChartAt_to_inv] using hc
+  ยท simpa only [e, IsLocalMax, IsMaxFilter, โ† Hโ‚‚, (ยท โˆ˜ ยท), extChartAt_to_inv] using hc
 
 /-!
 ### Functions holomorphic on a set
chore: remove stream-of-consciousness uses of have, replace and suffices (#10640)

No changes to tactic file, it's just boring fixes throughout the library.

This follows on from #6964.

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -59,14 +59,14 @@ theorem Complex.norm_eventually_eq_of_mdifferentiableAt_of_isLocalMax {f : M โ†’
   set e := extChartAt I c
   have hI : range I = univ := ModelWithCorners.Boundaryless.range_eq_univ
   have Hโ‚ : ๐“[range I] (e c) = ๐“ (e c) := by rw [hI, nhdsWithin_univ]
-  have Hโ‚‚ : map e.symm (๐“ (e c)) = ๐“ c
-  ยท rw [โ† map_extChartAt_symm_nhdsWithin_range I c, Hโ‚]
+  have Hโ‚‚ : map e.symm (๐“ (e c)) = ๐“ c := by
+    rw [โ† map_extChartAt_symm_nhdsWithin_range I c, Hโ‚]
   rw [โ† Hโ‚‚, eventually_map]
-  replace hd : โˆ€แถ  y in ๐“ (e c), DifferentiableAt โ„‚ (f โˆ˜ e.symm) y
-  ยท have : e.target โˆˆ ๐“ (e c) := Hโ‚ โ–ธ extChartAt_target_mem_nhdsWithin I c
+  replace hd : โˆ€แถ  y in ๐“ (e c), DifferentiableAt โ„‚ (f โˆ˜ e.symm) y := by
+    have : e.target โˆˆ ๐“ (e c) := Hโ‚ โ–ธ extChartAt_target_mem_nhdsWithin I c
     filter_upwards [this, Tendsto.eventually Hโ‚‚.le hd] with y hyt hyโ‚‚
-    have hys : e.symm y โˆˆ (chartAt H c).source
-    ยท rw [โ† extChartAt_source I c]
+    have hys : e.symm y โˆˆ (chartAt H c).source := by
+      rw [โ† extChartAt_source I c]
       exact (extChartAt I c).map_target hyt
     have hfy : f (e.symm y) โˆˆ (chartAt F (0 : F)).source := mem_univ _
     rw [mdifferentiableAt_iff_of_mem_source hys hfy, hI, differentiableWithinAt_univ,
@@ -89,9 +89,9 @@ theorem norm_eqOn_of_isPreconnected_of_isMaxOn {f : M โ†’ F} {U : Set M} {c : M}
     (hd : MDifferentiableOn I ๐“˜(โ„‚, F) f U) (hc : IsPreconnected U) (ho : IsOpen U)
     (hcU : c โˆˆ U) (hm : IsMaxOn (norm โˆ˜ f) U c) : EqOn (norm โˆ˜ f) (const M โ€–f cโ€–) U := by
   set V := {z โˆˆ U | โ€–f zโ€– = โ€–f cโ€–}
-  suffices : U โŠ† V; exact fun x hx => (this hx).2
-  have hVo : IsOpen V
-  ยท refine isOpen_iff_mem_nhds.2 fun x hx โ†ฆ inter_mem (ho.mem_nhds hx.1) ?_
+  suffices U โŠ† V from fun x hx โ†ฆ (this hx).2
+  have hVo : IsOpen V := by
+    refine isOpen_iff_mem_nhds.2 fun x hx โ†ฆ inter_mem (ho.mem_nhds hx.1) ?_
     replace hm : IsLocalMax (โ€–f ยทโ€–) x :=
       mem_of_superset (ho.mem_nhds hx.1) fun z hz โ†ฆ (hm hz).out.trans_eq hx.2.symm
     replace hd : โˆ€แถ  y in ๐“ x, MDifferentiableAt I ๐“˜(โ„‚, F) f y :=
chore: move Geometry/Manifold/MFDeriv (#9588)

To preserve most git history when splitting the file in #9565.

Diff
@@ -5,7 +5,7 @@ Authors: Heather Macbeth
 -/
 import Mathlib.Analysis.Complex.AbsMax
 import Mathlib.Analysis.LocallyConvex.WithSeminorms
-import Mathlib.Geometry.Manifold.MFDeriv
+import Mathlib.Geometry.Manifold.MFDeriv.Basic
 import Mathlib.Topology.LocallyConstant.Basic
 
 #align_import geometry.manifold.complex from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
chore: rename lemmas containing "of_open" to match the naming convention (#8229)

Mostly, this means replacing "of_open" by "of_isOpen". A few lemmas names were misleading and are corrected differently. Zulip discussion.

Diff
@@ -100,7 +100,7 @@ theorem norm_eqOn_of_isPreconnected_of_isMaxOn {f : M โ†’ F} {U : Set M} {c : M}
       (Eq.trans ยท hx.2)
   have hVne : (U โˆฉ V).Nonempty := โŸจc, hcU, hcU, rflโŸฉ
   set W := U โˆฉ {z | โ€–f zโ€– = โ€–f cโ€–}แถœ
-  have hWo : IsOpen W := hd.continuousOn.norm.preimage_open_of_open ho isOpen_ne
+  have hWo : IsOpen W := hd.continuousOn.norm.isOpen_inter_preimage ho isOpen_ne
   have hdVW : Disjoint V W := disjoint_compl_right.mono inf_le_right inf_le_right
   have hUVW : U โŠ† V โˆช W := fun x hx => (eq_or_ne โ€–f xโ€– โ€–f cโ€–).imp (.intro hx) (.intro hx)
   exact hc.subset_left_of_subset_union hVo hWo hdVW hUVW hVne
chore: exactly 4 spaces in theorems (#7328)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -124,8 +124,8 @@ theorem eqOn_of_isPreconnected_of_isMaxOn_norm [StrictConvexSpace โ„ F] {f : M
 /-- If a function `f : M โ†’ F` from a complex manifold to a complex normed space is holomorphic on a
 (pre)connected compact open set, then it is a constant on this set. -/
 theorem apply_eq_of_isPreconnected_isCompact_isOpen {f : M โ†’ F} {U : Set M} {a b : M}
-     (hd : MDifferentiableOn I ๐“˜(โ„‚, F) f U) (hpc : IsPreconnected U) (hc : IsCompact U)
-     (ho : IsOpen U) (ha : a โˆˆ U) (hb : b โˆˆ U) : f a = f b := by
+    (hd : MDifferentiableOn I ๐“˜(โ„‚, F) f U) (hpc : IsPreconnected U) (hc : IsCompact U)
+    (ho : IsOpen U) (ha : a โˆˆ U) (hb : b โˆˆ U) : f a = f b := by
   refine ?_
   -- Subtract `f b` to avoid the assumption `[StrictConvexSpace โ„ F]`
   wlog hbโ‚€ : f b = 0 generalizing f
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
@@ -41,13 +41,13 @@ stalks, such as the Weierstrass preparation theorem.
 open scoped Manifold Topology Filter
 open Function Set Filter Complex
 
-variable {E : Type _} [NormedAddCommGroup E] [NormedSpace โ„‚ E]
+variable {E : Type*} [NormedAddCommGroup E] [NormedSpace โ„‚ E]
 
-variable {F : Type _} [NormedAddCommGroup F] [NormedSpace โ„‚ F]
+variable {F : Type*} [NormedAddCommGroup F] [NormedSpace โ„‚ F]
 
-variable {H : Type _} [TopologicalSpace H] {I : ModelWithCorners โ„‚ E H} [I.Boundaryless]
+variable {H : Type*} [TopologicalSpace H] {I : ModelWithCorners โ„‚ E H} [I.Boundaryless]
 
-variable {M : Type _} [TopologicalSpace M] [CompactSpace M] [ChartedSpace H M]
+variable {M : Type*} [TopologicalSpace M] [CompactSpace M] [ChartedSpace H M]
   [SmoothManifoldWithCorners I M]
 
 /-- **Maximum modulus principle**: if `f : M โ†’ F` is complex differentiable in a neighborhood of `c`
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,17 +2,14 @@
 Copyright (c) 2022 Heather Macbeth. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Heather Macbeth
-
-! This file was ported from Lean 3 source module geometry.manifold.complex
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.Complex.AbsMax
 import Mathlib.Analysis.LocallyConvex.WithSeminorms
 import Mathlib.Geometry.Manifold.MFDeriv
 import Mathlib.Topology.LocallyConstant.Basic
 
+#align_import geometry.manifold.complex from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
+
 /-! # Holomorphic functions on complex manifolds
 
 Thanks to the rigidity of complex-differentiability compared to real-differentiability, there are
feat: port Geometry.Manifold.Complex (#5498)

Dependencies 12 + 1100

1101 files ported (98.9%)
501102 lines ported (98.9%)
Show graph

The unported dependencies are

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