analysis.complex.re_im_topology
⟷
Mathlib.Analysis.Complex.ReImTopology
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -46,14 +46,14 @@ namespace Complex
#print Complex.isHomeomorphicTrivialFiberBundle_re /-
/-- `complex.re` turns `ℂ` into a trivial topological fiber bundle over `ℝ`. -/
theorem isHomeomorphicTrivialFiberBundle_re : IsHomeomorphicTrivialFiberBundle ℝ re :=
- ⟨equivRealProdClm.toHomeomorph, fun z => rfl⟩
+ ⟨equivRealProdCLM.toHomeomorph, fun z => rfl⟩
#align complex.is_homeomorphic_trivial_fiber_bundle_re Complex.isHomeomorphicTrivialFiberBundle_re
-/
#print Complex.isHomeomorphicTrivialFiberBundle_im /-
/-- `complex.im` turns `ℂ` into a trivial topological fiber bundle over `ℝ`. -/
theorem isHomeomorphicTrivialFiberBundle_im : IsHomeomorphicTrivialFiberBundle ℝ im :=
- ⟨equivRealProdClm.toHomeomorph.trans (Homeomorph.prodComm ℝ ℝ), fun z => rfl⟩
+ ⟨equivRealProdCLM.toHomeomorph.trans (Homeomorph.prodComm ℝ ℝ), fun z => rfl⟩
#align complex.is_homeomorphic_trivial_fiber_bundle_im Complex.isHomeomorphicTrivialFiberBundle_im
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2022 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
-/
-import Mathbin.Analysis.Complex.Basic
-import Mathbin.Topology.FiberBundle.IsHomeomorphicTrivialBundle
+import Analysis.Complex.Basic
+import Topology.FiberBundle.IsHomeomorphicTrivialBundle
#align_import analysis.complex.re_im_topology from "leanprover-community/mathlib"@"2ed2c6310e6f1c5562bdf6bfbda55ebbf6891abe"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -283,9 +283,9 @@ theorem IsClosed.reProdIm (hs : IsClosed s) (ht : IsClosed t) : IsClosed (s ×
#align is_closed.re_prod_im IsClosed.reProdIm
-/
-#print Metric.Bounded.reProdIm /-
-theorem Metric.Bounded.reProdIm (hs : Bounded s) (ht : Bounded t) : Bounded (s ×ℂ t) :=
- antilipschitz_equivRealProd.bounded_preimage (hs.Prod ht)
-#align metric.bounded.re_prod_im Metric.Bounded.reProdIm
+#print Bornology.IsBounded.reProdIm /-
+theorem Bornology.IsBounded.reProdIm (hs : IsBounded s) (ht : IsBounded t) : IsBounded (s ×ℂ t) :=
+ antilipschitz_equivRealProd.isBounded_preimage (hs.Prod ht)
+#align metric.bounded.re_prod_im Bornology.IsBounded.reProdIm
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2022 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module analysis.complex.re_im_topology
-! leanprover-community/mathlib commit 2ed2c6310e6f1c5562bdf6bfbda55ebbf6891abe
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Analysis.Complex.Basic
import Mathbin.Topology.FiberBundle.IsHomeomorphicTrivialBundle
+#align_import analysis.complex.re_im_topology from "leanprover-community/mathlib"@"2ed2c6310e6f1c5562bdf6bfbda55ebbf6891abe"
+
/-!
# Closure, interior, and frontier of preimages under `re` and `im`
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -46,161 +46,227 @@ noncomputable section
namespace Complex
+#print Complex.isHomeomorphicTrivialFiberBundle_re /-
/-- `complex.re` turns `ℂ` into a trivial topological fiber bundle over `ℝ`. -/
theorem isHomeomorphicTrivialFiberBundle_re : IsHomeomorphicTrivialFiberBundle ℝ re :=
⟨equivRealProdClm.toHomeomorph, fun z => rfl⟩
#align complex.is_homeomorphic_trivial_fiber_bundle_re Complex.isHomeomorphicTrivialFiberBundle_re
+-/
+#print Complex.isHomeomorphicTrivialFiberBundle_im /-
/-- `complex.im` turns `ℂ` into a trivial topological fiber bundle over `ℝ`. -/
theorem isHomeomorphicTrivialFiberBundle_im : IsHomeomorphicTrivialFiberBundle ℝ im :=
⟨equivRealProdClm.toHomeomorph.trans (Homeomorph.prodComm ℝ ℝ), fun z => rfl⟩
#align complex.is_homeomorphic_trivial_fiber_bundle_im Complex.isHomeomorphicTrivialFiberBundle_im
+-/
+#print Complex.isOpenMap_re /-
theorem isOpenMap_re : IsOpenMap re :=
isHomeomorphicTrivialFiberBundle_re.isOpenMap_proj
#align complex.is_open_map_re Complex.isOpenMap_re
+-/
+#print Complex.isOpenMap_im /-
theorem isOpenMap_im : IsOpenMap im :=
isHomeomorphicTrivialFiberBundle_im.isOpenMap_proj
#align complex.is_open_map_im Complex.isOpenMap_im
+-/
+#print Complex.quotientMap_re /-
theorem quotientMap_re : QuotientMap re :=
isHomeomorphicTrivialFiberBundle_re.quotientMap_proj
#align complex.quotient_map_re Complex.quotientMap_re
+-/
+#print Complex.quotientMap_im /-
theorem quotientMap_im : QuotientMap im :=
isHomeomorphicTrivialFiberBundle_im.quotientMap_proj
#align complex.quotient_map_im Complex.quotientMap_im
+-/
+#print Complex.interior_preimage_re /-
theorem interior_preimage_re (s : Set ℝ) : interior (re ⁻¹' s) = re ⁻¹' interior s :=
(isOpenMap_re.preimage_interior_eq_interior_preimage continuous_re _).symm
#align complex.interior_preimage_re Complex.interior_preimage_re
+-/
+#print Complex.interior_preimage_im /-
theorem interior_preimage_im (s : Set ℝ) : interior (im ⁻¹' s) = im ⁻¹' interior s :=
(isOpenMap_im.preimage_interior_eq_interior_preimage continuous_im _).symm
#align complex.interior_preimage_im Complex.interior_preimage_im
+-/
+#print Complex.closure_preimage_re /-
theorem closure_preimage_re (s : Set ℝ) : closure (re ⁻¹' s) = re ⁻¹' closure s :=
(isOpenMap_re.preimage_closure_eq_closure_preimage continuous_re _).symm
#align complex.closure_preimage_re Complex.closure_preimage_re
+-/
+#print Complex.closure_preimage_im /-
theorem closure_preimage_im (s : Set ℝ) : closure (im ⁻¹' s) = im ⁻¹' closure s :=
(isOpenMap_im.preimage_closure_eq_closure_preimage continuous_im _).symm
#align complex.closure_preimage_im Complex.closure_preimage_im
+-/
+#print Complex.frontier_preimage_re /-
theorem frontier_preimage_re (s : Set ℝ) : frontier (re ⁻¹' s) = re ⁻¹' frontier s :=
(isOpenMap_re.preimage_frontier_eq_frontier_preimage continuous_re _).symm
#align complex.frontier_preimage_re Complex.frontier_preimage_re
+-/
+#print Complex.frontier_preimage_im /-
theorem frontier_preimage_im (s : Set ℝ) : frontier (im ⁻¹' s) = im ⁻¹' frontier s :=
(isOpenMap_im.preimage_frontier_eq_frontier_preimage continuous_im _).symm
#align complex.frontier_preimage_im Complex.frontier_preimage_im
+-/
+#print Complex.interior_setOf_re_le /-
@[simp]
theorem interior_setOf_re_le (a : ℝ) : interior {z : ℂ | z.re ≤ a} = {z | z.re < a} := by
simpa only [interior_Iic] using interior_preimage_re (Iic a)
#align complex.interior_set_of_re_le Complex.interior_setOf_re_le
+-/
+#print Complex.interior_setOf_im_le /-
@[simp]
theorem interior_setOf_im_le (a : ℝ) : interior {z : ℂ | z.im ≤ a} = {z | z.im < a} := by
simpa only [interior_Iic] using interior_preimage_im (Iic a)
#align complex.interior_set_of_im_le Complex.interior_setOf_im_le
+-/
+#print Complex.interior_setOf_le_re /-
@[simp]
theorem interior_setOf_le_re (a : ℝ) : interior {z : ℂ | a ≤ z.re} = {z | a < z.re} := by
simpa only [interior_Ici] using interior_preimage_re (Ici a)
#align complex.interior_set_of_le_re Complex.interior_setOf_le_re
+-/
+#print Complex.interior_setOf_le_im /-
@[simp]
theorem interior_setOf_le_im (a : ℝ) : interior {z : ℂ | a ≤ z.im} = {z | a < z.im} := by
simpa only [interior_Ici] using interior_preimage_im (Ici a)
#align complex.interior_set_of_le_im Complex.interior_setOf_le_im
+-/
+#print Complex.closure_setOf_re_lt /-
@[simp]
theorem closure_setOf_re_lt (a : ℝ) : closure {z : ℂ | z.re < a} = {z | z.re ≤ a} := by
simpa only [closure_Iio] using closure_preimage_re (Iio a)
#align complex.closure_set_of_re_lt Complex.closure_setOf_re_lt
+-/
+#print Complex.closure_setOf_im_lt /-
@[simp]
theorem closure_setOf_im_lt (a : ℝ) : closure {z : ℂ | z.im < a} = {z | z.im ≤ a} := by
simpa only [closure_Iio] using closure_preimage_im (Iio a)
#align complex.closure_set_of_im_lt Complex.closure_setOf_im_lt
+-/
+#print Complex.closure_setOf_lt_re /-
@[simp]
theorem closure_setOf_lt_re (a : ℝ) : closure {z : ℂ | a < z.re} = {z | a ≤ z.re} := by
simpa only [closure_Ioi] using closure_preimage_re (Ioi a)
#align complex.closure_set_of_lt_re Complex.closure_setOf_lt_re
+-/
+#print Complex.closure_setOf_lt_im /-
@[simp]
theorem closure_setOf_lt_im (a : ℝ) : closure {z : ℂ | a < z.im} = {z | a ≤ z.im} := by
simpa only [closure_Ioi] using closure_preimage_im (Ioi a)
#align complex.closure_set_of_lt_im Complex.closure_setOf_lt_im
+-/
+#print Complex.frontier_setOf_re_le /-
@[simp]
theorem frontier_setOf_re_le (a : ℝ) : frontier {z : ℂ | z.re ≤ a} = {z | z.re = a} := by
simpa only [frontier_Iic] using frontier_preimage_re (Iic a)
#align complex.frontier_set_of_re_le Complex.frontier_setOf_re_le
+-/
+#print Complex.frontier_setOf_im_le /-
@[simp]
theorem frontier_setOf_im_le (a : ℝ) : frontier {z : ℂ | z.im ≤ a} = {z | z.im = a} := by
simpa only [frontier_Iic] using frontier_preimage_im (Iic a)
#align complex.frontier_set_of_im_le Complex.frontier_setOf_im_le
+-/
+#print Complex.frontier_setOf_le_re /-
@[simp]
theorem frontier_setOf_le_re (a : ℝ) : frontier {z : ℂ | a ≤ z.re} = {z | z.re = a} := by
simpa only [frontier_Ici] using frontier_preimage_re (Ici a)
#align complex.frontier_set_of_le_re Complex.frontier_setOf_le_re
+-/
+#print Complex.frontier_setOf_le_im /-
@[simp]
theorem frontier_setOf_le_im (a : ℝ) : frontier {z : ℂ | a ≤ z.im} = {z | z.im = a} := by
simpa only [frontier_Ici] using frontier_preimage_im (Ici a)
#align complex.frontier_set_of_le_im Complex.frontier_setOf_le_im
+-/
+#print Complex.frontier_setOf_re_lt /-
@[simp]
theorem frontier_setOf_re_lt (a : ℝ) : frontier {z : ℂ | z.re < a} = {z | z.re = a} := by
simpa only [frontier_Iio] using frontier_preimage_re (Iio a)
#align complex.frontier_set_of_re_lt Complex.frontier_setOf_re_lt
+-/
+#print Complex.frontier_setOf_im_lt /-
@[simp]
theorem frontier_setOf_im_lt (a : ℝ) : frontier {z : ℂ | z.im < a} = {z | z.im = a} := by
simpa only [frontier_Iio] using frontier_preimage_im (Iio a)
#align complex.frontier_set_of_im_lt Complex.frontier_setOf_im_lt
+-/
+#print Complex.frontier_setOf_lt_re /-
@[simp]
theorem frontier_setOf_lt_re (a : ℝ) : frontier {z : ℂ | a < z.re} = {z | z.re = a} := by
simpa only [frontier_Ioi] using frontier_preimage_re (Ioi a)
#align complex.frontier_set_of_lt_re Complex.frontier_setOf_lt_re
+-/
+#print Complex.frontier_setOf_lt_im /-
@[simp]
theorem frontier_setOf_lt_im (a : ℝ) : frontier {z : ℂ | a < z.im} = {z | z.im = a} := by
simpa only [frontier_Ioi] using frontier_preimage_im (Ioi a)
#align complex.frontier_set_of_lt_im Complex.frontier_setOf_lt_im
+-/
+#print Complex.closure_reProdIm /-
theorem closure_reProdIm (s t : Set ℝ) : closure (s ×ℂ t) = closure s ×ℂ closure t := by
simpa only [← preimage_eq_preimage equiv_real_prod_clm.symm.to_homeomorph.surjective,
equiv_real_prod_clm.symm.to_homeomorph.preimage_closure] using @closure_prod_eq _ _ _ _ s t
#align complex.closure_re_prod_im Complex.closure_reProdIm
+-/
+#print Complex.interior_reProdIm /-
theorem interior_reProdIm (s t : Set ℝ) : interior (s ×ℂ t) = interior s ×ℂ interior t := by
rw [re_prod_im, re_prod_im, interior_inter, interior_preimage_re, interior_preimage_im]
#align complex.interior_re_prod_im Complex.interior_reProdIm
+-/
+#print Complex.frontier_reProdIm /-
theorem frontier_reProdIm (s t : Set ℝ) :
frontier (s ×ℂ t) = closure s ×ℂ frontier t ∪ frontier s ×ℂ closure t := by
simpa only [← preimage_eq_preimage equiv_real_prod_clm.symm.to_homeomorph.surjective,
equiv_real_prod_clm.symm.to_homeomorph.preimage_frontier] using frontier_prod_eq s t
#align complex.frontier_re_prod_im Complex.frontier_reProdIm
+-/
+#print Complex.frontier_setOf_le_re_and_le_im /-
theorem frontier_setOf_le_re_and_le_im (a b : ℝ) :
frontier {z | a ≤ re z ∧ b ≤ im z} = {z | a ≤ re z ∧ im z = b ∨ re z = a ∧ b ≤ im z} := by
simpa only [closure_Ici, frontier_Ici] using frontier_re_prod_im (Ici a) (Ici b)
#align complex.frontier_set_of_le_re_and_le_im Complex.frontier_setOf_le_re_and_le_im
+-/
+#print Complex.frontier_setOf_le_re_and_im_le /-
theorem frontier_setOf_le_re_and_im_le (a b : ℝ) :
frontier {z | a ≤ re z ∧ im z ≤ b} = {z | a ≤ re z ∧ im z = b ∨ re z = a ∧ im z ≤ b} := by
simpa only [closure_Ici, closure_Iic, frontier_Ici, frontier_Iic] using
frontier_re_prod_im (Ici a) (Iic b)
#align complex.frontier_set_of_le_re_and_im_le Complex.frontier_setOf_le_re_and_im_le
+-/
end Complex
@@ -208,15 +274,21 @@ open Complex Metric
variable {s t : Set ℝ}
+#print IsOpen.reProdIm /-
theorem IsOpen.reProdIm (hs : IsOpen s) (ht : IsOpen t) : IsOpen (s ×ℂ t) :=
(hs.Preimage continuous_re).inter (ht.Preimage continuous_im)
#align is_open.re_prod_im IsOpen.reProdIm
+-/
+#print IsClosed.reProdIm /-
theorem IsClosed.reProdIm (hs : IsClosed s) (ht : IsClosed t) : IsClosed (s ×ℂ t) :=
(hs.Preimage continuous_re).inter (ht.Preimage continuous_im)
#align is_closed.re_prod_im IsClosed.reProdIm
+-/
+#print Metric.Bounded.reProdIm /-
theorem Metric.Bounded.reProdIm (hs : Bounded s) (ht : Bounded t) : Bounded (s ×ℂ t) :=
antilipschitz_equivRealProd.bounded_preimage (hs.Prod ht)
#align metric.bounded.re_prod_im Metric.Bounded.reProdIm
+-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -97,82 +97,82 @@ theorem frontier_preimage_im (s : Set ℝ) : frontier (im ⁻¹' s) = im ⁻¹'
#align complex.frontier_preimage_im Complex.frontier_preimage_im
@[simp]
-theorem interior_setOf_re_le (a : ℝ) : interior { z : ℂ | z.re ≤ a } = { z | z.re < a } := by
+theorem interior_setOf_re_le (a : ℝ) : interior {z : ℂ | z.re ≤ a} = {z | z.re < a} := by
simpa only [interior_Iic] using interior_preimage_re (Iic a)
#align complex.interior_set_of_re_le Complex.interior_setOf_re_le
@[simp]
-theorem interior_setOf_im_le (a : ℝ) : interior { z : ℂ | z.im ≤ a } = { z | z.im < a } := by
+theorem interior_setOf_im_le (a : ℝ) : interior {z : ℂ | z.im ≤ a} = {z | z.im < a} := by
simpa only [interior_Iic] using interior_preimage_im (Iic a)
#align complex.interior_set_of_im_le Complex.interior_setOf_im_le
@[simp]
-theorem interior_setOf_le_re (a : ℝ) : interior { z : ℂ | a ≤ z.re } = { z | a < z.re } := by
+theorem interior_setOf_le_re (a : ℝ) : interior {z : ℂ | a ≤ z.re} = {z | a < z.re} := by
simpa only [interior_Ici] using interior_preimage_re (Ici a)
#align complex.interior_set_of_le_re Complex.interior_setOf_le_re
@[simp]
-theorem interior_setOf_le_im (a : ℝ) : interior { z : ℂ | a ≤ z.im } = { z | a < z.im } := by
+theorem interior_setOf_le_im (a : ℝ) : interior {z : ℂ | a ≤ z.im} = {z | a < z.im} := by
simpa only [interior_Ici] using interior_preimage_im (Ici a)
#align complex.interior_set_of_le_im Complex.interior_setOf_le_im
@[simp]
-theorem closure_setOf_re_lt (a : ℝ) : closure { z : ℂ | z.re < a } = { z | z.re ≤ a } := by
+theorem closure_setOf_re_lt (a : ℝ) : closure {z : ℂ | z.re < a} = {z | z.re ≤ a} := by
simpa only [closure_Iio] using closure_preimage_re (Iio a)
#align complex.closure_set_of_re_lt Complex.closure_setOf_re_lt
@[simp]
-theorem closure_setOf_im_lt (a : ℝ) : closure { z : ℂ | z.im < a } = { z | z.im ≤ a } := by
+theorem closure_setOf_im_lt (a : ℝ) : closure {z : ℂ | z.im < a} = {z | z.im ≤ a} := by
simpa only [closure_Iio] using closure_preimage_im (Iio a)
#align complex.closure_set_of_im_lt Complex.closure_setOf_im_lt
@[simp]
-theorem closure_setOf_lt_re (a : ℝ) : closure { z : ℂ | a < z.re } = { z | a ≤ z.re } := by
+theorem closure_setOf_lt_re (a : ℝ) : closure {z : ℂ | a < z.re} = {z | a ≤ z.re} := by
simpa only [closure_Ioi] using closure_preimage_re (Ioi a)
#align complex.closure_set_of_lt_re Complex.closure_setOf_lt_re
@[simp]
-theorem closure_setOf_lt_im (a : ℝ) : closure { z : ℂ | a < z.im } = { z | a ≤ z.im } := by
+theorem closure_setOf_lt_im (a : ℝ) : closure {z : ℂ | a < z.im} = {z | a ≤ z.im} := by
simpa only [closure_Ioi] using closure_preimage_im (Ioi a)
#align complex.closure_set_of_lt_im Complex.closure_setOf_lt_im
@[simp]
-theorem frontier_setOf_re_le (a : ℝ) : frontier { z : ℂ | z.re ≤ a } = { z | z.re = a } := by
+theorem frontier_setOf_re_le (a : ℝ) : frontier {z : ℂ | z.re ≤ a} = {z | z.re = a} := by
simpa only [frontier_Iic] using frontier_preimage_re (Iic a)
#align complex.frontier_set_of_re_le Complex.frontier_setOf_re_le
@[simp]
-theorem frontier_setOf_im_le (a : ℝ) : frontier { z : ℂ | z.im ≤ a } = { z | z.im = a } := by
+theorem frontier_setOf_im_le (a : ℝ) : frontier {z : ℂ | z.im ≤ a} = {z | z.im = a} := by
simpa only [frontier_Iic] using frontier_preimage_im (Iic a)
#align complex.frontier_set_of_im_le Complex.frontier_setOf_im_le
@[simp]
-theorem frontier_setOf_le_re (a : ℝ) : frontier { z : ℂ | a ≤ z.re } = { z | z.re = a } := by
+theorem frontier_setOf_le_re (a : ℝ) : frontier {z : ℂ | a ≤ z.re} = {z | z.re = a} := by
simpa only [frontier_Ici] using frontier_preimage_re (Ici a)
#align complex.frontier_set_of_le_re Complex.frontier_setOf_le_re
@[simp]
-theorem frontier_setOf_le_im (a : ℝ) : frontier { z : ℂ | a ≤ z.im } = { z | z.im = a } := by
+theorem frontier_setOf_le_im (a : ℝ) : frontier {z : ℂ | a ≤ z.im} = {z | z.im = a} := by
simpa only [frontier_Ici] using frontier_preimage_im (Ici a)
#align complex.frontier_set_of_le_im Complex.frontier_setOf_le_im
@[simp]
-theorem frontier_setOf_re_lt (a : ℝ) : frontier { z : ℂ | z.re < a } = { z | z.re = a } := by
+theorem frontier_setOf_re_lt (a : ℝ) : frontier {z : ℂ | z.re < a} = {z | z.re = a} := by
simpa only [frontier_Iio] using frontier_preimage_re (Iio a)
#align complex.frontier_set_of_re_lt Complex.frontier_setOf_re_lt
@[simp]
-theorem frontier_setOf_im_lt (a : ℝ) : frontier { z : ℂ | z.im < a } = { z | z.im = a } := by
+theorem frontier_setOf_im_lt (a : ℝ) : frontier {z : ℂ | z.im < a} = {z | z.im = a} := by
simpa only [frontier_Iio] using frontier_preimage_im (Iio a)
#align complex.frontier_set_of_im_lt Complex.frontier_setOf_im_lt
@[simp]
-theorem frontier_setOf_lt_re (a : ℝ) : frontier { z : ℂ | a < z.re } = { z | z.re = a } := by
+theorem frontier_setOf_lt_re (a : ℝ) : frontier {z : ℂ | a < z.re} = {z | z.re = a} := by
simpa only [frontier_Ioi] using frontier_preimage_re (Ioi a)
#align complex.frontier_set_of_lt_re Complex.frontier_setOf_lt_re
@[simp]
-theorem frontier_setOf_lt_im (a : ℝ) : frontier { z : ℂ | a < z.im } = { z | z.im = a } := by
+theorem frontier_setOf_lt_im (a : ℝ) : frontier {z : ℂ | a < z.im} = {z | z.im = a} := by
simpa only [frontier_Ioi] using frontier_preimage_im (Ioi a)
#align complex.frontier_set_of_lt_im Complex.frontier_setOf_lt_im
@@ -192,12 +192,12 @@ theorem frontier_reProdIm (s t : Set ℝ) :
#align complex.frontier_re_prod_im Complex.frontier_reProdIm
theorem frontier_setOf_le_re_and_le_im (a b : ℝ) :
- frontier { z | a ≤ re z ∧ b ≤ im z } = { z | a ≤ re z ∧ im z = b ∨ re z = a ∧ b ≤ im z } := by
+ frontier {z | a ≤ re z ∧ b ≤ im z} = {z | a ≤ re z ∧ im z = b ∨ re z = a ∧ b ≤ im z} := by
simpa only [closure_Ici, frontier_Ici] using frontier_re_prod_im (Ici a) (Ici b)
#align complex.frontier_set_of_le_re_and_le_im Complex.frontier_setOf_le_re_and_le_im
theorem frontier_setOf_le_re_and_im_le (a b : ℝ) :
- frontier { z | a ≤ re z ∧ im z ≤ b } = { z | a ≤ re z ∧ im z = b ∨ re z = a ∧ im z ≤ b } := by
+ frontier {z | a ≤ re z ∧ im z ≤ b} = {z | a ≤ re z ∧ im z = b ∨ re z = a ∧ im z ≤ b} := by
simpa only [closure_Ici, closure_Iic, frontier_Ici, frontier_Iic] using
frontier_re_prod_im (Ici a) (Iic b)
#align complex.frontier_set_of_le_re_and_im_le Complex.frontier_setOf_le_re_and_im_le
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -46,354 +46,156 @@ noncomputable section
namespace Complex
-/- warning: complex.is_homeomorphic_trivial_fiber_bundle_re -> Complex.isHomeomorphicTrivialFiberBundle_re is a dubious translation:
-lean 3 declaration is
- IsHomeomorphicTrivialFiberBundle.{0, 0, 0} Real Real Complex (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) Complex.re
-but is expected to have type
- IsHomeomorphicTrivialFiberBundle.{0, 0, 0} Real Real Complex (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) Complex.re
-Case conversion may be inaccurate. Consider using '#align complex.is_homeomorphic_trivial_fiber_bundle_re Complex.isHomeomorphicTrivialFiberBundle_reₓ'. -/
/-- `complex.re` turns `ℂ` into a trivial topological fiber bundle over `ℝ`. -/
theorem isHomeomorphicTrivialFiberBundle_re : IsHomeomorphicTrivialFiberBundle ℝ re :=
⟨equivRealProdClm.toHomeomorph, fun z => rfl⟩
#align complex.is_homeomorphic_trivial_fiber_bundle_re Complex.isHomeomorphicTrivialFiberBundle_re
-/- warning: complex.is_homeomorphic_trivial_fiber_bundle_im -> Complex.isHomeomorphicTrivialFiberBundle_im is a dubious translation:
-lean 3 declaration is
- IsHomeomorphicTrivialFiberBundle.{0, 0, 0} Real Real Complex (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) Complex.im
-but is expected to have type
- IsHomeomorphicTrivialFiberBundle.{0, 0, 0} Real Real Complex (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) Complex.im
-Case conversion may be inaccurate. Consider using '#align complex.is_homeomorphic_trivial_fiber_bundle_im Complex.isHomeomorphicTrivialFiberBundle_imₓ'. -/
/-- `complex.im` turns `ℂ` into a trivial topological fiber bundle over `ℝ`. -/
theorem isHomeomorphicTrivialFiberBundle_im : IsHomeomorphicTrivialFiberBundle ℝ im :=
⟨equivRealProdClm.toHomeomorph.trans (Homeomorph.prodComm ℝ ℝ), fun z => rfl⟩
#align complex.is_homeomorphic_trivial_fiber_bundle_im Complex.isHomeomorphicTrivialFiberBundle_im
-/- warning: complex.is_open_map_re -> Complex.isOpenMap_re is a dubious translation:
-lean 3 declaration is
- IsOpenMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.re
-but is expected to have type
- IsOpenMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.re
-Case conversion may be inaccurate. Consider using '#align complex.is_open_map_re Complex.isOpenMap_reₓ'. -/
theorem isOpenMap_re : IsOpenMap re :=
isHomeomorphicTrivialFiberBundle_re.isOpenMap_proj
#align complex.is_open_map_re Complex.isOpenMap_re
-/- warning: complex.is_open_map_im -> Complex.isOpenMap_im is a dubious translation:
-lean 3 declaration is
- IsOpenMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.im
-but is expected to have type
- IsOpenMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.im
-Case conversion may be inaccurate. Consider using '#align complex.is_open_map_im Complex.isOpenMap_imₓ'. -/
theorem isOpenMap_im : IsOpenMap im :=
isHomeomorphicTrivialFiberBundle_im.isOpenMap_proj
#align complex.is_open_map_im Complex.isOpenMap_im
-/- warning: complex.quotient_map_re -> Complex.quotientMap_re is a dubious translation:
-lean 3 declaration is
- QuotientMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.re
-but is expected to have type
- QuotientMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.re
-Case conversion may be inaccurate. Consider using '#align complex.quotient_map_re Complex.quotientMap_reₓ'. -/
theorem quotientMap_re : QuotientMap re :=
isHomeomorphicTrivialFiberBundle_re.quotientMap_proj
#align complex.quotient_map_re Complex.quotientMap_re
-/- warning: complex.quotient_map_im -> Complex.quotientMap_im is a dubious translation:
-lean 3 declaration is
- QuotientMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.im
-but is expected to have type
- QuotientMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.im
-Case conversion may be inaccurate. Consider using '#align complex.quotient_map_im Complex.quotientMap_imₓ'. -/
theorem quotientMap_im : QuotientMap im :=
isHomeomorphicTrivialFiberBundle_im.quotientMap_proj
#align complex.quotient_map_im Complex.quotientMap_im
-/- warning: complex.interior_preimage_re -> Complex.interior_preimage_re is a dubious translation:
-lean 3 declaration is
- forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Set.preimage.{0, 0} Complex Real Complex.re s)) (Set.preimage.{0, 0} Complex Real Complex.re (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
-but is expected to have type
- forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Set.preimage.{0, 0} Complex Real Complex.re s)) (Set.preimage.{0, 0} Complex Real Complex.re (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
-Case conversion may be inaccurate. Consider using '#align complex.interior_preimage_re Complex.interior_preimage_reₓ'. -/
theorem interior_preimage_re (s : Set ℝ) : interior (re ⁻¹' s) = re ⁻¹' interior s :=
(isOpenMap_re.preimage_interior_eq_interior_preimage continuous_re _).symm
#align complex.interior_preimage_re Complex.interior_preimage_re
-/- warning: complex.interior_preimage_im -> Complex.interior_preimage_im is a dubious translation:
-lean 3 declaration is
- forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Set.preimage.{0, 0} Complex Real Complex.im s)) (Set.preimage.{0, 0} Complex Real Complex.im (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
-but is expected to have type
- forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Set.preimage.{0, 0} Complex Real Complex.im s)) (Set.preimage.{0, 0} Complex Real Complex.im (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
-Case conversion may be inaccurate. Consider using '#align complex.interior_preimage_im Complex.interior_preimage_imₓ'. -/
theorem interior_preimage_im (s : Set ℝ) : interior (im ⁻¹' s) = im ⁻¹' interior s :=
(isOpenMap_im.preimage_interior_eq_interior_preimage continuous_im _).symm
#align complex.interior_preimage_im Complex.interior_preimage_im
-/- warning: complex.closure_preimage_re -> Complex.closure_preimage_re is a dubious translation:
-lean 3 declaration is
- forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Set.preimage.{0, 0} Complex Real Complex.re s)) (Set.preimage.{0, 0} Complex Real Complex.re (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
-but is expected to have type
- forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Set.preimage.{0, 0} Complex Real Complex.re s)) (Set.preimage.{0, 0} Complex Real Complex.re (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
-Case conversion may be inaccurate. Consider using '#align complex.closure_preimage_re Complex.closure_preimage_reₓ'. -/
theorem closure_preimage_re (s : Set ℝ) : closure (re ⁻¹' s) = re ⁻¹' closure s :=
(isOpenMap_re.preimage_closure_eq_closure_preimage continuous_re _).symm
#align complex.closure_preimage_re Complex.closure_preimage_re
-/- warning: complex.closure_preimage_im -> Complex.closure_preimage_im is a dubious translation:
-lean 3 declaration is
- forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Set.preimage.{0, 0} Complex Real Complex.im s)) (Set.preimage.{0, 0} Complex Real Complex.im (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
-but is expected to have type
- forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Set.preimage.{0, 0} Complex Real Complex.im s)) (Set.preimage.{0, 0} Complex Real Complex.im (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
-Case conversion may be inaccurate. Consider using '#align complex.closure_preimage_im Complex.closure_preimage_imₓ'. -/
theorem closure_preimage_im (s : Set ℝ) : closure (im ⁻¹' s) = im ⁻¹' closure s :=
(isOpenMap_im.preimage_closure_eq_closure_preimage continuous_im _).symm
#align complex.closure_preimage_im Complex.closure_preimage_im
-/- warning: complex.frontier_preimage_re -> Complex.frontier_preimage_re is a dubious translation:
-lean 3 declaration is
- forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Set.preimage.{0, 0} Complex Real Complex.re s)) (Set.preimage.{0, 0} Complex Real Complex.re (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
-but is expected to have type
- forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Set.preimage.{0, 0} Complex Real Complex.re s)) (Set.preimage.{0, 0} Complex Real Complex.re (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
-Case conversion may be inaccurate. Consider using '#align complex.frontier_preimage_re Complex.frontier_preimage_reₓ'. -/
theorem frontier_preimage_re (s : Set ℝ) : frontier (re ⁻¹' s) = re ⁻¹' frontier s :=
(isOpenMap_re.preimage_frontier_eq_frontier_preimage continuous_re _).symm
#align complex.frontier_preimage_re Complex.frontier_preimage_re
-/- warning: complex.frontier_preimage_im -> Complex.frontier_preimage_im is a dubious translation:
-lean 3 declaration is
- forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Set.preimage.{0, 0} Complex Real Complex.im s)) (Set.preimage.{0, 0} Complex Real Complex.im (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
-but is expected to have type
- forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Set.preimage.{0, 0} Complex Real Complex.im s)) (Set.preimage.{0, 0} Complex Real Complex.im (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
-Case conversion may be inaccurate. Consider using '#align complex.frontier_preimage_im Complex.frontier_preimage_imₓ'. -/
theorem frontier_preimage_im (s : Set ℝ) : frontier (im ⁻¹' s) = im ⁻¹' frontier s :=
(isOpenMap_im.preimage_frontier_eq_frontier_preimage continuous_im _).symm
#align complex.frontier_preimage_im Complex.frontier_preimage_im
-/- warning: complex.interior_set_of_re_le -> Complex.interior_setOf_re_le is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt (Complex.re z) a))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal (Complex.re z) a))
-Case conversion may be inaccurate. Consider using '#align complex.interior_set_of_re_le Complex.interior_setOf_re_leₓ'. -/
@[simp]
theorem interior_setOf_re_le (a : ℝ) : interior { z : ℂ | z.re ≤ a } = { z | z.re < a } := by
simpa only [interior_Iic] using interior_preimage_re (Iic a)
#align complex.interior_set_of_re_le Complex.interior_setOf_re_le
-/- warning: complex.interior_set_of_im_le -> Complex.interior_setOf_im_le is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt (Complex.im z) a))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal (Complex.im z) a))
-Case conversion may be inaccurate. Consider using '#align complex.interior_set_of_im_le Complex.interior_setOf_im_leₓ'. -/
@[simp]
theorem interior_setOf_im_le (a : ℝ) : interior { z : ℂ | z.im ≤ a } = { z | z.im < a } := by
simpa only [interior_Iic] using interior_preimage_im (Iic a)
#align complex.interior_set_of_im_le Complex.interior_setOf_im_le
-/- warning: complex.interior_set_of_le_re -> Complex.interior_setOf_le_re is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt a (Complex.re z)))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal a (Complex.re z)))
-Case conversion may be inaccurate. Consider using '#align complex.interior_set_of_le_re Complex.interior_setOf_le_reₓ'. -/
@[simp]
theorem interior_setOf_le_re (a : ℝ) : interior { z : ℂ | a ≤ z.re } = { z | a < z.re } := by
simpa only [interior_Ici] using interior_preimage_re (Ici a)
#align complex.interior_set_of_le_re Complex.interior_setOf_le_re
-/- warning: complex.interior_set_of_le_im -> Complex.interior_setOf_le_im is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt a (Complex.im z)))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal a (Complex.im z)))
-Case conversion may be inaccurate. Consider using '#align complex.interior_set_of_le_im Complex.interior_setOf_le_imₓ'. -/
@[simp]
theorem interior_setOf_le_im (a : ℝ) : interior { z : ℂ | a ≤ z.im } = { z | a < z.im } := by
simpa only [interior_Ici] using interior_preimage_im (Ici a)
#align complex.interior_set_of_le_im Complex.interior_setOf_le_im
-/- warning: complex.closure_set_of_re_lt -> Complex.closure_setOf_re_lt is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe (Complex.re z) a))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal (Complex.re z) a))
-Case conversion may be inaccurate. Consider using '#align complex.closure_set_of_re_lt Complex.closure_setOf_re_ltₓ'. -/
@[simp]
theorem closure_setOf_re_lt (a : ℝ) : closure { z : ℂ | z.re < a } = { z | z.re ≤ a } := by
simpa only [closure_Iio] using closure_preimage_re (Iio a)
#align complex.closure_set_of_re_lt Complex.closure_setOf_re_lt
-/- warning: complex.closure_set_of_im_lt -> Complex.closure_setOf_im_lt is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe (Complex.im z) a))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal (Complex.im z) a))
-Case conversion may be inaccurate. Consider using '#align complex.closure_set_of_im_lt Complex.closure_setOf_im_ltₓ'. -/
@[simp]
theorem closure_setOf_im_lt (a : ℝ) : closure { z : ℂ | z.im < a } = { z | z.im ≤ a } := by
simpa only [closure_Iio] using closure_preimage_im (Iio a)
#align complex.closure_set_of_im_lt Complex.closure_setOf_im_lt
-/- warning: complex.closure_set_of_lt_re -> Complex.closure_setOf_lt_re is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe a (Complex.re z)))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal a (Complex.re z)))
-Case conversion may be inaccurate. Consider using '#align complex.closure_set_of_lt_re Complex.closure_setOf_lt_reₓ'. -/
@[simp]
theorem closure_setOf_lt_re (a : ℝ) : closure { z : ℂ | a < z.re } = { z | a ≤ z.re } := by
simpa only [closure_Ioi] using closure_preimage_re (Ioi a)
#align complex.closure_set_of_lt_re Complex.closure_setOf_lt_re
-/- warning: complex.closure_set_of_lt_im -> Complex.closure_setOf_lt_im is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe a (Complex.im z)))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal a (Complex.im z)))
-Case conversion may be inaccurate. Consider using '#align complex.closure_set_of_lt_im Complex.closure_setOf_lt_imₓ'. -/
@[simp]
theorem closure_setOf_lt_im (a : ℝ) : closure { z : ℂ | a < z.im } = { z | a ≤ z.im } := by
simpa only [closure_Ioi] using closure_preimage_im (Ioi a)
#align complex.closure_set_of_lt_im Complex.closure_setOf_lt_im
-/- warning: complex.frontier_set_of_re_le -> Complex.frontier_setOf_re_le is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
-Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_re_le Complex.frontier_setOf_re_leₓ'. -/
@[simp]
theorem frontier_setOf_re_le (a : ℝ) : frontier { z : ℂ | z.re ≤ a } = { z | z.re = a } := by
simpa only [frontier_Iic] using frontier_preimage_re (Iic a)
#align complex.frontier_set_of_re_le Complex.frontier_setOf_re_le
-/- warning: complex.frontier_set_of_im_le -> Complex.frontier_setOf_im_le is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
-Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_im_le Complex.frontier_setOf_im_leₓ'. -/
@[simp]
theorem frontier_setOf_im_le (a : ℝ) : frontier { z : ℂ | z.im ≤ a } = { z | z.im = a } := by
simpa only [frontier_Iic] using frontier_preimage_im (Iic a)
#align complex.frontier_set_of_im_le Complex.frontier_setOf_im_le
-/- warning: complex.frontier_set_of_le_re -> Complex.frontier_setOf_le_re is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
-Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_le_re Complex.frontier_setOf_le_reₓ'. -/
@[simp]
theorem frontier_setOf_le_re (a : ℝ) : frontier { z : ℂ | a ≤ z.re } = { z | z.re = a } := by
simpa only [frontier_Ici] using frontier_preimage_re (Ici a)
#align complex.frontier_set_of_le_re Complex.frontier_setOf_le_re
-/- warning: complex.frontier_set_of_le_im -> Complex.frontier_setOf_le_im is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
-Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_le_im Complex.frontier_setOf_le_imₓ'. -/
@[simp]
theorem frontier_setOf_le_im (a : ℝ) : frontier { z : ℂ | a ≤ z.im } = { z | z.im = a } := by
simpa only [frontier_Ici] using frontier_preimage_im (Ici a)
#align complex.frontier_set_of_le_im Complex.frontier_setOf_le_im
-/- warning: complex.frontier_set_of_re_lt -> Complex.frontier_setOf_re_lt is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
-Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_re_lt Complex.frontier_setOf_re_ltₓ'. -/
@[simp]
theorem frontier_setOf_re_lt (a : ℝ) : frontier { z : ℂ | z.re < a } = { z | z.re = a } := by
simpa only [frontier_Iio] using frontier_preimage_re (Iio a)
#align complex.frontier_set_of_re_lt Complex.frontier_setOf_re_lt
-/- warning: complex.frontier_set_of_im_lt -> Complex.frontier_setOf_im_lt is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
-Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_im_lt Complex.frontier_setOf_im_ltₓ'. -/
@[simp]
theorem frontier_setOf_im_lt (a : ℝ) : frontier { z : ℂ | z.im < a } = { z | z.im = a } := by
simpa only [frontier_Iio] using frontier_preimage_im (Iio a)
#align complex.frontier_set_of_im_lt Complex.frontier_setOf_im_lt
-/- warning: complex.frontier_set_of_lt_re -> Complex.frontier_setOf_lt_re is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
-Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_lt_re Complex.frontier_setOf_lt_reₓ'. -/
@[simp]
theorem frontier_setOf_lt_re (a : ℝ) : frontier { z : ℂ | a < z.re } = { z | z.re = a } := by
simpa only [frontier_Ioi] using frontier_preimage_re (Ioi a)
#align complex.frontier_set_of_lt_re Complex.frontier_setOf_lt_re
-/- warning: complex.frontier_set_of_lt_im -> Complex.frontier_setOf_lt_im is a dubious translation:
-lean 3 declaration is
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
-but is expected to have type
- forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
-Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_lt_im Complex.frontier_setOf_lt_imₓ'. -/
@[simp]
theorem frontier_setOf_lt_im (a : ℝ) : frontier { z : ℂ | a < z.im } = { z | z.im = a } := by
simpa only [frontier_Ioi] using frontier_preimage_im (Ioi a)
#align complex.frontier_set_of_lt_im Complex.frontier_setOf_lt_im
-/- warning: complex.closure_re_prod_im -> Complex.closure_reProdIm is a dubious translation:
-lean 3 declaration is
- forall (s : Set.{0} Real) (t : Set.{0} Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Complex.Set.reProdIm s t)) (Complex.Set.reProdIm (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t))
-but is expected to have type
- forall (s : Set.{0} Real) (t : Set.{0} Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Complex.Set.reProdIm s t)) (Complex.Set.reProdIm (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t))
-Case conversion may be inaccurate. Consider using '#align complex.closure_re_prod_im Complex.closure_reProdImₓ'. -/
theorem closure_reProdIm (s t : Set ℝ) : closure (s ×ℂ t) = closure s ×ℂ closure t := by
simpa only [← preimage_eq_preimage equiv_real_prod_clm.symm.to_homeomorph.surjective,
equiv_real_prod_clm.symm.to_homeomorph.preimage_closure] using @closure_prod_eq _ _ _ _ s t
#align complex.closure_re_prod_im Complex.closure_reProdIm
-/- warning: complex.interior_re_prod_im -> Complex.interior_reProdIm is a dubious translation:
-lean 3 declaration is
- forall (s : Set.{0} Real) (t : Set.{0} Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Complex.Set.reProdIm s t)) (Complex.Set.reProdIm (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t))
-but is expected to have type
- forall (s : Set.{0} Real) (t : Set.{0} Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Complex.Set.reProdIm s t)) (Complex.Set.reProdIm (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t))
-Case conversion may be inaccurate. Consider using '#align complex.interior_re_prod_im Complex.interior_reProdImₓ'. -/
theorem interior_reProdIm (s t : Set ℝ) : interior (s ×ℂ t) = interior s ×ℂ interior t := by
rw [re_prod_im, re_prod_im, interior_inter, interior_preimage_re, interior_preimage_im]
#align complex.interior_re_prod_im Complex.interior_reProdIm
-/- warning: complex.frontier_re_prod_im -> Complex.frontier_reProdIm is a dubious translation:
-lean 3 declaration is
- forall (s : Set.{0} Real) (t : Set.{0} Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Complex.Set.reProdIm s t)) (Union.union.{0} (Set.{0} Complex) (Set.hasUnion.{0} Complex) (Complex.Set.reProdIm (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t)) (Complex.Set.reProdIm (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t)))
-but is expected to have type
- forall (s : Set.{0} Real) (t : Set.{0} Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Complex.Set.reProdIm s t)) (Union.union.{0} (Set.{0} Complex) (Set.instUnionSet.{0} Complex) (Complex.Set.reProdIm (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t)) (Complex.Set.reProdIm (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t)))
-Case conversion may be inaccurate. Consider using '#align complex.frontier_re_prod_im Complex.frontier_reProdImₓ'. -/
theorem frontier_reProdIm (s t : Set ℝ) :
frontier (s ×ℂ t) = closure s ×ℂ frontier t ∪ frontier s ×ℂ closure t := by
simpa only [← preimage_eq_preimage equiv_real_prod_clm.symm.to_homeomorph.surjective,
equiv_real_prod_clm.symm.to_homeomorph.preimage_frontier] using frontier_prod_eq s t
#align complex.frontier_re_prod_im Complex.frontier_reProdIm
-/- warning: complex.frontier_set_of_le_re_and_le_im -> Complex.frontier_setOf_le_re_and_le_im is a dubious translation:
-lean 3 declaration is
- forall (a : Real) (b : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => And (LE.le.{0} Real Real.hasLe a (Complex.re z)) (LE.le.{0} Real Real.hasLe b (Complex.im z))))) (setOf.{0} Complex (fun (z : Complex) => Or (And (LE.le.{0} Real Real.hasLe a (Complex.re z)) (Eq.{1} Real (Complex.im z) b)) (And (Eq.{1} Real (Complex.re z) a) (LE.le.{0} Real Real.hasLe b (Complex.im z)))))
-but is expected to have type
- forall (a : Real) (b : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => And (LE.le.{0} Real Real.instLEReal a (Complex.re z)) (LE.le.{0} Real Real.instLEReal b (Complex.im z))))) (setOf.{0} Complex (fun (z : Complex) => Or (And (LE.le.{0} Real Real.instLEReal a (Complex.re z)) (Eq.{1} Real (Complex.im z) b)) (And (Eq.{1} Real (Complex.re z) a) (LE.le.{0} Real Real.instLEReal b (Complex.im z)))))
-Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_le_re_and_le_im Complex.frontier_setOf_le_re_and_le_imₓ'. -/
theorem frontier_setOf_le_re_and_le_im (a b : ℝ) :
frontier { z | a ≤ re z ∧ b ≤ im z } = { z | a ≤ re z ∧ im z = b ∨ re z = a ∧ b ≤ im z } := by
simpa only [closure_Ici, frontier_Ici] using frontier_re_prod_im (Ici a) (Ici b)
#align complex.frontier_set_of_le_re_and_le_im Complex.frontier_setOf_le_re_and_le_im
-/- warning: complex.frontier_set_of_le_re_and_im_le -> Complex.frontier_setOf_le_re_and_im_le is a dubious translation:
-lean 3 declaration is
- forall (a : Real) (b : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => And (LE.le.{0} Real Real.hasLe a (Complex.re z)) (LE.le.{0} Real Real.hasLe (Complex.im z) b)))) (setOf.{0} Complex (fun (z : Complex) => Or (And (LE.le.{0} Real Real.hasLe a (Complex.re z)) (Eq.{1} Real (Complex.im z) b)) (And (Eq.{1} Real (Complex.re z) a) (LE.le.{0} Real Real.hasLe (Complex.im z) b))))
-but is expected to have type
- forall (a : Real) (b : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => And (LE.le.{0} Real Real.instLEReal a (Complex.re z)) (LE.le.{0} Real Real.instLEReal (Complex.im z) b)))) (setOf.{0} Complex (fun (z : Complex) => Or (And (LE.le.{0} Real Real.instLEReal a (Complex.re z)) (Eq.{1} Real (Complex.im z) b)) (And (Eq.{1} Real (Complex.re z) a) (LE.le.{0} Real Real.instLEReal (Complex.im z) b))))
-Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_le_re_and_im_le Complex.frontier_setOf_le_re_and_im_leₓ'. -/
theorem frontier_setOf_le_re_and_im_le (a b : ℝ) :
frontier { z | a ≤ re z ∧ im z ≤ b } = { z | a ≤ re z ∧ im z = b ∨ re z = a ∧ im z ≤ b } := by
simpa only [closure_Ici, closure_Iic, frontier_Ici, frontier_Iic] using
@@ -406,32 +208,14 @@ open Complex Metric
variable {s t : Set ℝ}
-/- warning: is_open.re_prod_im -> IsOpen.reProdIm is a dubious translation:
-lean 3 declaration is
- forall {s : Set.{0} Real} {t : Set.{0} Real}, (IsOpen.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) -> (IsOpen.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t) -> (IsOpen.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Complex.Set.reProdIm s t))
-but is expected to have type
- forall {s : Set.{0} Real} {t : Set.{0} Real}, (IsOpen.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) -> (IsOpen.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t) -> (IsOpen.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Complex.Set.reProdIm s t))
-Case conversion may be inaccurate. Consider using '#align is_open.re_prod_im IsOpen.reProdImₓ'. -/
theorem IsOpen.reProdIm (hs : IsOpen s) (ht : IsOpen t) : IsOpen (s ×ℂ t) :=
(hs.Preimage continuous_re).inter (ht.Preimage continuous_im)
#align is_open.re_prod_im IsOpen.reProdIm
-/- warning: is_closed.re_prod_im -> IsClosed.reProdIm is a dubious translation:
-lean 3 declaration is
- forall {s : Set.{0} Real} {t : Set.{0} Real}, (IsClosed.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) -> (IsClosed.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t) -> (IsClosed.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Complex.Set.reProdIm s t))
-but is expected to have type
- forall {s : Set.{0} Real} {t : Set.{0} Real}, (IsClosed.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) -> (IsClosed.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t) -> (IsClosed.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Complex.Set.reProdIm s t))
-Case conversion may be inaccurate. Consider using '#align is_closed.re_prod_im IsClosed.reProdImₓ'. -/
theorem IsClosed.reProdIm (hs : IsClosed s) (ht : IsClosed t) : IsClosed (s ×ℂ t) :=
(hs.Preimage continuous_re).inter (ht.Preimage continuous_im)
#align is_closed.re_prod_im IsClosed.reProdIm
-/- warning: metric.bounded.re_prod_im -> Metric.Bounded.reProdIm is a dubious translation:
-lean 3 declaration is
- forall {s : Set.{0} Real} {t : Set.{0} Real}, (Metric.Bounded.{0} Real Real.pseudoMetricSpace s) -> (Metric.Bounded.{0} Real Real.pseudoMetricSpace t) -> (Metric.Bounded.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))) (Complex.Set.reProdIm s t))
-but is expected to have type
- forall {s : Set.{0} Real} {t : Set.{0} Real}, (Metric.Bounded.{0} Real Real.pseudoMetricSpace s) -> (Metric.Bounded.{0} Real Real.pseudoMetricSpace t) -> (Metric.Bounded.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))) (Complex.Set.reProdIm s t))
-Case conversion may be inaccurate. Consider using '#align metric.bounded.re_prod_im Metric.Bounded.reProdImₓ'. -/
theorem Metric.Bounded.reProdIm (hs : Bounded s) (ht : Bounded t) : Bounded (s ×ℂ t) :=
antilipschitz_equivRealProd.bounded_preimage (hs.Prod ht)
#align metric.bounded.re_prod_im Metric.Bounded.reProdIm
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
! This file was ported from Lean 3 source module analysis.complex.re_im_topology
-! leanprover-community/mathlib commit 468b141b14016d54b479eb7a0fff1e360b7e3cf6
+! leanprover-community/mathlib commit 2ed2c6310e6f1c5562bdf6bfbda55ebbf6891abe
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.Topology.FiberBundle.IsHomeomorphicTrivialBundle
/-!
# Closure, interior, and frontier of preimages under `re` and `im`
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
In this fact we use the fact that `ℂ` is naturally homeomorphic to `ℝ × ℝ` to deduce some
topological properties of `complex.re` and `complex.im`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -43,156 +43,354 @@ noncomputable section
namespace Complex
+/- warning: complex.is_homeomorphic_trivial_fiber_bundle_re -> Complex.isHomeomorphicTrivialFiberBundle_re is a dubious translation:
+lean 3 declaration is
+ IsHomeomorphicTrivialFiberBundle.{0, 0, 0} Real Real Complex (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) Complex.re
+but is expected to have type
+ IsHomeomorphicTrivialFiberBundle.{0, 0, 0} Real Real Complex (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) Complex.re
+Case conversion may be inaccurate. Consider using '#align complex.is_homeomorphic_trivial_fiber_bundle_re Complex.isHomeomorphicTrivialFiberBundle_reₓ'. -/
/-- `complex.re` turns `ℂ` into a trivial topological fiber bundle over `ℝ`. -/
theorem isHomeomorphicTrivialFiberBundle_re : IsHomeomorphicTrivialFiberBundle ℝ re :=
⟨equivRealProdClm.toHomeomorph, fun z => rfl⟩
#align complex.is_homeomorphic_trivial_fiber_bundle_re Complex.isHomeomorphicTrivialFiberBundle_re
+/- warning: complex.is_homeomorphic_trivial_fiber_bundle_im -> Complex.isHomeomorphicTrivialFiberBundle_im is a dubious translation:
+lean 3 declaration is
+ IsHomeomorphicTrivialFiberBundle.{0, 0, 0} Real Real Complex (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) Complex.im
+but is expected to have type
+ IsHomeomorphicTrivialFiberBundle.{0, 0, 0} Real Real Complex (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) Complex.im
+Case conversion may be inaccurate. Consider using '#align complex.is_homeomorphic_trivial_fiber_bundle_im Complex.isHomeomorphicTrivialFiberBundle_imₓ'. -/
/-- `complex.im` turns `ℂ` into a trivial topological fiber bundle over `ℝ`. -/
theorem isHomeomorphicTrivialFiberBundle_im : IsHomeomorphicTrivialFiberBundle ℝ im :=
⟨equivRealProdClm.toHomeomorph.trans (Homeomorph.prodComm ℝ ℝ), fun z => rfl⟩
#align complex.is_homeomorphic_trivial_fiber_bundle_im Complex.isHomeomorphicTrivialFiberBundle_im
+/- warning: complex.is_open_map_re -> Complex.isOpenMap_re is a dubious translation:
+lean 3 declaration is
+ IsOpenMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.re
+but is expected to have type
+ IsOpenMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.re
+Case conversion may be inaccurate. Consider using '#align complex.is_open_map_re Complex.isOpenMap_reₓ'. -/
theorem isOpenMap_re : IsOpenMap re :=
isHomeomorphicTrivialFiberBundle_re.isOpenMap_proj
#align complex.is_open_map_re Complex.isOpenMap_re
+/- warning: complex.is_open_map_im -> Complex.isOpenMap_im is a dubious translation:
+lean 3 declaration is
+ IsOpenMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.im
+but is expected to have type
+ IsOpenMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.im
+Case conversion may be inaccurate. Consider using '#align complex.is_open_map_im Complex.isOpenMap_imₓ'. -/
theorem isOpenMap_im : IsOpenMap im :=
isHomeomorphicTrivialFiberBundle_im.isOpenMap_proj
#align complex.is_open_map_im Complex.isOpenMap_im
+/- warning: complex.quotient_map_re -> Complex.quotientMap_re is a dubious translation:
+lean 3 declaration is
+ QuotientMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.re
+but is expected to have type
+ QuotientMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.re
+Case conversion may be inaccurate. Consider using '#align complex.quotient_map_re Complex.quotientMap_reₓ'. -/
theorem quotientMap_re : QuotientMap re :=
isHomeomorphicTrivialFiberBundle_re.quotientMap_proj
#align complex.quotient_map_re Complex.quotientMap_re
+/- warning: complex.quotient_map_im -> Complex.quotientMap_im is a dubious translation:
+lean 3 declaration is
+ QuotientMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.im
+but is expected to have type
+ QuotientMap.{0, 0} Complex Real (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Complex.im
+Case conversion may be inaccurate. Consider using '#align complex.quotient_map_im Complex.quotientMap_imₓ'. -/
theorem quotientMap_im : QuotientMap im :=
isHomeomorphicTrivialFiberBundle_im.quotientMap_proj
#align complex.quotient_map_im Complex.quotientMap_im
+/- warning: complex.interior_preimage_re -> Complex.interior_preimage_re is a dubious translation:
+lean 3 declaration is
+ forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Set.preimage.{0, 0} Complex Real Complex.re s)) (Set.preimage.{0, 0} Complex Real Complex.re (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
+but is expected to have type
+ forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Set.preimage.{0, 0} Complex Real Complex.re s)) (Set.preimage.{0, 0} Complex Real Complex.re (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
+Case conversion may be inaccurate. Consider using '#align complex.interior_preimage_re Complex.interior_preimage_reₓ'. -/
theorem interior_preimage_re (s : Set ℝ) : interior (re ⁻¹' s) = re ⁻¹' interior s :=
(isOpenMap_re.preimage_interior_eq_interior_preimage continuous_re _).symm
#align complex.interior_preimage_re Complex.interior_preimage_re
+/- warning: complex.interior_preimage_im -> Complex.interior_preimage_im is a dubious translation:
+lean 3 declaration is
+ forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Set.preimage.{0, 0} Complex Real Complex.im s)) (Set.preimage.{0, 0} Complex Real Complex.im (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
+but is expected to have type
+ forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Set.preimage.{0, 0} Complex Real Complex.im s)) (Set.preimage.{0, 0} Complex Real Complex.im (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
+Case conversion may be inaccurate. Consider using '#align complex.interior_preimage_im Complex.interior_preimage_imₓ'. -/
theorem interior_preimage_im (s : Set ℝ) : interior (im ⁻¹' s) = im ⁻¹' interior s :=
(isOpenMap_im.preimage_interior_eq_interior_preimage continuous_im _).symm
#align complex.interior_preimage_im Complex.interior_preimage_im
+/- warning: complex.closure_preimage_re -> Complex.closure_preimage_re is a dubious translation:
+lean 3 declaration is
+ forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Set.preimage.{0, 0} Complex Real Complex.re s)) (Set.preimage.{0, 0} Complex Real Complex.re (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
+but is expected to have type
+ forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Set.preimage.{0, 0} Complex Real Complex.re s)) (Set.preimage.{0, 0} Complex Real Complex.re (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
+Case conversion may be inaccurate. Consider using '#align complex.closure_preimage_re Complex.closure_preimage_reₓ'. -/
theorem closure_preimage_re (s : Set ℝ) : closure (re ⁻¹' s) = re ⁻¹' closure s :=
(isOpenMap_re.preimage_closure_eq_closure_preimage continuous_re _).symm
#align complex.closure_preimage_re Complex.closure_preimage_re
+/- warning: complex.closure_preimage_im -> Complex.closure_preimage_im is a dubious translation:
+lean 3 declaration is
+ forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Set.preimage.{0, 0} Complex Real Complex.im s)) (Set.preimage.{0, 0} Complex Real Complex.im (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
+but is expected to have type
+ forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Set.preimage.{0, 0} Complex Real Complex.im s)) (Set.preimage.{0, 0} Complex Real Complex.im (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
+Case conversion may be inaccurate. Consider using '#align complex.closure_preimage_im Complex.closure_preimage_imₓ'. -/
theorem closure_preimage_im (s : Set ℝ) : closure (im ⁻¹' s) = im ⁻¹' closure s :=
(isOpenMap_im.preimage_closure_eq_closure_preimage continuous_im _).symm
#align complex.closure_preimage_im Complex.closure_preimage_im
+/- warning: complex.frontier_preimage_re -> Complex.frontier_preimage_re is a dubious translation:
+lean 3 declaration is
+ forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Set.preimage.{0, 0} Complex Real Complex.re s)) (Set.preimage.{0, 0} Complex Real Complex.re (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
+but is expected to have type
+ forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Set.preimage.{0, 0} Complex Real Complex.re s)) (Set.preimage.{0, 0} Complex Real Complex.re (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
+Case conversion may be inaccurate. Consider using '#align complex.frontier_preimage_re Complex.frontier_preimage_reₓ'. -/
theorem frontier_preimage_re (s : Set ℝ) : frontier (re ⁻¹' s) = re ⁻¹' frontier s :=
(isOpenMap_re.preimage_frontier_eq_frontier_preimage continuous_re _).symm
#align complex.frontier_preimage_re Complex.frontier_preimage_re
+/- warning: complex.frontier_preimage_im -> Complex.frontier_preimage_im is a dubious translation:
+lean 3 declaration is
+ forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Set.preimage.{0, 0} Complex Real Complex.im s)) (Set.preimage.{0, 0} Complex Real Complex.im (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
+but is expected to have type
+ forall (s : Set.{0} Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Set.preimage.{0, 0} Complex Real Complex.im s)) (Set.preimage.{0, 0} Complex Real Complex.im (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s))
+Case conversion may be inaccurate. Consider using '#align complex.frontier_preimage_im Complex.frontier_preimage_imₓ'. -/
theorem frontier_preimage_im (s : Set ℝ) : frontier (im ⁻¹' s) = im ⁻¹' frontier s :=
(isOpenMap_im.preimage_frontier_eq_frontier_preimage continuous_im _).symm
#align complex.frontier_preimage_im Complex.frontier_preimage_im
+/- warning: complex.interior_set_of_re_le -> Complex.interior_setOf_re_le is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt (Complex.re z) a))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal (Complex.re z) a))
+Case conversion may be inaccurate. Consider using '#align complex.interior_set_of_re_le Complex.interior_setOf_re_leₓ'. -/
@[simp]
theorem interior_setOf_re_le (a : ℝ) : interior { z : ℂ | z.re ≤ a } = { z | z.re < a } := by
simpa only [interior_Iic] using interior_preimage_re (Iic a)
#align complex.interior_set_of_re_le Complex.interior_setOf_re_le
+/- warning: complex.interior_set_of_im_le -> Complex.interior_setOf_im_le is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt (Complex.im z) a))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal (Complex.im z) a))
+Case conversion may be inaccurate. Consider using '#align complex.interior_set_of_im_le Complex.interior_setOf_im_leₓ'. -/
@[simp]
theorem interior_setOf_im_le (a : ℝ) : interior { z : ℂ | z.im ≤ a } = { z | z.im < a } := by
simpa only [interior_Iic] using interior_preimage_im (Iic a)
#align complex.interior_set_of_im_le Complex.interior_setOf_im_le
+/- warning: complex.interior_set_of_le_re -> Complex.interior_setOf_le_re is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt a (Complex.re z)))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal a (Complex.re z)))
+Case conversion may be inaccurate. Consider using '#align complex.interior_set_of_le_re Complex.interior_setOf_le_reₓ'. -/
@[simp]
theorem interior_setOf_le_re (a : ℝ) : interior { z : ℂ | a ≤ z.re } = { z | a < z.re } := by
simpa only [interior_Ici] using interior_preimage_re (Ici a)
#align complex.interior_set_of_le_re Complex.interior_setOf_le_re
+/- warning: complex.interior_set_of_le_im -> Complex.interior_setOf_le_im is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt a (Complex.im z)))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal a (Complex.im z)))
+Case conversion may be inaccurate. Consider using '#align complex.interior_set_of_le_im Complex.interior_setOf_le_imₓ'. -/
@[simp]
theorem interior_setOf_le_im (a : ℝ) : interior { z : ℂ | a ≤ z.im } = { z | a < z.im } := by
simpa only [interior_Ici] using interior_preimage_im (Ici a)
#align complex.interior_set_of_le_im Complex.interior_setOf_le_im
+/- warning: complex.closure_set_of_re_lt -> Complex.closure_setOf_re_lt is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe (Complex.re z) a))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal (Complex.re z) a))
+Case conversion may be inaccurate. Consider using '#align complex.closure_set_of_re_lt Complex.closure_setOf_re_ltₓ'. -/
@[simp]
theorem closure_setOf_re_lt (a : ℝ) : closure { z : ℂ | z.re < a } = { z | z.re ≤ a } := by
simpa only [closure_Iio] using closure_preimage_re (Iio a)
#align complex.closure_set_of_re_lt Complex.closure_setOf_re_lt
+/- warning: complex.closure_set_of_im_lt -> Complex.closure_setOf_im_lt is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe (Complex.im z) a))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal (Complex.im z) a))
+Case conversion may be inaccurate. Consider using '#align complex.closure_set_of_im_lt Complex.closure_setOf_im_ltₓ'. -/
@[simp]
theorem closure_setOf_im_lt (a : ℝ) : closure { z : ℂ | z.im < a } = { z | z.im ≤ a } := by
simpa only [closure_Iio] using closure_preimage_im (Iio a)
#align complex.closure_set_of_im_lt Complex.closure_setOf_im_lt
+/- warning: complex.closure_set_of_lt_re -> Complex.closure_setOf_lt_re is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe a (Complex.re z)))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal a (Complex.re z)))
+Case conversion may be inaccurate. Consider using '#align complex.closure_set_of_lt_re Complex.closure_setOf_lt_reₓ'. -/
@[simp]
theorem closure_setOf_lt_re (a : ℝ) : closure { z : ℂ | a < z.re } = { z | a ≤ z.re } := by
simpa only [closure_Ioi] using closure_preimage_re (Ioi a)
#align complex.closure_set_of_lt_re Complex.closure_setOf_lt_re
+/- warning: complex.closure_set_of_lt_im -> Complex.closure_setOf_lt_im is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe a (Complex.im z)))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal a (Complex.im z)))
+Case conversion may be inaccurate. Consider using '#align complex.closure_set_of_lt_im Complex.closure_setOf_lt_imₓ'. -/
@[simp]
theorem closure_setOf_lt_im (a : ℝ) : closure { z : ℂ | a < z.im } = { z | a ≤ z.im } := by
simpa only [closure_Ioi] using closure_preimage_im (Ioi a)
#align complex.closure_set_of_lt_im Complex.closure_setOf_lt_im
+/- warning: complex.frontier_set_of_re_le -> Complex.frontier_setOf_re_le is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
+Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_re_le Complex.frontier_setOf_re_leₓ'. -/
@[simp]
theorem frontier_setOf_re_le (a : ℝ) : frontier { z : ℂ | z.re ≤ a } = { z | z.re = a } := by
simpa only [frontier_Iic] using frontier_preimage_re (Iic a)
#align complex.frontier_set_of_re_le Complex.frontier_setOf_re_le
+/- warning: complex.frontier_set_of_im_le -> Complex.frontier_setOf_im_le is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
+Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_im_le Complex.frontier_setOf_im_leₓ'. -/
@[simp]
theorem frontier_setOf_im_le (a : ℝ) : frontier { z : ℂ | z.im ≤ a } = { z | z.im = a } := by
simpa only [frontier_Iic] using frontier_preimage_im (Iic a)
#align complex.frontier_set_of_im_le Complex.frontier_setOf_im_le
+/- warning: complex.frontier_set_of_le_re -> Complex.frontier_setOf_le_re is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
+Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_le_re Complex.frontier_setOf_le_reₓ'. -/
@[simp]
theorem frontier_setOf_le_re (a : ℝ) : frontier { z : ℂ | a ≤ z.re } = { z | z.re = a } := by
simpa only [frontier_Ici] using frontier_preimage_re (Ici a)
#align complex.frontier_set_of_le_re Complex.frontier_setOf_le_re
+/- warning: complex.frontier_set_of_le_im -> Complex.frontier_setOf_le_im is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.hasLe a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LE.le.{0} Real Real.instLEReal a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
+Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_le_im Complex.frontier_setOf_le_imₓ'. -/
@[simp]
theorem frontier_setOf_le_im (a : ℝ) : frontier { z : ℂ | a ≤ z.im } = { z | z.im = a } := by
simpa only [frontier_Ici] using frontier_preimage_im (Ici a)
#align complex.frontier_set_of_le_im Complex.frontier_setOf_le_im
+/- warning: complex.frontier_set_of_re_lt -> Complex.frontier_setOf_re_lt is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal (Complex.re z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
+Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_re_lt Complex.frontier_setOf_re_ltₓ'. -/
@[simp]
theorem frontier_setOf_re_lt (a : ℝ) : frontier { z : ℂ | z.re < a } = { z | z.re = a } := by
simpa only [frontier_Iio] using frontier_preimage_re (Iio a)
#align complex.frontier_set_of_re_lt Complex.frontier_setOf_re_lt
+/- warning: complex.frontier_set_of_im_lt -> Complex.frontier_setOf_im_lt is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal (Complex.im z) a))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
+Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_im_lt Complex.frontier_setOf_im_ltₓ'. -/
@[simp]
theorem frontier_setOf_im_lt (a : ℝ) : frontier { z : ℂ | z.im < a } = { z | z.im = a } := by
simpa only [frontier_Iio] using frontier_preimage_im (Iio a)
#align complex.frontier_set_of_im_lt Complex.frontier_setOf_im_lt
+/- warning: complex.frontier_set_of_lt_re -> Complex.frontier_setOf_lt_re is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal a (Complex.re z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.re z) a))
+Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_lt_re Complex.frontier_setOf_lt_reₓ'. -/
@[simp]
theorem frontier_setOf_lt_re (a : ℝ) : frontier { z : ℂ | a < z.re } = { z | z.re = a } := by
simpa only [frontier_Ioi] using frontier_preimage_re (Ioi a)
#align complex.frontier_set_of_lt_re Complex.frontier_setOf_lt_re
+/- warning: complex.frontier_set_of_lt_im -> Complex.frontier_setOf_lt_im is a dubious translation:
+lean 3 declaration is
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.hasLt a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
+but is expected to have type
+ forall (a : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => LT.lt.{0} Real Real.instLTReal a (Complex.im z)))) (setOf.{0} Complex (fun (z : Complex) => Eq.{1} Real (Complex.im z) a))
+Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_lt_im Complex.frontier_setOf_lt_imₓ'. -/
@[simp]
theorem frontier_setOf_lt_im (a : ℝ) : frontier { z : ℂ | a < z.im } = { z | z.im = a } := by
simpa only [frontier_Ioi] using frontier_preimage_im (Ioi a)
#align complex.frontier_set_of_lt_im Complex.frontier_setOf_lt_im
+/- warning: complex.closure_re_prod_im -> Complex.closure_reProdIm is a dubious translation:
+lean 3 declaration is
+ forall (s : Set.{0} Real) (t : Set.{0} Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Complex.Set.reProdIm s t)) (Complex.Set.reProdIm (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t))
+but is expected to have type
+ forall (s : Set.{0} Real) (t : Set.{0} Real), Eq.{1} (Set.{0} Complex) (closure.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Complex.Set.reProdIm s t)) (Complex.Set.reProdIm (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t))
+Case conversion may be inaccurate. Consider using '#align complex.closure_re_prod_im Complex.closure_reProdImₓ'. -/
theorem closure_reProdIm (s t : Set ℝ) : closure (s ×ℂ t) = closure s ×ℂ closure t := by
simpa only [← preimage_eq_preimage equiv_real_prod_clm.symm.to_homeomorph.surjective,
equiv_real_prod_clm.symm.to_homeomorph.preimage_closure] using @closure_prod_eq _ _ _ _ s t
#align complex.closure_re_prod_im Complex.closure_reProdIm
+/- warning: complex.interior_re_prod_im -> Complex.interior_reProdIm is a dubious translation:
+lean 3 declaration is
+ forall (s : Set.{0} Real) (t : Set.{0} Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Complex.Set.reProdIm s t)) (Complex.Set.reProdIm (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t))
+but is expected to have type
+ forall (s : Set.{0} Real) (t : Set.{0} Real), Eq.{1} (Set.{0} Complex) (interior.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Complex.Set.reProdIm s t)) (Complex.Set.reProdIm (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (interior.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t))
+Case conversion may be inaccurate. Consider using '#align complex.interior_re_prod_im Complex.interior_reProdImₓ'. -/
theorem interior_reProdIm (s t : Set ℝ) : interior (s ×ℂ t) = interior s ×ℂ interior t := by
rw [re_prod_im, re_prod_im, interior_inter, interior_preimage_re, interior_preimage_im]
#align complex.interior_re_prod_im Complex.interior_reProdIm
+/- warning: complex.frontier_re_prod_im -> Complex.frontier_reProdIm is a dubious translation:
+lean 3 declaration is
+ forall (s : Set.{0} Real) (t : Set.{0} Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Complex.Set.reProdIm s t)) (Union.union.{0} (Set.{0} Complex) (Set.hasUnion.{0} Complex) (Complex.Set.reProdIm (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t)) (Complex.Set.reProdIm (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t)))
+but is expected to have type
+ forall (s : Set.{0} Real) (t : Set.{0} Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Complex.Set.reProdIm s t)) (Union.union.{0} (Set.{0} Complex) (Set.instUnionSet.{0} Complex) (Complex.Set.reProdIm (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t)) (Complex.Set.reProdIm (frontier.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) (closure.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t)))
+Case conversion may be inaccurate. Consider using '#align complex.frontier_re_prod_im Complex.frontier_reProdImₓ'. -/
theorem frontier_reProdIm (s t : Set ℝ) :
frontier (s ×ℂ t) = closure s ×ℂ frontier t ∪ frontier s ×ℂ closure t := by
simpa only [← preimage_eq_preimage equiv_real_prod_clm.symm.to_homeomorph.surjective,
equiv_real_prod_clm.symm.to_homeomorph.preimage_frontier] using frontier_prod_eq s t
#align complex.frontier_re_prod_im Complex.frontier_reProdIm
+/- warning: complex.frontier_set_of_le_re_and_le_im -> Complex.frontier_setOf_le_re_and_le_im is a dubious translation:
+lean 3 declaration is
+ forall (a : Real) (b : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => And (LE.le.{0} Real Real.hasLe a (Complex.re z)) (LE.le.{0} Real Real.hasLe b (Complex.im z))))) (setOf.{0} Complex (fun (z : Complex) => Or (And (LE.le.{0} Real Real.hasLe a (Complex.re z)) (Eq.{1} Real (Complex.im z) b)) (And (Eq.{1} Real (Complex.re z) a) (LE.le.{0} Real Real.hasLe b (Complex.im z)))))
+but is expected to have type
+ forall (a : Real) (b : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => And (LE.le.{0} Real Real.instLEReal a (Complex.re z)) (LE.le.{0} Real Real.instLEReal b (Complex.im z))))) (setOf.{0} Complex (fun (z : Complex) => Or (And (LE.le.{0} Real Real.instLEReal a (Complex.re z)) (Eq.{1} Real (Complex.im z) b)) (And (Eq.{1} Real (Complex.re z) a) (LE.le.{0} Real Real.instLEReal b (Complex.im z)))))
+Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_le_re_and_le_im Complex.frontier_setOf_le_re_and_le_imₓ'. -/
theorem frontier_setOf_le_re_and_le_im (a b : ℝ) :
frontier { z | a ≤ re z ∧ b ≤ im z } = { z | a ≤ re z ∧ im z = b ∨ re z = a ∧ b ≤ im z } := by
simpa only [closure_Ici, frontier_Ici] using frontier_re_prod_im (Ici a) (Ici b)
#align complex.frontier_set_of_le_re_and_le_im Complex.frontier_setOf_le_re_and_le_im
+/- warning: complex.frontier_set_of_le_re_and_im_le -> Complex.frontier_setOf_le_re_and_im_le is a dubious translation:
+lean 3 declaration is
+ forall (a : Real) (b : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (setOf.{0} Complex (fun (z : Complex) => And (LE.le.{0} Real Real.hasLe a (Complex.re z)) (LE.le.{0} Real Real.hasLe (Complex.im z) b)))) (setOf.{0} Complex (fun (z : Complex) => Or (And (LE.le.{0} Real Real.hasLe a (Complex.re z)) (Eq.{1} Real (Complex.im z) b)) (And (Eq.{1} Real (Complex.re z) a) (LE.le.{0} Real Real.hasLe (Complex.im z) b))))
+but is expected to have type
+ forall (a : Real) (b : Real), Eq.{1} (Set.{0} Complex) (frontier.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (setOf.{0} Complex (fun (z : Complex) => And (LE.le.{0} Real Real.instLEReal a (Complex.re z)) (LE.le.{0} Real Real.instLEReal (Complex.im z) b)))) (setOf.{0} Complex (fun (z : Complex) => Or (And (LE.le.{0} Real Real.instLEReal a (Complex.re z)) (Eq.{1} Real (Complex.im z) b)) (And (Eq.{1} Real (Complex.re z) a) (LE.le.{0} Real Real.instLEReal (Complex.im z) b))))
+Case conversion may be inaccurate. Consider using '#align complex.frontier_set_of_le_re_and_im_le Complex.frontier_setOf_le_re_and_im_leₓ'. -/
theorem frontier_setOf_le_re_and_im_le (a b : ℝ) :
frontier { z | a ≤ re z ∧ im z ≤ b } = { z | a ≤ re z ∧ im z = b ∨ re z = a ∧ im z ≤ b } := by
simpa only [closure_Ici, closure_Iic, frontier_Ici, frontier_Iic] using
@@ -205,14 +403,32 @@ open Complex Metric
variable {s t : Set ℝ}
+/- warning: is_open.re_prod_im -> IsOpen.reProdIm is a dubious translation:
+lean 3 declaration is
+ forall {s : Set.{0} Real} {t : Set.{0} Real}, (IsOpen.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) -> (IsOpen.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t) -> (IsOpen.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Complex.Set.reProdIm s t))
+but is expected to have type
+ forall {s : Set.{0} Real} {t : Set.{0} Real}, (IsOpen.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) -> (IsOpen.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t) -> (IsOpen.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Complex.Set.reProdIm s t))
+Case conversion may be inaccurate. Consider using '#align is_open.re_prod_im IsOpen.reProdImₓ'. -/
theorem IsOpen.reProdIm (hs : IsOpen s) (ht : IsOpen t) : IsOpen (s ×ℂ t) :=
(hs.Preimage continuous_re).inter (ht.Preimage continuous_im)
#align is_open.re_prod_im IsOpen.reProdIm
+/- warning: is_closed.re_prod_im -> IsClosed.reProdIm is a dubious translation:
+lean 3 declaration is
+ forall {s : Set.{0} Real} {t : Set.{0} Real}, (IsClosed.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) -> (IsClosed.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t) -> (IsClosed.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))))) (Complex.Set.reProdIm s t))
+but is expected to have type
+ forall {s : Set.{0} Real} {t : Set.{0} Real}, (IsClosed.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) s) -> (IsClosed.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) t) -> (IsClosed.{0} Complex (UniformSpace.toTopologicalSpace.{0} Complex (PseudoMetricSpace.toUniformSpace.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))))) (Complex.Set.reProdIm s t))
+Case conversion may be inaccurate. Consider using '#align is_closed.re_prod_im IsClosed.reProdImₓ'. -/
theorem IsClosed.reProdIm (hs : IsClosed s) (ht : IsClosed t) : IsClosed (s ×ℂ t) :=
(hs.Preimage continuous_re).inter (ht.Preimage continuous_im)
#align is_closed.re_prod_im IsClosed.reProdIm
+/- warning: metric.bounded.re_prod_im -> Metric.Bounded.reProdIm is a dubious translation:
+lean 3 declaration is
+ forall {s : Set.{0} Real} {t : Set.{0} Real}, (Metric.Bounded.{0} Real Real.pseudoMetricSpace s) -> (Metric.Bounded.{0} Real Real.pseudoMetricSpace t) -> (Metric.Bounded.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSemiNormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.normedField)))) (Complex.Set.reProdIm s t))
+but is expected to have type
+ forall {s : Set.{0} Real} {t : Set.{0} Real}, (Metric.Bounded.{0} Real Real.pseudoMetricSpace s) -> (Metric.Bounded.{0} Real Real.pseudoMetricSpace t) -> (Metric.Bounded.{0} Complex (SeminormedRing.toPseudoMetricSpace.{0} Complex (SeminormedCommRing.toSeminormedRing.{0} Complex (NormedCommRing.toSeminormedCommRing.{0} Complex (NormedField.toNormedCommRing.{0} Complex Complex.instNormedFieldComplex)))) (Complex.Set.reProdIm s t))
+Case conversion may be inaccurate. Consider using '#align metric.bounded.re_prod_im Metric.Bounded.reProdImₓ'. -/
theorem Metric.Bounded.reProdIm (hs : Bounded s) (ht : Bounded t) : Bounded (s ×ℂ t) :=
antilipschitz_equivRealProd.bounded_preimage (hs.Prod ht)
#align metric.bounded.re_prod_im Metric.Bounded.reProdIm
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Clm
-> CLM
, Cle
-> CLE
(#10018)
Rename
Complex.equivRealProdClm
→ Complex.equivRealProdCLM
;
CLE
?Complex.reClm
→ Complex.reCLM
;Complex.imClm
→ Complex.imCLM
;Complex.conjLie
→ Complex.conjLIE
;Complex.conjCle
→ Complex.conjCLE
;Complex.ofRealLi
→ Complex.ofRealLI
;Complex.ofRealClm
→ Complex.ofRealCLM
;fderivInnerClm
→ fderivInnerCLM
;LinearPMap.adjointDomainMkClm
→ LinearPMap.adjointDomainMkCLM
;LinearPMap.adjointDomainMkClmExtend
→ LinearPMap.adjointDomainMkCLMExtend
;IsROrC.reClm
→ IsROrC.reCLM
;IsROrC.imClm
→ IsROrC.imCLM
;IsROrC.conjLie
→ IsROrC.conjLIE
;IsROrC.conjCle
→ IsROrC.conjCLE
;IsROrC.ofRealLi
→ IsROrC.ofRealLI
;IsROrC.ofRealClm
→ IsROrC.ofRealCLM
;MeasureTheory.condexpL1Clm
→ MeasureTheory.condexpL1CLM
;algebraMapClm
→ algebraMapCLM
;WeakDual.CharacterSpace.toClm
→ WeakDual.CharacterSpace.toCLM
;BoundedContinuousFunction.evalClm
→ BoundedContinuousFunction.evalCLM
;ContinuousMap.evalClm
→ ContinuousMap.evalCLM
;TrivSqZeroExt.fstClm
→ TrivSqZeroExt.fstClm
;TrivSqZeroExt.sndClm
→ TrivSqZeroExt.sndCLM
;TrivSqZeroExt.inlClm
→ TrivSqZeroExt.inlCLM
;TrivSqZeroExt.inrClm
→ TrivSqZeroExt.inrCLM
and related theorems.
@@ -42,12 +42,12 @@ namespace Complex
/-- `Complex.re` turns `ℂ` into a trivial topological fiber bundle over `ℝ`. -/
theorem isHomeomorphicTrivialFiberBundle_re : IsHomeomorphicTrivialFiberBundle ℝ re :=
- ⟨equivRealProdClm.toHomeomorph, fun _ => rfl⟩
+ ⟨equivRealProdCLM.toHomeomorph, fun _ => rfl⟩
#align complex.is_homeomorphic_trivial_fiber_bundle_re Complex.isHomeomorphicTrivialFiberBundle_re
/-- `Complex.im` turns `ℂ` into a trivial topological fiber bundle over `ℝ`. -/
theorem isHomeomorphicTrivialFiberBundle_im : IsHomeomorphicTrivialFiberBundle ℝ im :=
- ⟨equivRealProdClm.toHomeomorph.trans (Homeomorph.prodComm ℝ ℝ), fun _ => rfl⟩
+ ⟨equivRealProdCLM.toHomeomorph.trans (Homeomorph.prodComm ℝ ℝ), fun _ => rfl⟩
#align complex.is_homeomorphic_trivial_fiber_bundle_im Complex.isHomeomorphicTrivialFiberBundle_im
theorem isOpenMap_re : IsOpenMap re :=
@@ -171,8 +171,8 @@ theorem frontier_setOf_lt_im (a : ℝ) : frontier { z : ℂ | a < z.im } = { z |
#align complex.frontier_set_of_lt_im Complex.frontier_setOf_lt_im
theorem closure_reProdIm (s t : Set ℝ) : closure (s ×ℂ t) = closure s ×ℂ closure t := by
- simpa only [← preimage_eq_preimage equivRealProdClm.symm.toHomeomorph.surjective,
- equivRealProdClm.symm.toHomeomorph.preimage_closure] using @closure_prod_eq _ _ _ _ s t
+ simpa only [← preimage_eq_preimage equivRealProdCLM.symm.toHomeomorph.surjective,
+ equivRealProdCLM.symm.toHomeomorph.preimage_closure] using @closure_prod_eq _ _ _ _ s t
#align complex.closure_re_prod_im Complex.closure_reProdIm
theorem interior_reProdIm (s t : Set ℝ) : interior (s ×ℂ t) = interior s ×ℂ interior t := by
@@ -181,8 +181,8 @@ theorem interior_reProdIm (s t : Set ℝ) : interior (s ×ℂ t) = interior s ×
theorem frontier_reProdIm (s t : Set ℝ) :
frontier (s ×ℂ t) = closure s ×ℂ frontier t ∪ frontier s ×ℂ closure t := by
- simpa only [← preimage_eq_preimage equivRealProdClm.symm.toHomeomorph.surjective,
- equivRealProdClm.symm.toHomeomorph.preimage_frontier] using frontier_prod_eq s t
+ simpa only [← preimage_eq_preimage equivRealProdCLM.symm.toHomeomorph.surjective,
+ equivRealProdCLM.symm.toHomeomorph.preimage_frontier] using frontier_prod_eq s t
#align complex.frontier_re_prod_im Complex.frontier_reProdIm
theorem frontier_setOf_le_re_and_le_im (a b : ℝ) :
Metric.Bounded
(#7240)
Use Bornology.IsBounded
instead.
@@ -210,6 +210,6 @@ theorem IsClosed.reProdIm (hs : IsClosed s) (ht : IsClosed t) : IsClosed (s ×
(hs.preimage continuous_re).inter (ht.preimage continuous_im)
#align is_closed.re_prod_im IsClosed.reProdIm
-theorem Metric.Bounded.reProdIm (hs : Bounded s) (ht : Bounded t) : Bounded (s ×ℂ t) :=
- antilipschitz_equivRealProd.bounded_preimage (hs.prod ht)
-#align metric.bounded.re_prod_im Metric.Bounded.reProdIm
+theorem Bornology.IsBounded.reProdIm (hs : IsBounded s) (ht : IsBounded t) : IsBounded (s ×ℂ t) :=
+ antilipschitz_equivRealProd.isBounded_preimage (hs.prod ht)
+#align metric.bounded.re_prod_im Bornology.IsBounded.reProdIm
@@ -2,15 +2,12 @@
Copyright (c) 2022 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module analysis.complex.re_im_topology
-! leanprover-community/mathlib commit 468b141b14016d54b479eb7a0fff1e360b7e3cf6
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Analysis.Complex.Basic
import Mathlib.Topology.FiberBundle.IsHomeomorphicTrivialBundle
+#align_import analysis.complex.re_im_topology from "leanprover-community/mathlib"@"468b141b14016d54b479eb7a0fff1e360b7e3cf6"
+
/-!
# Closure, interior, and frontier of preimages under `re` and `im`
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