geometry.manifold.instances.real
⟷
Mathlib.Geometry.Manifold.Instances.Real
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -85,16 +85,16 @@ instance [Zero (Fin n)] : Inhabited (EuclideanHalfSpace n) :=
instance : Inhabited (EuclideanQuadrant n) :=
⟨⟨0, fun i => le_rfl⟩⟩
-#print range_half_space /-
-theorem range_half_space (n : ℕ) [Zero (Fin n)] :
+#print range_euclideanHalfSpace /-
+theorem range_euclideanHalfSpace (n : ℕ) [Zero (Fin n)] :
(range fun x : EuclideanHalfSpace n => x.val) = {y | 0 ≤ y 0} := by simp
-#align range_half_space range_half_space
+#align range_half_space range_euclideanHalfSpace
-/
-#print range_quadrant /-
-theorem range_quadrant (n : ℕ) :
+#print range_euclideanQuadrant /-
+theorem range_euclideanQuadrant (n : ℕ) :
(range fun x : EuclideanQuadrant n => x.val) = {y | ∀ i : Fin n, 0 ≤ y i} := by simp
-#align range_quadrant range_quadrant
+#align range_quadrant range_euclideanQuadrant
-/
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -99,7 +99,7 @@ theorem range_quadrant (n : ℕ) :
end
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (i «expr ∈ » ({0} : set[set] (fin[fin] n))) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (i «expr ∈ » ({0} : set[set] (fin[fin] n))) -/
#print modelWithCornersEuclideanHalfSpace /-
/--
Definition of the model with corners `(euclidean_space ℝ (fin n), euclidean_half_space n)`, used as
@@ -195,7 +195,7 @@ def IccLeftChart (x y : ℝ) [Fact (x < y)] : PartialHomeomorph (Icc x y) (Eucli
dsimp at hz h'z
have A : x + z 0 ≤ y := by linarith
rw [Subsingleton.elim i 0]
- simp only [A, add_comm, add_sub_cancel', min_eq_left]
+ simp only [A, add_comm, add_sub_cancel_left, min_eq_left]
open_source :=
haveI : IsOpen {z : ℝ | z < y} := isOpen_Iio
this.preimage continuous_subtype_val
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -183,16 +183,16 @@ def IccLeftChart (x y : ℝ) [Fact (x < y)] : PartialHomeomorph (Icc x y) (Eucli
map_source' := by simp only [imp_self, sub_lt_sub_iff_right, mem_set_of_eq, forall_true_iff]
map_target' := by
simp only [min_lt_iff, mem_set_of_eq]; intro z hz; left
- dsimp [-Subtype.val_eq_coe] at hz ; linarith
+ dsimp [-Subtype.val_eq_coe] at hz; linarith
left_inv' := by
rintro ⟨z, hz⟩ h'z
- simp only [mem_set_of_eq, mem_Icc] at hz h'z
+ simp only [mem_set_of_eq, mem_Icc] at hz h'z
simp only [hz, min_eq_left, sub_add_cancel]
right_inv' := by
rintro ⟨z, hz⟩ h'z
rw [Subtype.mk_eq_mk]
funext
- dsimp at hz h'z
+ dsimp at hz h'z
have A : x + z 0 ≤ y := by linarith
rw [Subsingleton.elim i 0]
simp only [A, add_comm, add_sub_cancel', min_eq_left]
@@ -234,16 +234,16 @@ def IccRightChart (x y : ℝ) [Fact (x < y)] : PartialHomeomorph (Icc x y) (Eucl
map_source' := by simp only [imp_self, mem_set_of_eq, sub_lt_sub_iff_left, forall_true_iff]
map_target' := by
simp only [lt_max_iff, mem_set_of_eq]; intro z hz; left
- dsimp [-Subtype.val_eq_coe] at hz ; linarith
+ dsimp [-Subtype.val_eq_coe] at hz; linarith
left_inv' := by
rintro ⟨z, hz⟩ h'z
- simp only [mem_set_of_eq, mem_Icc] at hz h'z
+ simp only [mem_set_of_eq, mem_Icc] at hz h'z
simp only [hz, sub_eq_add_neg, max_eq_left, add_add_neg_cancel'_right, neg_add_rev, neg_neg]
right_inv' := by
rintro ⟨z, hz⟩ h'z
rw [Subtype.mk_eq_mk]
funext
- dsimp at hz h'z
+ dsimp at hz h'z
have A : x ≤ y - z 0 := by linarith
rw [Subsingleton.elim i 0]
simp only [A, sub_sub_cancel, max_eq_left]
@@ -302,7 +302,7 @@ instance Icc_smooth_manifold (x y : ℝ) [Fact (x < y)] :
exact cont_diff_id.neg.add contDiff_const
apply smoothManifoldWithCorners_of_contDiffOn
intro e e' he he'
- simp only [atlas, mem_singleton_iff, mem_insert_iff] at he he'
+ simp only [atlas, mem_singleton_iff, mem_insert_iff] at he he'
/- We need to check that any composition of two charts gives a `C^∞` function. Each chart can be
either the left chart or the right chart, leaving 4 possibilities that we handle successively.
-/
@@ -314,8 +314,8 @@ instance Icc_smooth_manifold (x y : ℝ) [Fact (x < y)] :
apply M.congr_mono _ (subset_univ _)
rintro _ ⟨⟨hz₁, hz₂⟩, ⟨⟨z, hz₀⟩, rfl⟩⟩
simp only [modelWithCornersEuclideanHalfSpace, IccLeftChart, IccRightChart, update_same,
- max_eq_left, hz₀, lt_sub_iff_add_lt, mfld_simps] at hz₁ hz₂
- rw [min_eq_left hz₁.le, lt_add_iff_pos_left] at hz₂
+ max_eq_left, hz₀, lt_sub_iff_add_lt, mfld_simps] at hz₁ hz₂
+ rw [min_eq_left hz₁.le, lt_add_iff_pos_left] at hz₂
ext i
rw [Subsingleton.elim i 0]
simp only [modelWithCornersEuclideanHalfSpace, IccLeftChart, IccRightChart, *, PiLp.add_apply,
@@ -325,8 +325,8 @@ instance Icc_smooth_manifold (x y : ℝ) [Fact (x < y)] :
apply M.congr_mono _ (subset_univ _)
rintro _ ⟨⟨hz₁, hz₂⟩, ⟨z, hz₀⟩, rfl⟩
simp only [modelWithCornersEuclideanHalfSpace, IccLeftChart, IccRightChart, max_lt_iff,
- update_same, max_eq_left hz₀, mfld_simps] at hz₁ hz₂
- rw [lt_sub_comm] at hz₁
+ update_same, max_eq_left hz₀, mfld_simps] at hz₁ hz₂
+ rw [lt_sub_comm] at hz₁
ext i
rw [Subsingleton.elim i 0]
simp only [modelWithCornersEuclideanHalfSpace, IccLeftChart, IccRightChart, PiLp.add_apply,
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -174,7 +174,7 @@ scoped[Manifold]
/-- The left chart for the topological space `[x, y]`, defined on `[x,y)` and sending `x` to `0` in
`euclidean_half_space 1`.
-/
-def IccLeftChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (EuclideanHalfSpace 1)
+def IccLeftChart (x y : ℝ) [Fact (x < y)] : PartialHomeomorph (Icc x y) (EuclideanHalfSpace 1)
where
source := {z : Icc x y | z.val < y}
target := {z : EuclideanHalfSpace 1 | z.val 0 < y - x}
@@ -224,7 +224,7 @@ def IccLeftChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (Euclide
/-- The right chart for the topological space `[x, y]`, defined on `(x,y]` and sending `y` to `0` in
`euclidean_half_space 1`.
-/
-def IccRightChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (EuclideanHalfSpace 1)
+def IccRightChart (x y : ℝ) [Fact (x < y)] : PartialHomeomorph (Icc x y) (EuclideanHalfSpace 1)
where
source := {z : Icc x y | x < z.val}
target := {z : EuclideanHalfSpace 1 | z.val 0 < y - x}
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ 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.Geometry.Manifold.SmoothManifoldWithCorners
-import Mathbin.Analysis.InnerProductSpace.PiL2
+import Geometry.Manifold.SmoothManifoldWithCorners
+import Analysis.InnerProductSpace.PiL2
#align_import geometry.manifold.instances.real from "leanprover-community/mathlib"@"36938f775671ff28bea1c0310f1608e4afbb22e0"
@@ -99,7 +99,7 @@ theorem range_quadrant (n : ℕ) :
end
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∈ » ({0} : set[set] (fin[fin] n))) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (i «expr ∈ » ({0} : set[set] (fin[fin] n))) -/
#print modelWithCornersEuclideanHalfSpace /-
/--
Definition of the model with corners `(euclidean_space ℝ (fin n), euclidean_half_space n)`, used as
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
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 geometry.manifold.instances.real
-! leanprover-community/mathlib commit 36938f775671ff28bea1c0310f1608e4afbb22e0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Geometry.Manifold.SmoothManifoldWithCorners
import Mathbin.Analysis.InnerProductSpace.PiL2
+#align_import geometry.manifold.instances.real from "leanprover-community/mathlib"@"36938f775671ff28bea1c0310f1608e4afbb22e0"
+
/-!
# Constructing examples of manifolds over ℝ
@@ -102,7 +99,7 @@ theorem range_quadrant (n : ℕ) :
end
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∈ » ({0} : set[set] (fin[fin] n))) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∈ » ({0} : set[set] (fin[fin] n))) -/
#print modelWithCornersEuclideanHalfSpace /-
/--
Definition of the model with corners `(euclidean_space ℝ (fin n), euclidean_half_space n)`, used as
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -88,17 +88,22 @@ instance [Zero (Fin n)] : Inhabited (EuclideanHalfSpace n) :=
instance : Inhabited (EuclideanQuadrant n) :=
⟨⟨0, fun i => le_rfl⟩⟩
+#print range_half_space /-
theorem range_half_space (n : ℕ) [Zero (Fin n)] :
(range fun x : EuclideanHalfSpace n => x.val) = {y | 0 ≤ y 0} := by simp
#align range_half_space range_half_space
+-/
+#print range_quadrant /-
theorem range_quadrant (n : ℕ) :
(range fun x : EuclideanQuadrant n => x.val) = {y | ∀ i : Fin n, 0 ≤ y i} := by simp
#align range_quadrant range_quadrant
+-/
end
/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∈ » ({0} : set[set] (fin[fin] n))) -/
+#print modelWithCornersEuclideanHalfSpace /-
/--
Definition of the model with corners `(euclidean_space ℝ (fin n), euclidean_half_space n)`, used as
a model for manifolds with boundary. In the locale `manifold`, use the shortcut `𝓡∂ n`.
@@ -128,7 +133,9 @@ def modelWithCornersEuclideanHalfSpace (n : ℕ) [Zero (Fin n)] :
continuous_invFun :=
(continuous_id.update 0 <| (continuous_apply 0).max continuous_const).subtype_mk _
#align model_with_corners_euclidean_half_space modelWithCornersEuclideanHalfSpace
+-/
+#print modelWithCornersEuclideanQuadrant /-
/--
Definition of the model with corners `(euclidean_space ℝ (fin n), euclidean_quadrant n)`, used as a
model for manifolds with corners -/
@@ -154,19 +161,19 @@ def modelWithCornersEuclideanQuadrant (n : ℕ) :
Continuous.subtype_mk
(continuous_pi fun i => (continuous_id.max continuous_const).comp (continuous_apply i)) _
#align model_with_corners_euclidean_quadrant modelWithCornersEuclideanQuadrant
+-/
--- mathport name: model_with_corners_self.euclidean
scoped[Manifold]
notation "𝓡 " n =>
(modelWithCornersSelf ℝ (EuclideanSpace ℝ (Fin n)) :
ModelWithCorners ℝ (EuclideanSpace ℝ (Fin n)) (EuclideanSpace ℝ (Fin n)))
--- mathport name: model_with_corners_euclidean_half_space.euclidean
scoped[Manifold]
notation "𝓡∂ " n =>
(modelWithCornersEuclideanHalfSpace n :
ModelWithCorners ℝ (EuclideanSpace ℝ (Fin n)) (EuclideanHalfSpace n))
+#print IccLeftChart /-
/-- The left chart for the topological space `[x, y]`, defined on `[x,y)` and sending `x` to `0` in
`euclidean_half_space 1`.
-/
@@ -214,7 +221,9 @@ def IccLeftChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (Euclide
have B : Continuous fun z : EuclideanSpace ℝ (Fin 1) => z 0 := continuous_apply 0
exact (A.comp B).comp continuous_subtype_val
#align Icc_left_chart IccLeftChart
+-/
+#print IccRightChart /-
/-- The right chart for the topological space `[x, y]`, defined on `(x,y]` and sending `y` to `0` in
`euclidean_half_space 1`.
-/
@@ -263,7 +272,9 @@ def IccRightChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (Euclid
have B : Continuous fun z : EuclideanSpace ℝ (Fin 1) => z 0 := continuous_apply 0
exact (A.comp B).comp continuous_subtype_val
#align Icc_right_chart IccRightChart
+-/
+#print IccManifold /-
/-- Charted space structure on `[x, y]`, using only two charts taking values in
`euclidean_half_space 1`.
-/
@@ -280,7 +291,9 @@ instance IccManifold (x y : ℝ) [Fact (x < y)] : ChartedSpace (EuclideanHalfSpa
simpa only [not_lt] using h'
chart_mem_atlas z := by by_cases h' : (z : ℝ) < y <;> simp [h']
#align Icc_manifold IccManifold
+-/
+#print Icc_smooth_manifold /-
/-- The manifold structure on `[x, y]` is smooth.
-/
instance Icc_smooth_manifold (x y : ℝ) [Fact (x < y)] :
@@ -325,6 +338,7 @@ instance Icc_smooth_manifold (x y : ℝ) [Fact (x < y)] :
·-- `e = right chart`, `e' = right chart`
exact (mem_groupoid_of_pregroupoid.mpr (symm_trans_mem_contDiffGroupoid _ _ _)).1
#align Icc_smooth_manifold Icc_smooth_manifold
+-/
/-! Register the manifold structure on `Icc 0 1`, and also its zero and one. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/31c24aa72e7b3e5ed97a8412470e904f82b81004
@@ -98,7 +98,7 @@ theorem range_quadrant (n : ℕ) :
end
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∈ » ({0} : set[set] (fin[fin] n))) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∈ » ({0} : set[set] (fin[fin] n))) -/
/--
Definition of the model with corners `(euclidean_space ℝ (fin n), euclidean_half_space n)`, used as
a model for manifolds with boundary. In the locale `manifold`, use the shortcut `𝓡∂ n`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/58a272265b5e05f258161260dd2c5d247213cbd3
@@ -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 geometry.manifold.instances.real
-! leanprover-community/mathlib commit 6a033cb3d188a12ca5c509b33e2eaac1c61916cd
+! leanprover-community/mathlib commit 36938f775671ff28bea1c0310f1608e4afbb22e0
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.Analysis.InnerProductSpace.PiL2
/-!
# Constructing examples of manifolds over ℝ
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
We introduce the necessary bits to be able to define manifolds modelled over `ℝ^n`, boundaryless
or with boundary or with corners. As a concrete example, we construct explicitly the manifold with
boundary structure on the real interval `[x, y]`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/13361559d66b84f80b6d5a1c4a26aa5054766725
@@ -48,13 +48,16 @@ open Set Function
open scoped Manifold
+#print EuclideanHalfSpace /-
/-- The half-space in `ℝ^n`, used to model manifolds with boundary. We only define it when
`1 ≤ n`, as the definition only makes sense in this case.
-/
def EuclideanHalfSpace (n : ℕ) [Zero (Fin n)] : Type :=
{ x : EuclideanSpace ℝ (Fin n) // 0 ≤ x 0 }
#align euclidean_half_space EuclideanHalfSpace
+-/
+#print EuclideanQuadrant /-
/--
The quadrant in `ℝ^n`, used to model manifolds with corners, made of all vectors with nonnegative
coordinates.
@@ -62,6 +65,7 @@ coordinates.
def EuclideanQuadrant (n : ℕ) : Type :=
{ x : EuclideanSpace ℝ (Fin n) // ∀ i : Fin n, 0 ≤ x i }
#align euclidean_quadrant EuclideanQuadrant
+-/
section
@@ -163,7 +167,7 @@ scoped[Manifold]
/-- The left chart for the topological space `[x, y]`, defined on `[x,y)` and sending `x` to `0` in
`euclidean_half_space 1`.
-/
-def iccLeftChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (EuclideanHalfSpace 1)
+def IccLeftChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (EuclideanHalfSpace 1)
where
source := {z : Icc x y | z.val < y}
target := {z : EuclideanHalfSpace 1 | z.val 0 < y - x}
@@ -206,12 +210,12 @@ def iccLeftChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (Euclide
(continuous_id.add continuous_const).min continuous_const
have B : Continuous fun z : EuclideanSpace ℝ (Fin 1) => z 0 := continuous_apply 0
exact (A.comp B).comp continuous_subtype_val
-#align Icc_left_chart iccLeftChart
+#align Icc_left_chart IccLeftChart
/-- The right chart for the topological space `[x, y]`, defined on `(x,y]` and sending `y` to `0` in
`euclidean_half_space 1`.
-/
-def iccRightChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (EuclideanHalfSpace 1)
+def IccRightChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (EuclideanHalfSpace 1)
where
source := {z : Icc x y | x < z.val}
target := {z : EuclideanHalfSpace 1 | z.val 0 < y - x}
@@ -255,15 +259,15 @@ def iccRightChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (Euclid
(continuous_const.sub continuous_id).max continuous_const
have B : Continuous fun z : EuclideanSpace ℝ (Fin 1) => z 0 := continuous_apply 0
exact (A.comp B).comp continuous_subtype_val
-#align Icc_right_chart iccRightChart
+#align Icc_right_chart IccRightChart
/-- Charted space structure on `[x, y]`, using only two charts taking values in
`euclidean_half_space 1`.
-/
-instance iccManifold (x y : ℝ) [Fact (x < y)] : ChartedSpace (EuclideanHalfSpace 1) (Icc x y)
+instance IccManifold (x y : ℝ) [Fact (x < y)] : ChartedSpace (EuclideanHalfSpace 1) (Icc x y)
where
- atlas := {iccLeftChart x y, iccRightChart x y}
- chartAt z := if z.val < y then iccLeftChart x y else iccRightChart x y
+ atlas := {IccLeftChart x y, IccRightChart x y}
+ chartAt z := if z.val < y then IccLeftChart x y else IccRightChart x y
mem_chart_source z := by
by_cases h' : z.val < y
· simp only [h', if_true]
@@ -272,7 +276,7 @@ instance iccManifold (x y : ℝ) [Fact (x < y)] : ChartedSpace (EuclideanHalfSpa
apply lt_of_lt_of_le (Fact.out (x < y))
simpa only [not_lt] using h'
chart_mem_atlas z := by by_cases h' : (z : ℝ) < y <;> simp [h']
-#align Icc_manifold iccManifold
+#align Icc_manifold IccManifold
/-- The manifold structure on `[x, y]` is smooth.
-/
@@ -296,23 +300,23 @@ instance Icc_smooth_manifold (x y : ℝ) [Fact (x < y)] :
· -- `e = left chart`, `e' = right chart`
apply M.congr_mono _ (subset_univ _)
rintro _ ⟨⟨hz₁, hz₂⟩, ⟨⟨z, hz₀⟩, rfl⟩⟩
- simp only [modelWithCornersEuclideanHalfSpace, iccLeftChart, iccRightChart, update_same,
+ simp only [modelWithCornersEuclideanHalfSpace, IccLeftChart, IccRightChart, update_same,
max_eq_left, hz₀, lt_sub_iff_add_lt, mfld_simps] at hz₁ hz₂
rw [min_eq_left hz₁.le, lt_add_iff_pos_left] at hz₂
ext i
rw [Subsingleton.elim i 0]
- simp only [modelWithCornersEuclideanHalfSpace, iccLeftChart, iccRightChart, *, PiLp.add_apply,
+ simp only [modelWithCornersEuclideanHalfSpace, IccLeftChart, IccRightChart, *, PiLp.add_apply,
PiLp.neg_apply, max_eq_left, min_eq_left hz₁.le, update_same, mfld_simps]
abel
· -- `e = right chart`, `e' = left chart`
apply M.congr_mono _ (subset_univ _)
rintro _ ⟨⟨hz₁, hz₂⟩, ⟨z, hz₀⟩, rfl⟩
- simp only [modelWithCornersEuclideanHalfSpace, iccLeftChart, iccRightChart, max_lt_iff,
+ simp only [modelWithCornersEuclideanHalfSpace, IccLeftChart, IccRightChart, max_lt_iff,
update_same, max_eq_left hz₀, mfld_simps] at hz₁ hz₂
rw [lt_sub_comm] at hz₁
ext i
rw [Subsingleton.elim i 0]
- simp only [modelWithCornersEuclideanHalfSpace, iccLeftChart, iccRightChart, PiLp.add_apply,
+ simp only [modelWithCornersEuclideanHalfSpace, IccLeftChart, IccRightChart, PiLp.add_apply,
PiLp.neg_apply, update_same, max_eq_left, hz₀, hz₁.le, mfld_simps]
abel
·-- `e = right chart`, `e' = right chart`
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -82,11 +82,11 @@ instance : Inhabited (EuclideanQuadrant n) :=
⟨⟨0, fun i => le_rfl⟩⟩
theorem range_half_space (n : ℕ) [Zero (Fin n)] :
- (range fun x : EuclideanHalfSpace n => x.val) = { y | 0 ≤ y 0 } := by simp
+ (range fun x : EuclideanHalfSpace n => x.val) = {y | 0 ≤ y 0} := by simp
#align range_half_space range_half_space
theorem range_quadrant (n : ℕ) :
- (range fun x : EuclideanQuadrant n => x.val) = { y | ∀ i : Fin n, 0 ≤ y i } := by simp
+ (range fun x : EuclideanQuadrant n => x.val) = {y | ∀ i : Fin n, 0 ≤ y i} := by simp
#align range_quadrant range_quadrant
end
@@ -102,7 +102,7 @@ def modelWithCornersEuclideanHalfSpace (n : ℕ) [Zero (Fin n)] :
toFun := Subtype.val
invFun x := ⟨update x 0 (max (x 0) 0), by simp [le_refl]⟩
source := univ
- target := { x | 0 ≤ x 0 }
+ target := {x | 0 ≤ x 0}
map_source' x hx := x.property
map_target' x hx := mem_univ _
left_inv' := fun ⟨xval, xprop⟩ hx =>
@@ -131,7 +131,7 @@ def modelWithCornersEuclideanQuadrant (n : ℕ) :
toFun := Subtype.val
invFun x := ⟨fun i => max (x i) 0, fun i => by simp only [le_refl, or_true_iff, le_max_iff]⟩
source := univ
- target := { x | ∀ i, 0 ≤ x i }
+ target := {x | ∀ i, 0 ≤ x i}
map_source' x hx := by simpa only [Subtype.range_val] using x.property
map_target' x hx := mem_univ _
left_inv' := fun ⟨xval, xprop⟩ hx => by ext i; simp only [Subtype.coe_mk, xprop i, max_eq_left]
@@ -165,8 +165,8 @@ scoped[Manifold]
-/
def iccLeftChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (EuclideanHalfSpace 1)
where
- source := { z : Icc x y | z.val < y }
- target := { z : EuclideanHalfSpace 1 | z.val 0 < y - x }
+ source := {z : Icc x y | z.val < y}
+ target := {z : EuclideanHalfSpace 1 | z.val 0 < y - x}
toFun := fun z : Icc x y => ⟨fun i => z.val - x, sub_nonneg.mpr z.property.1⟩
invFun z := ⟨min (z.val 0 + x) y, by simp [le_refl, z.prop, le_of_lt (Fact.out (x < y))]⟩
map_source' := by simp only [imp_self, sub_lt_sub_iff_right, mem_set_of_eq, forall_true_iff]
@@ -186,11 +186,11 @@ def iccLeftChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (Euclide
rw [Subsingleton.elim i 0]
simp only [A, add_comm, add_sub_cancel', min_eq_left]
open_source :=
- haveI : IsOpen { z : ℝ | z < y } := isOpen_Iio
+ haveI : IsOpen {z : ℝ | z < y} := isOpen_Iio
this.preimage continuous_subtype_val
open_target := by
- have : IsOpen { z : ℝ | z < y - x } := isOpen_Iio
- have : IsOpen { z : EuclideanSpace ℝ (Fin 1) | z 0 < y - x } :=
+ have : IsOpen {z : ℝ | z < y - x} := isOpen_Iio
+ have : IsOpen {z : EuclideanSpace ℝ (Fin 1) | z 0 < y - x} :=
this.preimage (@continuous_apply (Fin 1) (fun _ => ℝ) _ 0)
exact this.preimage continuous_subtype_val
continuous_toFun := by
@@ -213,8 +213,8 @@ def iccLeftChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (Euclide
-/
def iccRightChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (EuclideanHalfSpace 1)
where
- source := { z : Icc x y | x < z.val }
- target := { z : EuclideanHalfSpace 1 | z.val 0 < y - x }
+ source := {z : Icc x y | x < z.val}
+ target := {z : EuclideanHalfSpace 1 | z.val 0 < y - x}
toFun := fun z : Icc x y => ⟨fun i => y - z.val, sub_nonneg.mpr z.property.2⟩
invFun z :=
⟨max (y - z.val 0) x, by simp [le_refl, z.prop, le_of_lt (Fact.out (x < y)), sub_eq_add_neg]⟩
@@ -235,11 +235,11 @@ def iccRightChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (Euclid
rw [Subsingleton.elim i 0]
simp only [A, sub_sub_cancel, max_eq_left]
open_source :=
- haveI : IsOpen { z : ℝ | x < z } := isOpen_Ioi
+ haveI : IsOpen {z : ℝ | x < z} := isOpen_Ioi
this.preimage continuous_subtype_val
open_target := by
- have : IsOpen { z : ℝ | z < y - x } := isOpen_Iio
- have : IsOpen { z : EuclideanSpace ℝ (Fin 1) | z 0 < y - x } :=
+ have : IsOpen {z : ℝ | z < y - x} := isOpen_Iio
+ have : IsOpen {z : EuclideanSpace ℝ (Fin 1) | z 0 < y - x} :=
this.preimage (@continuous_apply (Fin 1) (fun _ => ℝ) _ 0)
exact this.preimage continuous_subtype_val
continuous_toFun := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -172,16 +172,16 @@ def iccLeftChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (Euclide
map_source' := by simp only [imp_self, sub_lt_sub_iff_right, mem_set_of_eq, forall_true_iff]
map_target' := by
simp only [min_lt_iff, mem_set_of_eq]; intro z hz; left
- dsimp [-Subtype.val_eq_coe] at hz; linarith
+ dsimp [-Subtype.val_eq_coe] at hz ; linarith
left_inv' := by
rintro ⟨z, hz⟩ h'z
- simp only [mem_set_of_eq, mem_Icc] at hz h'z
+ simp only [mem_set_of_eq, mem_Icc] at hz h'z
simp only [hz, min_eq_left, sub_add_cancel]
right_inv' := by
rintro ⟨z, hz⟩ h'z
rw [Subtype.mk_eq_mk]
funext
- dsimp at hz h'z
+ dsimp at hz h'z
have A : x + z 0 ≤ y := by linarith
rw [Subsingleton.elim i 0]
simp only [A, add_comm, add_sub_cancel', min_eq_left]
@@ -221,16 +221,16 @@ def iccRightChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (Euclid
map_source' := by simp only [imp_self, mem_set_of_eq, sub_lt_sub_iff_left, forall_true_iff]
map_target' := by
simp only [lt_max_iff, mem_set_of_eq]; intro z hz; left
- dsimp [-Subtype.val_eq_coe] at hz; linarith
+ dsimp [-Subtype.val_eq_coe] at hz ; linarith
left_inv' := by
rintro ⟨z, hz⟩ h'z
- simp only [mem_set_of_eq, mem_Icc] at hz h'z
+ simp only [mem_set_of_eq, mem_Icc] at hz h'z
simp only [hz, sub_eq_add_neg, max_eq_left, add_add_neg_cancel'_right, neg_add_rev, neg_neg]
right_inv' := by
rintro ⟨z, hz⟩ h'z
rw [Subtype.mk_eq_mk]
funext
- dsimp at hz h'z
+ dsimp at hz h'z
have A : x ≤ y - z 0 := by linarith
rw [Subsingleton.elim i 0]
simp only [A, sub_sub_cancel, max_eq_left]
@@ -285,7 +285,7 @@ instance Icc_smooth_manifold (x y : ℝ) [Fact (x < y)] :
exact cont_diff_id.neg.add contDiff_const
apply smoothManifoldWithCorners_of_contDiffOn
intro e e' he he'
- simp only [atlas, mem_singleton_iff, mem_insert_iff] at he he'
+ simp only [atlas, mem_singleton_iff, mem_insert_iff] at he he'
/- We need to check that any composition of two charts gives a `C^∞` function. Each chart can be
either the left chart or the right chart, leaving 4 possibilities that we handle successively.
-/
@@ -297,8 +297,8 @@ instance Icc_smooth_manifold (x y : ℝ) [Fact (x < y)] :
apply M.congr_mono _ (subset_univ _)
rintro _ ⟨⟨hz₁, hz₂⟩, ⟨⟨z, hz₀⟩, rfl⟩⟩
simp only [modelWithCornersEuclideanHalfSpace, iccLeftChart, iccRightChart, update_same,
- max_eq_left, hz₀, lt_sub_iff_add_lt, mfld_simps] at hz₁ hz₂
- rw [min_eq_left hz₁.le, lt_add_iff_pos_left] at hz₂
+ max_eq_left, hz₀, lt_sub_iff_add_lt, mfld_simps] at hz₁ hz₂
+ rw [min_eq_left hz₁.le, lt_add_iff_pos_left] at hz₂
ext i
rw [Subsingleton.elim i 0]
simp only [modelWithCornersEuclideanHalfSpace, iccLeftChart, iccRightChart, *, PiLp.add_apply,
@@ -308,8 +308,8 @@ instance Icc_smooth_manifold (x y : ℝ) [Fact (x < y)] :
apply M.congr_mono _ (subset_univ _)
rintro _ ⟨⟨hz₁, hz₂⟩, ⟨z, hz₀⟩, rfl⟩
simp only [modelWithCornersEuclideanHalfSpace, iccLeftChart, iccRightChart, max_lt_iff,
- update_same, max_eq_left hz₀, mfld_simps] at hz₁ hz₂
- rw [lt_sub_comm] at hz₁
+ update_same, max_eq_left hz₀, mfld_simps] at hz₁ hz₂
+ rw [lt_sub_comm] at hz₁
ext i
rw [Subsingleton.elim i 0]
simp only [modelWithCornersEuclideanHalfSpace, iccLeftChart, iccRightChart, PiLp.add_apply,
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -46,7 +46,7 @@ noncomputable section
open Set Function
-open Manifold
+open scoped Manifold
/-- The half-space in `ℝ^n`, used to model manifolds with boundary. We only define it when
`1 ≤ n`, as the definition only makes sense in this case.
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -134,12 +134,8 @@ def modelWithCornersEuclideanQuadrant (n : ℕ) :
target := { x | ∀ i, 0 ≤ x i }
map_source' x hx := by simpa only [Subtype.range_val] using x.property
map_target' x hx := mem_univ _
- left_inv' := fun ⟨xval, xprop⟩ hx => by
- ext i
- simp only [Subtype.coe_mk, xprop i, max_eq_left]
- right_inv' x hx := by
- ext1 i
- simp only [hx i, max_eq_left]
+ left_inv' := fun ⟨xval, xprop⟩ hx => by ext i; simp only [Subtype.coe_mk, xprop i, max_eq_left]
+ right_inv' x hx := by ext1 i; simp only [hx i, max_eq_left]
source_eq := rfl
unique_diff' :=
by
@@ -175,11 +171,8 @@ def iccLeftChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (Euclide
invFun z := ⟨min (z.val 0 + x) y, by simp [le_refl, z.prop, le_of_lt (Fact.out (x < y))]⟩
map_source' := by simp only [imp_self, sub_lt_sub_iff_right, mem_set_of_eq, forall_true_iff]
map_target' := by
- simp only [min_lt_iff, mem_set_of_eq]
- intro z hz
- left
- dsimp [-Subtype.val_eq_coe] at hz
- linarith
+ simp only [min_lt_iff, mem_set_of_eq]; intro z hz; left
+ dsimp [-Subtype.val_eq_coe] at hz; linarith
left_inv' := by
rintro ⟨z, hz⟩ h'z
simp only [mem_set_of_eq, mem_Icc] at hz h'z
@@ -227,11 +220,8 @@ def iccRightChart (x y : ℝ) [Fact (x < y)] : LocalHomeomorph (Icc x y) (Euclid
⟨max (y - z.val 0) x, by simp [le_refl, z.prop, le_of_lt (Fact.out (x < y)), sub_eq_add_neg]⟩
map_source' := by simp only [imp_self, mem_set_of_eq, sub_lt_sub_iff_left, forall_true_iff]
map_target' := by
- simp only [lt_max_iff, mem_set_of_eq]
- intro z hz
- left
- dsimp [-Subtype.val_eq_coe] at hz
- linarith
+ simp only [lt_max_iff, mem_set_of_eq]; intro z hz; left
+ dsimp [-Subtype.val_eq_coe] at hz; linarith
left_inv' := by
rintro ⟨z, hz⟩ h'z
simp only [mem_set_of_eq, mem_Icc] at hz h'z
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -91,7 +91,7 @@ theorem range_quadrant (n : ℕ) :
end
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (i «expr ∈ » ({0} : set[set] (fin[fin] n))) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∈ » ({0} : set[set] (fin[fin] n))) -/
/--
Definition of the model with corners `(euclidean_space ℝ (fin n), euclidean_half_space n)`, used as
a model for manifolds with boundary. In the locale `manifold`, use the shortcut `𝓡∂ n`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
This is a (rather boring) technical step in developing the theory of Hurwitz zeta functions: one needs to show that certain
sums related to Jacobi theta series decay exponentially for large t
.
@@ -325,8 +325,6 @@ instance Icc_smooth_manifold (x y : ℝ) [Fact (x < y)] :
section
-attribute [local instance] Real.fact_zero_lt_one
-
instance : ChartedSpace (EuclideanHalfSpace 1) (Icc (0 : ℝ) 1) := by infer_instance
instance : SmoothManifoldWithCorners (𝓡∂ 1) (Icc (0 : ℝ) 1) := by infer_instance
A mix of various changes; generated with a script and manually tweaked.
@@ -23,7 +23,7 @@ More specifically, we introduce
## Notations
-In the locale `manifold`, we introduce the notations
+In the locale `Manifold`, we introduce the notations
* `𝓡 n` for the identity model with corners on `EuclideanSpace ℝ (Fin n)`
* `𝓡∂ n` for `ModelWithCorners ℝ (EuclideanSpace ℝ (Fin n)) (EuclideanHalfSpace n)`.
@@ -105,7 +105,7 @@ end
/--
Definition of the model with corners `(EuclideanSpace ℝ (Fin n), EuclideanHalfSpace n)`, used as
-a model for manifolds with boundary. In the locale `manifold`, use the shortcut `𝓡∂ n`.
+a model for manifolds with boundary. In the locale `Manifold`, use the shortcut `𝓡∂ n`.
-/
def modelWithCornersEuclideanHalfSpace (n : ℕ) [Zero (Fin n)] :
ModelWithCorners ℝ (EuclideanSpace ℝ (Fin n)) (EuclideanHalfSpace n) where
@@ -30,7 +30,8 @@ In the locale `manifold`, we introduce the notations
For instance, if a manifold `M` is boundaryless, smooth and modelled on `EuclideanSpace ℝ (Fin m)`,
and `N` is smooth with boundary modelled on `EuclideanHalfSpace n`, and `f : M → N` is a smooth
map, then the derivative of `f` can be written simply as `mfderiv (𝓡 m) (𝓡∂ n) f` (as to why the
-model with corners can not be implicit, see the discussion in `smooth_manifold_with_corners.lean`).
+model with corners can not be implicit, see the discussion in
+`Geometry.Manifold.SmoothManifoldWithCorners`).
## Implementation notes
for models with corners and \infty
The first two docstrings are small modifications of the module docstring.
@@ -152,11 +152,13 @@ def modelWithCornersEuclideanQuadrant (n : ℕ) :
(continuous_pi fun i => (continuous_id.max continuous_const).comp (continuous_apply i)) _
#align model_with_corners_euclidean_quadrant modelWithCornersEuclideanQuadrant
+/-- The model space used to define `n`-dimensional real manifolds without boundary. -/
scoped[Manifold]
notation "𝓡 " n =>
(modelWithCornersSelf ℝ (EuclideanSpace ℝ (Fin n)) :
ModelWithCorners ℝ (EuclideanSpace ℝ (Fin n)) (EuclideanSpace ℝ (Fin n)))
+/-- The model space used to define `n`-dimensional real manifolds with boundary. -/
scoped[Manifold]
notation "𝓡∂ " n =>
(modelWithCornersEuclideanHalfSpace n :
@@ -88,15 +88,17 @@ theorem EuclideanHalfSpace.ext [Zero (Fin n)] (x y : EuclideanHalfSpace n)
(h : x.1 = y.1) : x = y :=
Subtype.eq h
-theorem range_half_space (n : ℕ) [Zero (Fin n)] :
+theorem range_euclideanHalfSpace (n : ℕ) [Zero (Fin n)] :
(range fun x : EuclideanHalfSpace n => x.val) = { y | 0 ≤ y 0 } :=
Subtype.range_val
-#align range_half_space range_half_space
+#align range_half_space range_euclideanHalfSpace
+@[deprecated] alias range_half_space := range_euclideanHalfSpace -- 2024-04-05
-theorem range_quadrant (n : ℕ) :
+theorem range_euclideanQuadrant (n : ℕ) :
(range fun x : EuclideanQuadrant n => x.val) = { y | ∀ i : Fin n, 0 ≤ y i } :=
Subtype.range_val
-#align range_quadrant range_quadrant
+#align range_quadrant range_euclideanQuadrant
+@[deprecated] alias range_quadrant := range_euclideanQuadrant -- 2024-04-05
end
@@ -150,13 +150,11 @@ def modelWithCornersEuclideanQuadrant (n : ℕ) :
(continuous_pi fun i => (continuous_id.max continuous_const).comp (continuous_apply i)) _
#align model_with_corners_euclidean_quadrant modelWithCornersEuclideanQuadrant
--- mathport name: model_with_corners_self.euclidean
scoped[Manifold]
notation "𝓡 " n =>
(modelWithCornersSelf ℝ (EuclideanSpace ℝ (Fin n)) :
ModelWithCorners ℝ (EuclideanSpace ℝ (Fin n)) (EuclideanSpace ℝ (Fin n)))
--- mathport name: model_with_corners_euclidean_half_space.euclidean
scoped[Manifold]
notation "𝓡∂ " n =>
(modelWithCornersEuclideanHalfSpace n :
mul
-div
cancellation lemmas (#11530)
Lemma names around cancellation of multiplication and division are a mess.
This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero
lemma name, the Group
lemma, the AddGroup
lemma name).
| Statement | New name | Old name | |
@@ -186,7 +186,7 @@ def IccLeftChart (x y : ℝ) [h : Fact (x < y)] :
dsimp at hz h'z
have A : x + z 0 ≤ y := by linarith
rw [Subsingleton.elim i 0]
- simp only [A, add_comm, add_sub_cancel', min_eq_left]
+ simp only [A, add_comm, add_sub_cancel_left, min_eq_left]
open_source :=
haveI : IsOpen { z : ℝ | z < y } := isOpen_Iio
this.preimage continuous_subtype_val
@@ -79,11 +79,11 @@ instance [Zero (Fin n)] : Inhabited (EuclideanHalfSpace n) :=
instance : Inhabited (EuclideanQuadrant n) :=
⟨⟨0, fun _ => le_rfl⟩⟩
-@[ext] -- Porting note: new theorem
+@[ext] -- Porting note (#10756): new theorem
theorem EuclideanQuadrant.ext (x y : EuclideanQuadrant n) (h : x.1 = y.1) : x = y :=
Subtype.eq h
-@[ext] -- Porting note: new theorem
+@[ext] -- Porting note (#10756): new theorem
theorem EuclideanHalfSpace.ext [Zero (Fin n)] (x y : EuclideanHalfSpace n)
(h : x.1 = y.1) : x = y :=
Subtype.eq h
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -79,11 +79,11 @@ instance [Zero (Fin n)] : Inhabited (EuclideanHalfSpace n) :=
instance : Inhabited (EuclideanQuadrant n) :=
⟨⟨0, fun _ => le_rfl⟩⟩
-@[ext] -- porting note: new theorem
+@[ext] -- Porting note: new theorem
theorem EuclideanQuadrant.ext (x y : EuclideanQuadrant n) (h : x.1 = y.1) : x = y :=
Subtype.eq h
-@[ext] -- porting note: new theorem
+@[ext] -- Porting note: new theorem
theorem EuclideanHalfSpace.ext [Zero (Fin n)] (x y : EuclideanHalfSpace n)
(h : x.1 = y.1) : x = y :=
Subtype.eq h
LocalHomeomorph
evokes a "local homeomorphism": this is not what this means.
Instead, this is a homeomorphism on an open set of the domain (extended to the whole space, by the junk value pattern). Hence, partial homeomorphism is more appropriate, and avoids confusion with IsLocallyHomeomorph
.
A future PR will rename LocalEquiv
to PartialEquiv
.
@@ -166,7 +166,7 @@ scoped[Manifold]
`EuclideanHalfSpace 1`.
-/
def IccLeftChart (x y : ℝ) [h : Fact (x < y)] :
- LocalHomeomorph (Icc x y) (EuclideanHalfSpace 1) where
+ PartialHomeomorph (Icc x y) (EuclideanHalfSpace 1) where
source := { z : Icc x y | z.val < y }
target := { z : EuclideanHalfSpace 1 | z.val 0 < y - x }
toFun := fun z : Icc x y => ⟨fun _ => z.val - x, sub_nonneg.mpr z.property.1⟩
@@ -214,7 +214,7 @@ def IccLeftChart (x y : ℝ) [h : Fact (x < y)] :
`EuclideanHalfSpace 1`.
-/
def IccRightChart (x y : ℝ) [h : Fact (x < y)] :
- LocalHomeomorph (Icc x y) (EuclideanHalfSpace 1) where
+ PartialHomeomorph (Icc x y) (EuclideanHalfSpace 1) where
source := { z : Icc x y | x < z.val }
target := { z : EuclideanHalfSpace 1 | z.val 0 < y - x }
toFun z := ⟨fun _ => y - z.val, sub_nonneg.mpr z.property.2⟩
They have type ContinuousOn ..., hence should be named accordingly. Suggested by @fpvandoorn in #8736.
@@ -195,13 +195,13 @@ def IccLeftChart (x y : ℝ) [h : Fact (x < y)] :
have : IsOpen { z : EuclideanSpace ℝ (Fin 1) | z 0 < y - x } :=
this.preimage (@continuous_apply (Fin 1) (fun _ => ℝ) _ 0)
exact this.preimage continuous_subtype_val
- continuous_toFun := by
+ continuousOn_toFun := by
apply Continuous.continuousOn
apply Continuous.subtype_mk
have : Continuous fun (z : ℝ) (_ : Fin 1) => z - x :=
Continuous.sub (continuous_pi fun _ => continuous_id) continuous_const
exact this.comp continuous_subtype_val
- continuous_invFun := by
+ continuousOn_invFun := by
apply Continuous.continuousOn
apply Continuous.subtype_mk
have A : Continuous fun z : ℝ => min (z + x) y :=
@@ -244,13 +244,13 @@ def IccRightChart (x y : ℝ) [h : Fact (x < y)] :
have : IsOpen { z : EuclideanSpace ℝ (Fin 1) | z 0 < y - x } :=
this.preimage (@continuous_apply (Fin 1) (fun _ => ℝ) _ 0)
exact this.preimage continuous_subtype_val
- continuous_toFun := by
+ continuousOn_toFun := by
apply Continuous.continuousOn
apply Continuous.subtype_mk
have : Continuous fun (z : ℝ) (_ : Fin 1) => y - z :=
continuous_const.sub (continuous_pi fun _ => continuous_id)
exact this.comp continuous_subtype_val
- continuous_invFun := by
+ continuousOn_invFun := by
apply Continuous.continuousOn
apply Continuous.subtype_mk
have A : Continuous fun z : ℝ => max (y - z) x :=
@@ -174,7 +174,7 @@ def IccLeftChart (x y : ℝ) [h : Fact (x < y)] :
map_source' := by simp only [imp_self, sub_lt_sub_iff_right, mem_setOf_eq, forall_true_iff]
map_target' := by
simp only [min_lt_iff, mem_setOf_eq]; intro z hz; left
- dsimp at hz; linarith
+ linarith
left_inv' := by
rintro ⟨z, hz⟩ h'z
simp only [mem_setOf_eq, mem_Icc] at hz h'z
@@ -223,7 +223,7 @@ def IccRightChart (x y : ℝ) [h : Fact (x < y)] :
map_source' := by simp only [imp_self, mem_setOf_eq, sub_lt_sub_iff_left, forall_true_iff]
map_target' := by
simp only [lt_max_iff, mem_setOf_eq]; intro z hz; left
- dsimp at hz; linarith
+ linarith
left_inv' := by
rintro ⟨z, hz⟩ h'z
simp only [mem_setOf_eq, mem_Icc] at hz h'z
@@ -2,15 +2,12 @@
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 geometry.manifold.instances.real
-! leanprover-community/mathlib commit 6a033cb3d188a12ca5c509b33e2eaac1c61916cd
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Geometry.Manifold.SmoothManifoldWithCorners
import Mathlib.Analysis.InnerProductSpace.PiL2
+#align_import geometry.manifold.instances.real from "leanprover-community/mathlib"@"6a033cb3d188a12ca5c509b33e2eaac1c61916cd"
+
/-!
# Constructing examples of manifolds over ℝ
This is the second half of the changes originally in #5699, removing all occurrences of ;
after a space and implementing a linter rule to enforce it.
In most cases this 2-character substring has a space after it, so the following command was run first:
find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;
The remaining cases were few enough in number that they were done manually.
@@ -177,7 +177,7 @@ def IccLeftChart (x y : ℝ) [h : Fact (x < y)] :
map_source' := by simp only [imp_self, sub_lt_sub_iff_right, mem_setOf_eq, forall_true_iff]
map_target' := by
simp only [min_lt_iff, mem_setOf_eq]; intro z hz; left
- dsimp at hz ; linarith
+ dsimp at hz; linarith
left_inv' := by
rintro ⟨z, hz⟩ h'z
simp only [mem_setOf_eq, mem_Icc] at hz h'z
@@ -226,7 +226,7 @@ def IccRightChart (x y : ℝ) [h : Fact (x < y)] :
map_source' := by simp only [imp_self, mem_setOf_eq, sub_lt_sub_iff_left, forall_true_iff]
map_target' := by
simp only [lt_max_iff, mem_setOf_eq]; intro z hz; left
- dsimp at hz ; linarith
+ dsimp at hz; linarith
left_inv' := by
rintro ⟨z, hz⟩ h'z
simp only [mem_setOf_eq, mem_Icc] at hz h'z
@@ -141,7 +141,7 @@ def modelWithCornersEuclideanQuadrant (n : ℕ) :
target := { x | ∀ i, 0 ≤ x i }
map_source' x _ := x.property
map_target' x _ := mem_univ _
- left_inv' x _:= by ext i; simp only [Subtype.coe_mk, x.2 i, max_eq_left]
+ left_inv' x _ := by ext i; simp only [Subtype.coe_mk, x.2 i, max_eq_left]
right_inv' x hx := by ext1 i; simp only [hx i, max_eq_left]
source_eq := rfl
unique_diff' := by
@@ -180,13 +180,13 @@ def IccLeftChart (x y : ℝ) [h : Fact (x < y)] :
dsimp at hz ; linarith
left_inv' := by
rintro ⟨z, hz⟩ h'z
- simp only [mem_setOf_eq, mem_Icc] at hz h'z
+ simp only [mem_setOf_eq, mem_Icc] at hz h'z
simp only [hz, min_eq_left, sub_add_cancel]
right_inv' := by
rintro ⟨z, hz⟩ h'z
rw [Subtype.mk_eq_mk]
funext i
- dsimp at hz h'z
+ dsimp at hz h'z
have A : x + z 0 ≤ y := by linarith
rw [Subsingleton.elim i 0]
simp only [A, add_comm, add_sub_cancel', min_eq_left]
@@ -229,13 +229,13 @@ def IccRightChart (x y : ℝ) [h : Fact (x < y)] :
dsimp at hz ; linarith
left_inv' := by
rintro ⟨z, hz⟩ h'z
- simp only [mem_setOf_eq, mem_Icc] at hz h'z
+ simp only [mem_setOf_eq, mem_Icc] at hz h'z
simp only [hz, sub_eq_add_neg, max_eq_left, add_add_neg_cancel'_right, neg_add_rev, neg_neg]
right_inv' := by
rintro ⟨z, hz⟩ h'z
rw [Subtype.mk_eq_mk]
funext i
- dsimp at hz h'z
+ dsimp at hz h'z
have A : x ≤ y - z 0 := by linarith
rw [Subsingleton.elim i 0]
simp only [A, sub_sub_cancel, max_eq_left]
@@ -288,7 +288,7 @@ instance Icc_smooth_manifold (x y : ℝ) [Fact (x < y)] :
contDiff_id.neg.add contDiff_const
apply smoothManifoldWithCorners_of_contDiffOn
intro e e' he he'
- simp only [atlas, mem_singleton_iff, mem_insert_iff] at he he'
+ simp only [atlas, mem_singleton_iff, mem_insert_iff] at he he'
/- We need to check that any composition of two charts gives a `C^∞` function. Each chart can be
either the left chart or the right chart, leaving 4 possibilities that we handle successively. -/
rcases he with (rfl | rfl) <;> rcases he' with (rfl | rfl)
@@ -298,8 +298,8 @@ instance Icc_smooth_manifold (x y : ℝ) [Fact (x < y)] :
apply M.contDiffOn.congr
rintro _ ⟨⟨hz₁, hz₂⟩, ⟨⟨z, hz₀⟩, rfl⟩⟩
simp only [modelWithCornersEuclideanHalfSpace, IccLeftChart, IccRightChart, update_same,
- max_eq_left, hz₀, lt_sub_iff_add_lt, mfld_simps] at hz₁ hz₂
- rw [min_eq_left hz₁.le, lt_add_iff_pos_left] at hz₂
+ max_eq_left, hz₀, lt_sub_iff_add_lt, mfld_simps] at hz₁ hz₂
+ rw [min_eq_left hz₁.le, lt_add_iff_pos_left] at hz₂
ext i
rw [Subsingleton.elim i 0]
simp only [modelWithCornersEuclideanHalfSpace, IccLeftChart, IccRightChart, *, PiLp.add_apply,
@@ -309,8 +309,8 @@ instance Icc_smooth_manifold (x y : ℝ) [Fact (x < y)] :
apply M.contDiffOn.congr
rintro _ ⟨⟨hz₁, hz₂⟩, ⟨z, hz₀⟩, rfl⟩
simp only [modelWithCornersEuclideanHalfSpace, IccLeftChart, IccRightChart, max_lt_iff,
- update_same, max_eq_left hz₀, mfld_simps] at hz₁ hz₂
- rw [lt_sub_comm] at hz₁
+ update_same, max_eq_left hz₀, mfld_simps] at hz₁ hz₂
+ rw [lt_sub_comm] at hz₁
ext i
rw [Subsingleton.elim i 0]
simp only [modelWithCornersEuclideanHalfSpace, IccLeftChart, IccRightChart, PiLp.add_apply,
The unported dependencies are
algebra.order.module
init.core
linear_algebra.free_module.finite.rank
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
linear_algebra.free_module.rank
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file