topology.algebra.fieldMathlib.Topology.Algebra.Field

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -5,7 +5,7 @@ Authors: Patrick Massot, Scott Morrison
 -/
 import Topology.Algebra.Ring.Basic
 import Topology.Algebra.GroupWithZero
-import Topology.LocalExtr
+import Topology.Order.LocalExtr
 import FieldTheory.Subfield
 
 #align_import topology.algebra.field from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
@@ -112,8 +112,8 @@ def affineHomeomorph (a b : 𝕜) (h : a ≠ 0) : 𝕜 ≃ₜ 𝕜
     where
   toFun x := a * x + b
   invFun y := (y - b) / a
-  left_inv x := by simp only [add_sub_cancel]; exact mul_div_cancel_left x h
-  right_inv y := by simp [mul_div_cancel' _ h]
+  left_inv x := by simp only [add_sub_cancel_right]; exact mul_div_cancel_left₀ x h
+  right_inv y := by simp [mul_div_cancel₀ _ h]
 #align affine_homeomorph affineHomeomorph
 -/
 
Diff
@@ -151,12 +151,12 @@ theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors
     (hS : IsPreconnected S) (hf : ContinuousOn f S) (hsq : EqOn (f ^ 2) 1 S) :
     EqOn f 1 S ∨ EqOn f (-1) S :=
   by
-  simp_rw [eq_on, Pi.one_apply, Pi.pow_apply, sq_eq_one_iff] at hsq 
+  simp_rw [eq_on, Pi.one_apply, Pi.pow_apply, sq_eq_one_iff] at hsq
   -- First deal with crazy case where `S` is empty.
   by_cases hSe : ∀ x : α, x ∉ S
   · left; intro x hx
     exfalso; exact hSe x hx
-  push_neg at hSe 
+  push_neg at hSe
   choose y hy using hSe
   suffices ∀ x : α, x ∈ S → f x = f y by
     rcases hsq hy with ⟨⟩
@@ -185,7 +185,7 @@ theorem IsPreconnected.eq_or_eq_neg_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 
     exact h hx
   · refine' Or.inr fun x hx => _
     specialize h hx
-    rwa [Pi.div_apply, Pi.neg_apply, Pi.one_apply, div_eq_iff (hg_ne hx), neg_one_mul] at h 
+    rwa [Pi.div_apply, Pi.neg_apply, Pi.one_apply, div_eq_iff (hg_ne hx), neg_one_mul] at h
   · rw [Pi.one_apply, div_pow, Pi.div_apply, hsq hx, div_self]
     exact pow_ne_zero _ (hg_ne hx)
 #align is_preconnected.eq_or_eq_neg_of_sq_eq IsPreconnected.eq_or_eq_neg_of_sq_eq
@@ -203,7 +203,7 @@ theorem IsPreconnected.eq_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 𝕜] [Cont
   rcases hS.eq_or_eq_neg_of_sq_eq hf hg @hsq @hg_ne with (h | h)
   · exact h hx
   · rw [h hy, eq_comm, ← sub_eq_zero, sub_eq_add_neg, Pi.neg_apply, neg_neg, ← mul_two,
-      mul_eq_zero] at hy' 
+      mul_eq_zero] at hy'
     cases hy'
     -- need to handle case of `char 𝕜 = 2` separately
     · exfalso; exact hg_ne hy hy'
Diff
@@ -3,10 +3,10 @@ Copyright (c) 2021 Patrick Massot. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Scott Morrison
 -/
-import Mathbin.Topology.Algebra.Ring.Basic
-import Mathbin.Topology.Algebra.GroupWithZero
-import Mathbin.Topology.LocalExtr
-import Mathbin.FieldTheory.Subfield
+import Topology.Algebra.Ring.Basic
+import Topology.Algebra.GroupWithZero
+import Topology.LocalExtr
+import FieldTheory.Subfield
 
 #align_import topology.algebra.field from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
 
Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2021 Patrick Massot. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Scott Morrison
-
-! This file was ported from Lean 3 source module topology.algebra.field
-! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Topology.Algebra.Ring.Basic
 import Mathbin.Topology.Algebra.GroupWithZero
 import Mathbin.Topology.LocalExtr
 import Mathbin.FieldTheory.Subfield
 
+#align_import topology.algebra.field from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
+
 /-!
 # Topological fields
 
Diff
@@ -27,19 +27,23 @@ non-zero element.
 
 variable {K : Type _} [DivisionRing K] [TopologicalSpace K]
 
+#print Filter.tendsto_cocompact_mul_left₀ /-
 /-- Left-multiplication by a nonzero element of a topological division ring is proper, i.e.,
 inverse images of compact sets are compact. -/
 theorem Filter.tendsto_cocompact_mul_left₀ [ContinuousMul K] {a : K} (ha : a ≠ 0) :
     Filter.Tendsto (fun x : K => a * x) (Filter.cocompact K) (Filter.cocompact K) :=
   Filter.tendsto_cocompact_mul_left (inv_mul_cancel ha)
 #align filter.tendsto_cocompact_mul_left₀ Filter.tendsto_cocompact_mul_left₀
+-/
 
+#print Filter.tendsto_cocompact_mul_right₀ /-
 /-- Right-multiplication by a nonzero element of a topological division ring is proper, i.e.,
 inverse images of compact sets are compact. -/
 theorem Filter.tendsto_cocompact_mul_right₀ [ContinuousMul K] {a : K} (ha : a ≠ 0) :
     Filter.Tendsto (fun x : K => x * a) (Filter.cocompact K) (Filter.cocompact K) :=
   Filter.tendsto_cocompact_mul_right (mul_inv_cancel ha)
 #align filter.tendsto_cocompact_mul_right₀ Filter.tendsto_cocompact_mul_right₀
+-/
 
 variable (K)
 
@@ -69,19 +73,25 @@ def Subfield.topologicalClosure (K : Subfield α) : Subfield α :=
 #align subfield.topological_closure Subfield.topologicalClosure
 -/
 
+#print Subfield.le_topologicalClosure /-
 theorem Subfield.le_topologicalClosure (s : Subfield α) : s ≤ s.topologicalClosure :=
   subset_closure
 #align subfield.le_topological_closure Subfield.le_topologicalClosure
+-/
 
+#print Subfield.isClosed_topologicalClosure /-
 theorem Subfield.isClosed_topologicalClosure (s : Subfield α) :
     IsClosed (s.topologicalClosure : Set α) :=
   isClosed_closure
 #align subfield.is_closed_topological_closure Subfield.isClosed_topologicalClosure
+-/
 
+#print Subfield.topologicalClosure_minimal /-
 theorem Subfield.topologicalClosure_minimal (s : Subfield α) {t : Subfield α} (h : s ≤ t)
     (ht : IsClosed (t : Set α)) : s.topologicalClosure ≤ t :=
   closure_minimal h ht
 #align subfield.topological_closure_minimal Subfield.topologicalClosure_minimal
+-/
 
 end Subfield
 
@@ -96,6 +106,7 @@ happens to be a field is enough.
 
 variable {𝕜 : Type _} [Field 𝕜] [TopologicalSpace 𝕜] [TopologicalRing 𝕜]
 
+#print affineHomeomorph /-
 /--
 The map `λ x, a * x + b`, as a homeomorphism from `𝕜` (a topological field) to itself, when `a ≠ 0`.
 -/
@@ -107,6 +118,7 @@ def affineHomeomorph (a b : 𝕜) (h : a ≠ 0) : 𝕜 ≃ₜ 𝕜
   left_inv x := by simp only [add_sub_cancel]; exact mul_div_cancel_left x h
   right_inv y := by simp [mul_div_cancel' _ h]
 #align affine_homeomorph affineHomeomorph
+-/
 
 end affineHomeomorph
 
@@ -116,10 +128,12 @@ variable {α β : Type _} [TopologicalSpace α] [LinearOrderedSemifield β] {a :
 
 open scoped Topology
 
+#print IsLocalMin.inv /-
 theorem IsLocalMin.inv {f : α → β} {a : α} (h1 : IsLocalMin f a) (h2 : ∀ᶠ z in 𝓝 a, 0 < f z) :
     IsLocalMax f⁻¹ a := by
   filter_upwards [h1, h2] with z h3 h4 using (inv_le_inv h4 h2.self_of_nhds).mpr h3
 #align is_local_min.inv IsLocalMin.inv
+-/
 
 end LocalExtr
 
@@ -133,6 +147,7 @@ open Set
 variable {α 𝕜 : Type _} {f g : α → 𝕜} {S : Set α} [TopologicalSpace α] [TopologicalSpace 𝕜]
   [T1Space 𝕜]
 
+#print IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq /-
 /-- If `f` is a function `α → 𝕜` which is continuous on a preconnected set `S`, and
 `f ^ 2 = 1` on `S`, then either `f = 1` on `S`, or `f = -1` on `S`. -/
 theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors 𝕜]
@@ -155,7 +170,9 @@ theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors
   · exact mem_insert_iff.mpr (hsq hz).symm
   exact discrete_of_t1_of_finite
 #align is_preconnected.eq_one_or_eq_neg_one_of_sq_eq IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq
+-/
 
+#print IsPreconnected.eq_or_eq_neg_of_sq_eq /-
 /-- If `f, g` are functions `α → 𝕜`, both continuous on a preconnected set `S`, with
 `f ^ 2 = g ^ 2` on `S`, and `g z ≠ 0` all `z ∈ S`, then either `f = g` or `f = -g` on
 `S`. -/
@@ -175,7 +192,9 @@ theorem IsPreconnected.eq_or_eq_neg_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 
   · rw [Pi.one_apply, div_pow, Pi.div_apply, hsq hx, div_self]
     exact pow_ne_zero _ (hg_ne hx)
 #align is_preconnected.eq_or_eq_neg_of_sq_eq IsPreconnected.eq_or_eq_neg_of_sq_eq
+-/
 
+#print IsPreconnected.eq_of_sq_eq /-
 /-- If `f, g` are functions `α → 𝕜`, both continuous on a preconnected set `S`, with
 `f ^ 2 = g ^ 2` on `S`, and `g z ≠ 0` all `z ∈ S`, then as soon as `f = g` holds at
 one point of `S` it holds for all points. -/
@@ -195,6 +214,7 @@ theorem IsPreconnected.eq_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 𝕜] [Cont
       rw [h hx, Pi.neg_apply, eq_comm, ← sub_eq_zero, sub_eq_add_neg, neg_neg, ← mul_two, hy',
         MulZeroClass.mul_zero]
 #align is_preconnected.eq_of_sq_eq IsPreconnected.eq_of_sq_eq
+-/
 
 end Preconnected
 
Diff
@@ -118,7 +118,7 @@ open scoped Topology
 
 theorem IsLocalMin.inv {f : α → β} {a : α} (h1 : IsLocalMin f a) (h2 : ∀ᶠ z in 𝓝 a, 0 < f z) :
     IsLocalMax f⁻¹ a := by
-  filter_upwards [h1, h2]with z h3 h4 using(inv_le_inv h4 h2.self_of_nhds).mpr h3
+  filter_upwards [h1, h2] with z h3 h4 using (inv_le_inv h4 h2.self_of_nhds).mpr h3
 #align is_local_min.inv IsLocalMin.inv
 
 end LocalExtr
@@ -144,7 +144,7 @@ theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors
   by_cases hSe : ∀ x : α, x ∉ S
   · left; intro x hx
     exfalso; exact hSe x hx
-  push_neg  at hSe 
+  push_neg at hSe 
   choose y hy using hSe
   suffices ∀ x : α, x ∈ S → f x = f y by
     rcases hsq hy with ⟨⟩
Diff
@@ -139,12 +139,12 @@ theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors
     (hS : IsPreconnected S) (hf : ContinuousOn f S) (hsq : EqOn (f ^ 2) 1 S) :
     EqOn f 1 S ∨ EqOn f (-1) S :=
   by
-  simp_rw [eq_on, Pi.one_apply, Pi.pow_apply, sq_eq_one_iff] at hsq
+  simp_rw [eq_on, Pi.one_apply, Pi.pow_apply, sq_eq_one_iff] at hsq 
   -- First deal with crazy case where `S` is empty.
   by_cases hSe : ∀ x : α, x ∉ S
   · left; intro x hx
     exfalso; exact hSe x hx
-  push_neg  at hSe
+  push_neg  at hSe 
   choose y hy using hSe
   suffices ∀ x : α, x ∈ S → f x = f y by
     rcases hsq hy with ⟨⟩
@@ -171,7 +171,7 @@ theorem IsPreconnected.eq_or_eq_neg_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 
     exact h hx
   · refine' Or.inr fun x hx => _
     specialize h hx
-    rwa [Pi.div_apply, Pi.neg_apply, Pi.one_apply, div_eq_iff (hg_ne hx), neg_one_mul] at h
+    rwa [Pi.div_apply, Pi.neg_apply, Pi.one_apply, div_eq_iff (hg_ne hx), neg_one_mul] at h 
   · rw [Pi.one_apply, div_pow, Pi.div_apply, hsq hx, div_self]
     exact pow_ne_zero _ (hg_ne hx)
 #align is_preconnected.eq_or_eq_neg_of_sq_eq IsPreconnected.eq_or_eq_neg_of_sq_eq
@@ -187,7 +187,7 @@ theorem IsPreconnected.eq_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 𝕜] [Cont
   rcases hS.eq_or_eq_neg_of_sq_eq hf hg @hsq @hg_ne with (h | h)
   · exact h hx
   · rw [h hy, eq_comm, ← sub_eq_zero, sub_eq_add_neg, Pi.neg_apply, neg_neg, ← mul_two,
-      mul_eq_zero] at hy'
+      mul_eq_zero] at hy' 
     cases hy'
     -- need to handle case of `char 𝕜 = 2` separately
     · exfalso; exact hg_ne hy hy'
Diff
@@ -114,7 +114,7 @@ section LocalExtr
 
 variable {α β : Type _} [TopologicalSpace α] [LinearOrderedSemifield β] {a : α}
 
-open Topology
+open scoped Topology
 
 theorem IsLocalMin.inv {f : α → β} {a : α} (h1 : IsLocalMin f a) (h2 : ∀ᶠ z in 𝓝 a, 0 < f z) :
     IsLocalMax f⁻¹ a := by
Diff
@@ -27,12 +27,6 @@ non-zero element.
 
 variable {K : Type _} [DivisionRing K] [TopologicalSpace K]
 
-/- warning: filter.tendsto_cocompact_mul_left₀ -> Filter.tendsto_cocompact_mul_left₀ is a dubious translation:
-lean 3 declaration is
-  forall {K : Type.{u1}} [_inst_1 : DivisionRing.{u1} K] [_inst_2 : TopologicalSpace.{u1} K] [_inst_3 : ContinuousMul.{u1} K _inst_2 (Distrib.toHasMul.{u1} K (Ring.toDistrib.{u1} K (DivisionRing.toRing.{u1} K _inst_1)))] {a : K}, (Ne.{succ u1} K a (OfNat.ofNat.{u1} K 0 (OfNat.mk.{u1} K 0 (Zero.zero.{u1} K (MulZeroClass.toHasZero.{u1} K (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} K (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K _inst_1)))))))))) -> (Filter.Tendsto.{u1, u1} K K (fun (x : K) => HMul.hMul.{u1, u1, u1} K K K (instHMul.{u1} K (Distrib.toHasMul.{u1} K (Ring.toDistrib.{u1} K (DivisionRing.toRing.{u1} K _inst_1)))) a x) (Filter.cocompact.{u1} K _inst_2) (Filter.cocompact.{u1} K _inst_2))
-but is expected to have type
-  forall {K : Type.{u1}} [_inst_1 : DivisionRing.{u1} K] [_inst_2 : TopologicalSpace.{u1} K] [_inst_3 : ContinuousMul.{u1} K _inst_2 (NonUnitalNonAssocRing.toMul.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K _inst_1))))] {a : K}, (Ne.{succ u1} K a (OfNat.ofNat.{u1} K 0 (Zero.toOfNat0.{u1} K (MonoidWithZero.toZero.{u1} K (Semiring.toMonoidWithZero.{u1} K (DivisionSemiring.toSemiring.{u1} K (DivisionRing.toDivisionSemiring.{u1} K _inst_1))))))) -> (Filter.Tendsto.{u1, u1} K K (fun (x : K) => HMul.hMul.{u1, u1, u1} K K K (instHMul.{u1} K (NonUnitalNonAssocRing.toMul.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K _inst_1))))) a x) (Filter.cocompact.{u1} K _inst_2) (Filter.cocompact.{u1} K _inst_2))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto_cocompact_mul_left₀ Filter.tendsto_cocompact_mul_left₀ₓ'. -/
 /-- Left-multiplication by a nonzero element of a topological division ring is proper, i.e.,
 inverse images of compact sets are compact. -/
 theorem Filter.tendsto_cocompact_mul_left₀ [ContinuousMul K] {a : K} (ha : a ≠ 0) :
@@ -40,12 +34,6 @@ theorem Filter.tendsto_cocompact_mul_left₀ [ContinuousMul K] {a : K} (ha : a 
   Filter.tendsto_cocompact_mul_left (inv_mul_cancel ha)
 #align filter.tendsto_cocompact_mul_left₀ Filter.tendsto_cocompact_mul_left₀
 
-/- warning: filter.tendsto_cocompact_mul_right₀ -> Filter.tendsto_cocompact_mul_right₀ is a dubious translation:
-lean 3 declaration is
-  forall {K : Type.{u1}} [_inst_1 : DivisionRing.{u1} K] [_inst_2 : TopologicalSpace.{u1} K] [_inst_3 : ContinuousMul.{u1} K _inst_2 (Distrib.toHasMul.{u1} K (Ring.toDistrib.{u1} K (DivisionRing.toRing.{u1} K _inst_1)))] {a : K}, (Ne.{succ u1} K a (OfNat.ofNat.{u1} K 0 (OfNat.mk.{u1} K 0 (Zero.zero.{u1} K (MulZeroClass.toHasZero.{u1} K (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} K (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K _inst_1)))))))))) -> (Filter.Tendsto.{u1, u1} K K (fun (x : K) => HMul.hMul.{u1, u1, u1} K K K (instHMul.{u1} K (Distrib.toHasMul.{u1} K (Ring.toDistrib.{u1} K (DivisionRing.toRing.{u1} K _inst_1)))) x a) (Filter.cocompact.{u1} K _inst_2) (Filter.cocompact.{u1} K _inst_2))
-but is expected to have type
-  forall {K : Type.{u1}} [_inst_1 : DivisionRing.{u1} K] [_inst_2 : TopologicalSpace.{u1} K] [_inst_3 : ContinuousMul.{u1} K _inst_2 (NonUnitalNonAssocRing.toMul.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K _inst_1))))] {a : K}, (Ne.{succ u1} K a (OfNat.ofNat.{u1} K 0 (Zero.toOfNat0.{u1} K (MonoidWithZero.toZero.{u1} K (Semiring.toMonoidWithZero.{u1} K (DivisionSemiring.toSemiring.{u1} K (DivisionRing.toDivisionSemiring.{u1} K _inst_1))))))) -> (Filter.Tendsto.{u1, u1} K K (fun (x : K) => HMul.hMul.{u1, u1, u1} K K K (instHMul.{u1} K (NonUnitalNonAssocRing.toMul.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K _inst_1))))) x a) (Filter.cocompact.{u1} K _inst_2) (Filter.cocompact.{u1} K _inst_2))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto_cocompact_mul_right₀ Filter.tendsto_cocompact_mul_right₀ₓ'. -/
 /-- Right-multiplication by a nonzero element of a topological division ring is proper, i.e.,
 inverse images of compact sets are compact. -/
 theorem Filter.tendsto_cocompact_mul_right₀ [ContinuousMul K] {a : K} (ha : a ≠ 0) :
@@ -81,33 +69,15 @@ def Subfield.topologicalClosure (K : Subfield α) : Subfield α :=
 #align subfield.topological_closure Subfield.topologicalClosure
 -/
 
-/- warning: subfield.le_topological_closure -> Subfield.le_topologicalClosure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3), LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toHasLe.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (SetLike.partialOrder.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) s (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3), LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subfield.{u1} α _inst_3) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subfield.{u1} α _inst_3) (Subfield.instCompleteLatticeSubfield.{u1} α _inst_3))))) s (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s)
-Case conversion may be inaccurate. Consider using '#align subfield.le_topological_closure Subfield.le_topologicalClosureₓ'. -/
 theorem Subfield.le_topologicalClosure (s : Subfield α) : s ≤ s.topologicalClosure :=
   subset_closure
 #align subfield.le_topological_closure Subfield.le_topologicalClosure
 
-/- warning: subfield.is_closed_topological_closure -> Subfield.isClosed_topologicalClosure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3), IsClosed.{u1} α _inst_4 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subfield.{u1} α _inst_3) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subfield.{u1} α _inst_3) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subfield.{u1} α _inst_3) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3), IsClosed.{u1} α _inst_4 (SetLike.coe.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.instSetLikeSubfield.{u1} α _inst_3) (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s))
-Case conversion may be inaccurate. Consider using '#align subfield.is_closed_topological_closure Subfield.isClosed_topologicalClosureₓ'. -/
 theorem Subfield.isClosed_topologicalClosure (s : Subfield α) :
     IsClosed (s.topologicalClosure : Set α) :=
   isClosed_closure
 #align subfield.is_closed_topological_closure Subfield.isClosed_topologicalClosure
 
-/- warning: subfield.topological_closure_minimal -> Subfield.topologicalClosure_minimal is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3) {t : Subfield.{u1} α _inst_3}, (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toHasLe.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (SetLike.partialOrder.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) s t) -> (IsClosed.{u1} α _inst_4 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subfield.{u1} α _inst_3) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subfield.{u1} α _inst_3) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subfield.{u1} α _inst_3) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) t)) -> (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toHasLe.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (SetLike.partialOrder.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s) t)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3) {t : Subfield.{u1} α _inst_3}, (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subfield.{u1} α _inst_3) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subfield.{u1} α _inst_3) (Subfield.instCompleteLatticeSubfield.{u1} α _inst_3))))) s t) -> (IsClosed.{u1} α _inst_4 (SetLike.coe.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.instSetLikeSubfield.{u1} α _inst_3) t)) -> (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subfield.{u1} α _inst_3) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subfield.{u1} α _inst_3) (Subfield.instCompleteLatticeSubfield.{u1} α _inst_3))))) (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s) t)
-Case conversion may be inaccurate. Consider using '#align subfield.topological_closure_minimal Subfield.topologicalClosure_minimalₓ'. -/
 theorem Subfield.topologicalClosure_minimal (s : Subfield α) {t : Subfield α} (h : s ≤ t)
     (ht : IsClosed (t : Set α)) : s.topologicalClosure ≤ t :=
   closure_minimal h ht
@@ -126,12 +96,6 @@ happens to be a field is enough.
 
 variable {𝕜 : Type _} [Field 𝕜] [TopologicalSpace 𝕜] [TopologicalRing 𝕜]
 
-/- warning: affine_homeomorph -> affineHomeomorph is a dubious translation:
-lean 3 declaration is
-  forall {𝕜 : Type.{u1}} [_inst_3 : Field.{u1} 𝕜] [_inst_4 : TopologicalSpace.{u1} 𝕜] [_inst_5 : TopologicalRing.{u1} 𝕜 _inst_4 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 _inst_3))))] (a : 𝕜), 𝕜 -> (Ne.{succ u1} 𝕜 a (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 _inst_3))))))))))) -> (Homeomorph.{u1, u1} 𝕜 𝕜 _inst_4 _inst_4)
-but is expected to have type
-  forall {𝕜 : Type.{u1}} [_inst_3 : Field.{u1} 𝕜] [_inst_4 : TopologicalSpace.{u1} 𝕜] [_inst_5 : TopologicalRing.{u1} 𝕜 _inst_4 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 _inst_3))))] (a : 𝕜), 𝕜 -> (Ne.{succ u1} 𝕜 a (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 _inst_3))))))) -> (Homeomorph.{u1, u1} 𝕜 𝕜 _inst_4 _inst_4)
-Case conversion may be inaccurate. Consider using '#align affine_homeomorph affineHomeomorphₓ'. -/
 /--
 The map `λ x, a * x + b`, as a homeomorphism from `𝕜` (a topological field) to itself, when `a ≠ 0`.
 -/
@@ -152,12 +116,6 @@ variable {α β : Type _} [TopologicalSpace α] [LinearOrderedSemifield β] {a :
 
 open Topology
 
-/- warning: is_local_min.inv -> IsLocalMin.inv is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : LinearOrderedSemifield.{u2} β] {f : α -> β} {a : α}, (IsLocalMin.{u1, u2} α β _inst_3 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} β _inst_4)))))) f a) -> (Filter.Eventually.{u1} α (fun (z : α) => LT.lt.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} β _inst_4))))))) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (DivisionSemiring.toSemiring.{u2} β (Semifield.toDivisionSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β _inst_4)))))))))) (f z)) (nhds.{u1} α _inst_3 a)) -> (IsLocalMax.{u1, u2} α β _inst_3 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} β _inst_4)))))) (Inv.inv.{max u1 u2} (α -> β) (Pi.instInv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasInv.{u2} β (GroupWithZero.toDivInvMonoid.{u2} β (DivisionSemiring.toGroupWithZero.{u2} β (Semifield.toDivisionSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β _inst_4)))))) f) a)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_3 : TopologicalSpace.{u2} α] [_inst_4 : LinearOrderedSemifield.{u1} β] {f : α -> β} {a : α}, (IsLocalMin.{u2, u1} α β _inst_3 (PartialOrder.toPreorder.{u1} β (StrictOrderedSemiring.toPartialOrder.{u1} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} β _inst_4))))) f a) -> (Filter.Eventually.{u2} α (fun (z : α) => LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedSemiring.toPartialOrder.{u1} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} β _inst_4)))))) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β _inst_4)))))) (f z)) (nhds.{u2} α _inst_3 a)) -> (IsLocalMax.{u2, u1} α β _inst_3 (PartialOrder.toPreorder.{u1} β (StrictOrderedSemiring.toPartialOrder.{u1} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} β _inst_4))))) (Inv.inv.{max u1 u2} (α -> β) (Pi.instInv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => LinearOrderedSemifield.toInv.{u1} β _inst_4)) f) a)
-Case conversion may be inaccurate. Consider using '#align is_local_min.inv IsLocalMin.invₓ'. -/
 theorem IsLocalMin.inv {f : α → β} {a : α} (h1 : IsLocalMin f a) (h2 : ∀ᶠ z in 𝓝 a, 0 < f z) :
     IsLocalMax f⁻¹ a := by
   filter_upwards [h1, h2]with z h3 h4 using(inv_le_inv h4 h2.self_of_nhds).mpr h3
@@ -175,12 +133,6 @@ open Set
 variable {α 𝕜 : Type _} {f g : α → 𝕜} {S : Set α} [TopologicalSpace α] [TopologicalSpace 𝕜]
   [T1Space 𝕜]
 
-/- warning: is_preconnected.eq_one_or_eq_neg_one_of_sq_eq -> IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Ring.{u2} 𝕜] [_inst_7 : NoZeroDivisors.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 _inst_6)) (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 _inst_6)))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6)))))))) S) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6)))))))) S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => SubNegMonoid.toHasNeg.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6)))))) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6))))))))) S))
-but is expected to have type
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Ring.{u2} 𝕜] [_inst_7 : NoZeroDivisors.{u2} 𝕜 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))) (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.744 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (OfNat.ofNat.{max u2 u1} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => Semiring.toOne.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6))))) S) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => Semiring.toOne.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6))))) S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 _inst_6)) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => Semiring.toOne.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))))) S))
-Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_one_or_eq_neg_one_of_sq_eq IsPreconnected.eq_one_or_eq_neg_one_of_sq_eqₓ'. -/
 /-- If `f` is a function `α → 𝕜` which is continuous on a preconnected set `S`, and
 `f ^ 2 = 1` on `S`, then either `f = 1` on `S`, or `f = -1` on `S`. -/
 theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors 𝕜]
@@ -204,9 +156,6 @@ theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors
   exact discrete_of_t1_of_finite
 #align is_preconnected.eq_one_or_eq_neg_one_of_sq_eq IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq
 
-/- warning: is_preconnected.eq_or_eq_neg_of_sq_eq -> IsPreconnected.eq_or_eq_neg_of_sq_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_or_eq_neg_of_sq_eq IsPreconnected.eq_or_eq_neg_of_sq_eqₓ'. -/
 /-- If `f, g` are functions `α → 𝕜`, both continuous on a preconnected set `S`, with
 `f ^ 2 = g ^ 2` on `S`, and `g z ≠ 0` all `z ∈ S`, then either `f = g` or `f = -g` on
 `S`. -/
@@ -227,9 +176,6 @@ theorem IsPreconnected.eq_or_eq_neg_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 
     exact pow_ne_zero _ (hg_ne hx)
 #align is_preconnected.eq_or_eq_neg_of_sq_eq IsPreconnected.eq_or_eq_neg_of_sq_eq
 
-/- warning: is_preconnected.eq_of_sq_eq -> IsPreconnected.eq_of_sq_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_of_sq_eq IsPreconnected.eq_of_sq_eqₓ'. -/
 /-- If `f, g` are functions `α → 𝕜`, both continuous on a preconnected set `S`, with
 `f ^ 2 = g ^ 2` on `S`, and `g z ≠ 0` all `z ∈ S`, then as soon as `f = g` holds at
 one point of `S` it holds for all points. -/
Diff
@@ -140,9 +140,7 @@ def affineHomeomorph (a b : 𝕜) (h : a ≠ 0) : 𝕜 ≃ₜ 𝕜
     where
   toFun x := a * x + b
   invFun y := (y - b) / a
-  left_inv x := by
-    simp only [add_sub_cancel]
-    exact mul_div_cancel_left x h
+  left_inv x := by simp only [add_sub_cancel]; exact mul_div_cancel_left x h
   right_inv y := by simp [mul_div_cancel' _ h]
 #align affine_homeomorph affineHomeomorph
 
@@ -192,22 +190,14 @@ theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors
   simp_rw [eq_on, Pi.one_apply, Pi.pow_apply, sq_eq_one_iff] at hsq
   -- First deal with crazy case where `S` is empty.
   by_cases hSe : ∀ x : α, x ∉ S
-  · left
-    intro x hx
-    exfalso
-    exact hSe x hx
+  · left; intro x hx
+    exfalso; exact hSe x hx
   push_neg  at hSe
   choose y hy using hSe
   suffices ∀ x : α, x ∈ S → f x = f y by
     rcases hsq hy with ⟨⟩
-    · left
-      intro z hz
-      rw [Pi.one_apply z, ← h]
-      exact this z hz
-    · right
-      intro z hz
-      rw [Pi.neg_apply, Pi.one_apply, ← h]
-      exact this z hz
+    · left; intro z hz; rw [Pi.one_apply z, ← h]; exact this z hz
+    · right; intro z hz; rw [Pi.neg_apply, Pi.one_apply, ← h]; exact this z hz
   refine' fun x hx => hS.constant_of_maps_to hf (fun z hz => _) hx hy
   show f z ∈ ({-1, 1} : Set 𝕜)
   · exact mem_insert_iff.mpr (hsq hz).symm
@@ -254,8 +244,7 @@ theorem IsPreconnected.eq_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 𝕜] [Cont
       mul_eq_zero] at hy'
     cases hy'
     -- need to handle case of `char 𝕜 = 2` separately
-    · exfalso
-      exact hg_ne hy hy'
+    · exfalso; exact hg_ne hy hy'
     ·
       rw [h hx, Pi.neg_apply, eq_comm, ← sub_eq_zero, sub_eq_add_neg, neg_neg, ← mul_two, hy',
         MulZeroClass.mul_zero]
Diff
@@ -215,10 +215,7 @@ theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors
 #align is_preconnected.eq_one_or_eq_neg_one_of_sq_eq IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq
 
 /- warning: is_preconnected.eq_or_eq_neg_of_sq_eq -> IsPreconnected.eq_or_eq_neg_of_sq_eq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))))) (DivInvMonoid.toHasInv.{u2} 𝕜 (DivisionRing.toDivInvMonoid.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) g (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) S) -> (forall {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))))))) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f g S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => SubNegMonoid.toHasNeg.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))) g) S))
-but is expected to have type
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))) (Field.toInv.{u2} 𝕜 _inst_6) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.878 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.878 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) g (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) S) -> (forall {x : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f g S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))) g) S))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_or_eq_neg_of_sq_eq IsPreconnected.eq_or_eq_neg_of_sq_eqₓ'. -/
 /-- If `f, g` are functions `α → 𝕜`, both continuous on a preconnected set `S`, with
 `f ^ 2 = g ^ 2` on `S`, and `g z ≠ 0` all `z ∈ S`, then either `f = g` or `f = -g` on
@@ -241,10 +238,7 @@ theorem IsPreconnected.eq_or_eq_neg_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 
 #align is_preconnected.eq_or_eq_neg_of_sq_eq IsPreconnected.eq_or_eq_neg_of_sq_eq
 
 /- warning: is_preconnected.eq_of_sq_eq -> IsPreconnected.eq_of_sq_eq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))))) (DivInvMonoid.toHasInv.{u2} 𝕜 (DivisionRing.toDivInvMonoid.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) g (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) S) -> (forall {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))))))) -> (forall {y : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y S) -> (Eq.{succ u2} 𝕜 (f y) (g y)) -> (Set.EqOn.{u1, u2} α 𝕜 f g S))
-but is expected to have type
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))) (Field.toInv.{u2} 𝕜 _inst_6) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.1066 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.1066 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) g (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) S) -> (forall {x : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) -> (forall {y : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y S) -> (Eq.{succ u2} 𝕜 (f y) (g y)) -> (Set.EqOn.{u1, u2} α 𝕜 f g S))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_of_sq_eq IsPreconnected.eq_of_sq_eqₓ'. -/
 /-- If `f, g` are functions `α → 𝕜`, both continuous on a preconnected set `S`, with
 `f ^ 2 = g ^ 2` on `S`, and `g z ≠ 0` all `z ∈ S`, then as soon as `f = g` holds at
Diff
@@ -83,7 +83,7 @@ def Subfield.topologicalClosure (K : Subfield α) : Subfield α :=
 
 /- warning: subfield.le_topological_closure -> Subfield.le_topologicalClosure is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3), LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (SetLike.partialOrder.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) s (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s)
+  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3), LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toHasLe.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (SetLike.partialOrder.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) s (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s)
 but is expected to have type
   forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3), LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subfield.{u1} α _inst_3) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subfield.{u1} α _inst_3) (Subfield.instCompleteLatticeSubfield.{u1} α _inst_3))))) s (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s)
 Case conversion may be inaccurate. Consider using '#align subfield.le_topological_closure Subfield.le_topologicalClosureₓ'. -/
@@ -104,7 +104,7 @@ theorem Subfield.isClosed_topologicalClosure (s : Subfield α) :
 
 /- warning: subfield.topological_closure_minimal -> Subfield.topologicalClosure_minimal is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3) {t : Subfield.{u1} α _inst_3}, (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (SetLike.partialOrder.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) s t) -> (IsClosed.{u1} α _inst_4 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subfield.{u1} α _inst_3) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subfield.{u1} α _inst_3) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subfield.{u1} α _inst_3) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) t)) -> (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (SetLike.partialOrder.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s) t)
+  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3) {t : Subfield.{u1} α _inst_3}, (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toHasLe.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (SetLike.partialOrder.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) s t) -> (IsClosed.{u1} α _inst_4 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subfield.{u1} α _inst_3) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subfield.{u1} α _inst_3) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subfield.{u1} α _inst_3) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) t)) -> (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toHasLe.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (SetLike.partialOrder.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s) t)
 but is expected to have type
   forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3) {t : Subfield.{u1} α _inst_3}, (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subfield.{u1} α _inst_3) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subfield.{u1} α _inst_3) (Subfield.instCompleteLatticeSubfield.{u1} α _inst_3))))) s t) -> (IsClosed.{u1} α _inst_4 (SetLike.coe.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.instSetLikeSubfield.{u1} α _inst_3) t)) -> (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subfield.{u1} α _inst_3) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subfield.{u1} α _inst_3) (Subfield.instCompleteLatticeSubfield.{u1} α _inst_3))))) (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s) t)
 Case conversion may be inaccurate. Consider using '#align subfield.topological_closure_minimal Subfield.topologicalClosure_minimalₓ'. -/
@@ -156,7 +156,7 @@ open Topology
 
 /- warning: is_local_min.inv -> IsLocalMin.inv is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : LinearOrderedSemifield.{u2} β] {f : α -> β} {a : α}, (IsLocalMin.{u1, u2} α β _inst_3 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} β _inst_4)))))) f a) -> (Filter.Eventually.{u1} α (fun (z : α) => LT.lt.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} β _inst_4))))))) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (DivisionSemiring.toSemiring.{u2} β (Semifield.toDivisionSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β _inst_4)))))))))) (f z)) (nhds.{u1} α _inst_3 a)) -> (IsLocalMax.{u1, u2} α β _inst_3 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} β _inst_4)))))) (Inv.inv.{max u1 u2} (α -> β) (Pi.instInv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasInv.{u2} β (GroupWithZero.toDivInvMonoid.{u2} β (DivisionSemiring.toGroupWithZero.{u2} β (Semifield.toDivisionSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β _inst_4)))))) f) a)
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : LinearOrderedSemifield.{u2} β] {f : α -> β} {a : α}, (IsLocalMin.{u1, u2} α β _inst_3 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} β _inst_4)))))) f a) -> (Filter.Eventually.{u1} α (fun (z : α) => LT.lt.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} β _inst_4))))))) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (DivisionSemiring.toSemiring.{u2} β (Semifield.toDivisionSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β _inst_4)))))))))) (f z)) (nhds.{u1} α _inst_3 a)) -> (IsLocalMax.{u1, u2} α β _inst_3 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} β _inst_4)))))) (Inv.inv.{max u1 u2} (α -> β) (Pi.instInv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasInv.{u2} β (GroupWithZero.toDivInvMonoid.{u2} β (DivisionSemiring.toGroupWithZero.{u2} β (Semifield.toDivisionSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β _inst_4)))))) f) a)
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_3 : TopologicalSpace.{u2} α] [_inst_4 : LinearOrderedSemifield.{u1} β] {f : α -> β} {a : α}, (IsLocalMin.{u2, u1} α β _inst_3 (PartialOrder.toPreorder.{u1} β (StrictOrderedSemiring.toPartialOrder.{u1} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} β _inst_4))))) f a) -> (Filter.Eventually.{u2} α (fun (z : α) => LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedSemiring.toPartialOrder.{u1} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} β _inst_4)))))) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β _inst_4)))))) (f z)) (nhds.{u2} α _inst_3 a)) -> (IsLocalMax.{u2, u1} α β _inst_3 (PartialOrder.toPreorder.{u1} β (StrictOrderedSemiring.toPartialOrder.{u1} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} β _inst_4))))) (Inv.inv.{max u1 u2} (α -> β) (Pi.instInv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => LinearOrderedSemifield.toInv.{u1} β _inst_4)) f) a)
 Case conversion may be inaccurate. Consider using '#align is_local_min.inv IsLocalMin.invₓ'. -/
Diff
@@ -181,7 +181,7 @@ variable {α 𝕜 : Type _} {f g : α → 𝕜} {S : Set α} [TopologicalSpace 
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Ring.{u2} 𝕜] [_inst_7 : NoZeroDivisors.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 _inst_6)) (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 _inst_6)))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6)))))))) S) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6)))))))) S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => SubNegMonoid.toHasNeg.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6)))))) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6))))))))) S))
 but is expected to have type
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Ring.{u2} 𝕜] [_inst_7 : NoZeroDivisors.{u2} 𝕜 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))) (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.744 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (OfNat.ofNat.{max u2 u1} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))))) S) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))))) S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 _inst_6)) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))) S))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Ring.{u2} 𝕜] [_inst_7 : NoZeroDivisors.{u2} 𝕜 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))) (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.744 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (OfNat.ofNat.{max u2 u1} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => Semiring.toOne.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6))))) S) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => Semiring.toOne.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6))))) S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 _inst_6)) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => Semiring.toOne.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))))) S))
 Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_one_or_eq_neg_one_of_sq_eq IsPreconnected.eq_one_or_eq_neg_one_of_sq_eqₓ'. -/
 /-- If `f` is a function `α → 𝕜` which is continuous on a preconnected set `S`, and
 `f ^ 2 = 1` on `S`, then either `f = 1` on `S`, or `f = -1` on `S`. -/
Diff
@@ -181,7 +181,7 @@ variable {α 𝕜 : Type _} {f g : α → 𝕜} {S : Set α} [TopologicalSpace 
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Ring.{u2} 𝕜] [_inst_7 : NoZeroDivisors.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 _inst_6)) (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 _inst_6)))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6)))))))) S) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6)))))))) S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => SubNegMonoid.toHasNeg.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6)))))) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6))))))))) S))
 but is expected to have type
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Ring.{u2} 𝕜] [_inst_7 : NoZeroDivisors.{u2} 𝕜 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))) (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.738 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (OfNat.ofNat.{max u2 u1} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))))) S) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))))) S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 _inst_6)) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))) S))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Ring.{u2} 𝕜] [_inst_7 : NoZeroDivisors.{u2} 𝕜 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))) (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.744 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (OfNat.ofNat.{max u2 u1} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))))) S) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))))) S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 _inst_6)) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))) S))
 Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_one_or_eq_neg_one_of_sq_eq IsPreconnected.eq_one_or_eq_neg_one_of_sq_eqₓ'. -/
 /-- If `f` is a function `α → 𝕜` which is continuous on a preconnected set `S`, and
 `f ^ 2 = 1` on `S`, then either `f = 1` on `S`, or `f = -1` on `S`. -/
@@ -218,7 +218,7 @@ theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))))) (DivInvMonoid.toHasInv.{u2} 𝕜 (DivisionRing.toDivInvMonoid.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) g (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) S) -> (forall {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))))))) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f g S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => SubNegMonoid.toHasNeg.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))) g) S))
 but is expected to have type
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))) (Field.toInv.{u2} 𝕜 _inst_6) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.872 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.872 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) g (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) S) -> (forall {x : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f g S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))) g) S))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))) (Field.toInv.{u2} 𝕜 _inst_6) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.878 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.878 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) g (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) S) -> (forall {x : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f g S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))) g) S))
 Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_or_eq_neg_of_sq_eq IsPreconnected.eq_or_eq_neg_of_sq_eqₓ'. -/
 /-- If `f, g` are functions `α → 𝕜`, both continuous on a preconnected set `S`, with
 `f ^ 2 = g ^ 2` on `S`, and `g z ≠ 0` all `z ∈ S`, then either `f = g` or `f = -g` on
@@ -244,7 +244,7 @@ theorem IsPreconnected.eq_or_eq_neg_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))))) (DivInvMonoid.toHasInv.{u2} 𝕜 (DivisionRing.toDivInvMonoid.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) g (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) S) -> (forall {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))))))) -> (forall {y : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y S) -> (Eq.{succ u2} 𝕜 (f y) (g y)) -> (Set.EqOn.{u1, u2} α 𝕜 f g S))
 but is expected to have type
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))) (Field.toInv.{u2} 𝕜 _inst_6) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.1060 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.1060 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) g (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) S) -> (forall {x : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) -> (forall {y : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y S) -> (Eq.{succ u2} 𝕜 (f y) (g y)) -> (Set.EqOn.{u1, u2} α 𝕜 f g S))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))) (Field.toInv.{u2} 𝕜 _inst_6) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.1066 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.1066 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) g (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) S) -> (forall {x : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) -> (forall {y : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y S) -> (Eq.{succ u2} 𝕜 (f y) (g y)) -> (Set.EqOn.{u1, u2} α 𝕜 f g S))
 Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_of_sq_eq IsPreconnected.eq_of_sq_eqₓ'. -/
 /-- If `f, g` are functions `α → 𝕜`, both continuous on a preconnected set `S`, with
 `f ^ 2 = g ^ 2` on `S`, and `g z ≠ 0` all `z ∈ S`, then as soon as `f = g` holds at
Diff
@@ -179,7 +179,7 @@ variable {α 𝕜 : Type _} {f g : α → 𝕜} {S : Set α} [TopologicalSpace 
 
 /- warning: is_preconnected.eq_one_or_eq_neg_one_of_sq_eq -> IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Ring.{u2} 𝕜] [_inst_7 : NoZeroDivisors.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 _inst_6)) (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 _inst_6)))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))))) S) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))))) S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => SubNegMonoid.toHasNeg.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))))))))) S))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Ring.{u2} 𝕜] [_inst_7 : NoZeroDivisors.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 _inst_6)) (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 _inst_6)))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6)))))))) S) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6)))))))) S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => SubNegMonoid.toHasNeg.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6)))))) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 _inst_6))))))))) S))
 but is expected to have type
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Ring.{u2} 𝕜] [_inst_7 : NoZeroDivisors.{u2} 𝕜 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))) (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.738 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (OfNat.ofNat.{max u2 u1} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))))) S) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))))) S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 _inst_6)) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))) S))
 Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_one_or_eq_neg_one_of_sq_eq IsPreconnected.eq_one_or_eq_neg_one_of_sq_eqₓ'. -/
@@ -216,7 +216,7 @@ theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors
 
 /- warning: is_preconnected.eq_or_eq_neg_of_sq_eq -> IsPreconnected.eq_or_eq_neg_of_sq_eq is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))))) (DivInvMonoid.toHasInv.{u2} 𝕜 (DivisionRing.toDivInvMonoid.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) g (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) S) -> (forall {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))))))) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f g S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => SubNegMonoid.toHasNeg.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))) g) S))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))))) (DivInvMonoid.toHasInv.{u2} 𝕜 (DivisionRing.toDivInvMonoid.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) g (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) S) -> (forall {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))))))) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f g S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => SubNegMonoid.toHasNeg.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))) g) S))
 but is expected to have type
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))) (Field.toInv.{u2} 𝕜 _inst_6) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.872 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.872 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) g (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) S) -> (forall {x : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f g S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))) g) S))
 Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_or_eq_neg_of_sq_eq IsPreconnected.eq_or_eq_neg_of_sq_eqₓ'. -/
Diff
@@ -218,7 +218,7 @@ theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))))) (DivInvMonoid.toHasInv.{u2} 𝕜 (DivisionRing.toDivInvMonoid.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) g (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) S) -> (forall {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))))))) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f g S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => SubNegMonoid.toHasNeg.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))) g) S))
 but is expected to have type
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))) (Field.toInv.{u2} 𝕜 _inst_6) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.872 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.875 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) g (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) S) -> (forall {x : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f g S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))) g) S))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))) (Field.toInv.{u2} 𝕜 _inst_6) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.872 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.872 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) g (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) S) -> (forall {x : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f g S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))) g) S))
 Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_or_eq_neg_of_sq_eq IsPreconnected.eq_or_eq_neg_of_sq_eqₓ'. -/
 /-- If `f, g` are functions `α → 𝕜`, both continuous on a preconnected set `S`, with
 `f ^ 2 = g ^ 2` on `S`, and `g z ≠ 0` all `z ∈ S`, then either `f = g` or `f = -g` on
@@ -244,7 +244,7 @@ theorem IsPreconnected.eq_or_eq_neg_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))))) (DivInvMonoid.toHasInv.{u2} 𝕜 (DivisionRing.toDivInvMonoid.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) g (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) S) -> (forall {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))))))) -> (forall {y : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y S) -> (Eq.{succ u2} 𝕜 (f y) (g y)) -> (Set.EqOn.{u1, u2} α 𝕜 f g S))
 but is expected to have type
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))) (Field.toInv.{u2} 𝕜 _inst_6) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.1060 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.1063 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) g (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) S) -> (forall {x : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) -> (forall {y : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y S) -> (Eq.{succ u2} 𝕜 (f y) (g y)) -> (Set.EqOn.{u1, u2} α 𝕜 f g S))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))) (Field.toInv.{u2} 𝕜 _inst_6) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.1060 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.1060 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) g (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) S) -> (forall {x : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) -> (forall {y : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y S) -> (Eq.{succ u2} 𝕜 (f y) (g y)) -> (Set.EqOn.{u1, u2} α 𝕜 f g S))
 Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_of_sq_eq IsPreconnected.eq_of_sq_eqₓ'. -/
 /-- If `f, g` are functions `α → 𝕜`, both continuous on a preconnected set `S`, with
 `f ^ 2 = g ^ 2` on `S`, and `g z ≠ 0` all `z ∈ S`, then as soon as `f = g` holds at
Diff
@@ -264,7 +264,7 @@ theorem IsPreconnected.eq_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 𝕜] [Cont
       exact hg_ne hy hy'
     ·
       rw [h hx, Pi.neg_apply, eq_comm, ← sub_eq_zero, sub_eq_add_neg, neg_neg, ← mul_two, hy',
-        mul_zero]
+        MulZeroClass.mul_zero]
 #align is_preconnected.eq_of_sq_eq IsPreconnected.eq_of_sq_eq
 
 end Preconnected
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Scott Morrison
 
 ! This file was ported from Lean 3 source module topology.algebra.field
-! leanprover-community/mathlib commit c10e724be91096453ee3db13862b9fb9a992fef2
+! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -16,6 +16,9 @@ import Mathbin.FieldTheory.Subfield
 /-!
 # Topological fields
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 A topological division ring is a topological ring whose inversion function is continuous at every
 non-zero element.
 
Diff
@@ -24,6 +24,12 @@ non-zero element.
 
 variable {K : Type _} [DivisionRing K] [TopologicalSpace K]
 
+/- warning: filter.tendsto_cocompact_mul_left₀ -> Filter.tendsto_cocompact_mul_left₀ is a dubious translation:
+lean 3 declaration is
+  forall {K : Type.{u1}} [_inst_1 : DivisionRing.{u1} K] [_inst_2 : TopologicalSpace.{u1} K] [_inst_3 : ContinuousMul.{u1} K _inst_2 (Distrib.toHasMul.{u1} K (Ring.toDistrib.{u1} K (DivisionRing.toRing.{u1} K _inst_1)))] {a : K}, (Ne.{succ u1} K a (OfNat.ofNat.{u1} K 0 (OfNat.mk.{u1} K 0 (Zero.zero.{u1} K (MulZeroClass.toHasZero.{u1} K (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} K (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K _inst_1)))))))))) -> (Filter.Tendsto.{u1, u1} K K (fun (x : K) => HMul.hMul.{u1, u1, u1} K K K (instHMul.{u1} K (Distrib.toHasMul.{u1} K (Ring.toDistrib.{u1} K (DivisionRing.toRing.{u1} K _inst_1)))) a x) (Filter.cocompact.{u1} K _inst_2) (Filter.cocompact.{u1} K _inst_2))
+but is expected to have type
+  forall {K : Type.{u1}} [_inst_1 : DivisionRing.{u1} K] [_inst_2 : TopologicalSpace.{u1} K] [_inst_3 : ContinuousMul.{u1} K _inst_2 (NonUnitalNonAssocRing.toMul.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K _inst_1))))] {a : K}, (Ne.{succ u1} K a (OfNat.ofNat.{u1} K 0 (Zero.toOfNat0.{u1} K (MonoidWithZero.toZero.{u1} K (Semiring.toMonoidWithZero.{u1} K (DivisionSemiring.toSemiring.{u1} K (DivisionRing.toDivisionSemiring.{u1} K _inst_1))))))) -> (Filter.Tendsto.{u1, u1} K K (fun (x : K) => HMul.hMul.{u1, u1, u1} K K K (instHMul.{u1} K (NonUnitalNonAssocRing.toMul.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K _inst_1))))) a x) (Filter.cocompact.{u1} K _inst_2) (Filter.cocompact.{u1} K _inst_2))
+Case conversion may be inaccurate. Consider using '#align filter.tendsto_cocompact_mul_left₀ Filter.tendsto_cocompact_mul_left₀ₓ'. -/
 /-- Left-multiplication by a nonzero element of a topological division ring is proper, i.e.,
 inverse images of compact sets are compact. -/
 theorem Filter.tendsto_cocompact_mul_left₀ [ContinuousMul K] {a : K} (ha : a ≠ 0) :
@@ -31,6 +37,12 @@ theorem Filter.tendsto_cocompact_mul_left₀ [ContinuousMul K] {a : K} (ha : a 
   Filter.tendsto_cocompact_mul_left (inv_mul_cancel ha)
 #align filter.tendsto_cocompact_mul_left₀ Filter.tendsto_cocompact_mul_left₀
 
+/- warning: filter.tendsto_cocompact_mul_right₀ -> Filter.tendsto_cocompact_mul_right₀ is a dubious translation:
+lean 3 declaration is
+  forall {K : Type.{u1}} [_inst_1 : DivisionRing.{u1} K] [_inst_2 : TopologicalSpace.{u1} K] [_inst_3 : ContinuousMul.{u1} K _inst_2 (Distrib.toHasMul.{u1} K (Ring.toDistrib.{u1} K (DivisionRing.toRing.{u1} K _inst_1)))] {a : K}, (Ne.{succ u1} K a (OfNat.ofNat.{u1} K 0 (OfNat.mk.{u1} K 0 (Zero.zero.{u1} K (MulZeroClass.toHasZero.{u1} K (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} K (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K _inst_1)))))))))) -> (Filter.Tendsto.{u1, u1} K K (fun (x : K) => HMul.hMul.{u1, u1, u1} K K K (instHMul.{u1} K (Distrib.toHasMul.{u1} K (Ring.toDistrib.{u1} K (DivisionRing.toRing.{u1} K _inst_1)))) x a) (Filter.cocompact.{u1} K _inst_2) (Filter.cocompact.{u1} K _inst_2))
+but is expected to have type
+  forall {K : Type.{u1}} [_inst_1 : DivisionRing.{u1} K] [_inst_2 : TopologicalSpace.{u1} K] [_inst_3 : ContinuousMul.{u1} K _inst_2 (NonUnitalNonAssocRing.toMul.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K _inst_1))))] {a : K}, (Ne.{succ u1} K a (OfNat.ofNat.{u1} K 0 (Zero.toOfNat0.{u1} K (MonoidWithZero.toZero.{u1} K (Semiring.toMonoidWithZero.{u1} K (DivisionSemiring.toSemiring.{u1} K (DivisionRing.toDivisionSemiring.{u1} K _inst_1))))))) -> (Filter.Tendsto.{u1, u1} K K (fun (x : K) => HMul.hMul.{u1, u1, u1} K K K (instHMul.{u1} K (NonUnitalNonAssocRing.toMul.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K _inst_1))))) x a) (Filter.cocompact.{u1} K _inst_2) (Filter.cocompact.{u1} K _inst_2))
+Case conversion may be inaccurate. Consider using '#align filter.tendsto_cocompact_mul_right₀ Filter.tendsto_cocompact_mul_right₀ₓ'. -/
 /-- Right-multiplication by a nonzero element of a topological division ring is proper, i.e.,
 inverse images of compact sets are compact. -/
 theorem Filter.tendsto_cocompact_mul_right₀ [ContinuousMul K] {a : K} (ha : a ≠ 0) :
@@ -40,15 +52,18 @@ theorem Filter.tendsto_cocompact_mul_right₀ [ContinuousMul K] {a : K} (ha : a
 
 variable (K)
 
+#print TopologicalDivisionRing /-
 /-- A topological division ring is a division ring with a topology where all operations are
     continuous, including inversion. -/
 class TopologicalDivisionRing extends TopologicalRing K, HasContinuousInv₀ K : Prop
 #align topological_division_ring TopologicalDivisionRing
+-/
 
 section Subfield
 
 variable {α : Type _} [Field α] [TopologicalSpace α] [TopologicalDivisionRing α]
 
+#print Subfield.topologicalClosure /-
 /-- The (topological-space) closure of a subfield of a topological field is
 itself a subfield. -/
 def Subfield.topologicalClosure (K : Subfield α) : Subfield α :=
@@ -61,16 +76,35 @@ def Subfield.topologicalClosure (K : Subfield α) : Subfield α :=
       · rw [← inv_coe_set, ← Set.image_inv]
         exact mem_closure_image (continuous_at_inv₀ h) hx }
 #align subfield.topological_closure Subfield.topologicalClosure
+-/
 
+/- warning: subfield.le_topological_closure -> Subfield.le_topologicalClosure is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3), LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (SetLike.partialOrder.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) s (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3), LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subfield.{u1} α _inst_3) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subfield.{u1} α _inst_3) (Subfield.instCompleteLatticeSubfield.{u1} α _inst_3))))) s (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s)
+Case conversion may be inaccurate. Consider using '#align subfield.le_topological_closure Subfield.le_topologicalClosureₓ'. -/
 theorem Subfield.le_topologicalClosure (s : Subfield α) : s ≤ s.topologicalClosure :=
   subset_closure
 #align subfield.le_topological_closure Subfield.le_topologicalClosure
 
+/- warning: subfield.is_closed_topological_closure -> Subfield.isClosed_topologicalClosure is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3), IsClosed.{u1} α _inst_4 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subfield.{u1} α _inst_3) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subfield.{u1} α _inst_3) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subfield.{u1} α _inst_3) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3), IsClosed.{u1} α _inst_4 (SetLike.coe.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.instSetLikeSubfield.{u1} α _inst_3) (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s))
+Case conversion may be inaccurate. Consider using '#align subfield.is_closed_topological_closure Subfield.isClosed_topologicalClosureₓ'. -/
 theorem Subfield.isClosed_topologicalClosure (s : Subfield α) :
     IsClosed (s.topologicalClosure : Set α) :=
   isClosed_closure
 #align subfield.is_closed_topological_closure Subfield.isClosed_topologicalClosure
 
+/- warning: subfield.topological_closure_minimal -> Subfield.topologicalClosure_minimal is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3) {t : Subfield.{u1} α _inst_3}, (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (SetLike.partialOrder.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) s t) -> (IsClosed.{u1} α _inst_4 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subfield.{u1} α _inst_3) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subfield.{u1} α _inst_3) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subfield.{u1} α _inst_3) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) t)) -> (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (SetLike.partialOrder.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.setLike.{u1} α _inst_3)))) (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s) t)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_3 : Field.{u1} α] [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : TopologicalDivisionRing.{u1} α (Field.toDivisionRing.{u1} α _inst_3) _inst_4] (s : Subfield.{u1} α _inst_3) {t : Subfield.{u1} α _inst_3}, (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subfield.{u1} α _inst_3) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subfield.{u1} α _inst_3) (Subfield.instCompleteLatticeSubfield.{u1} α _inst_3))))) s t) -> (IsClosed.{u1} α _inst_4 (SetLike.coe.{u1, u1} (Subfield.{u1} α _inst_3) α (Subfield.instSetLikeSubfield.{u1} α _inst_3) t)) -> (LE.le.{u1} (Subfield.{u1} α _inst_3) (Preorder.toLE.{u1} (Subfield.{u1} α _inst_3) (PartialOrder.toPreorder.{u1} (Subfield.{u1} α _inst_3) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subfield.{u1} α _inst_3) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subfield.{u1} α _inst_3) (Subfield.instCompleteLatticeSubfield.{u1} α _inst_3))))) (Subfield.topologicalClosure.{u1} α _inst_3 _inst_4 _inst_5 s) t)
+Case conversion may be inaccurate. Consider using '#align subfield.topological_closure_minimal Subfield.topologicalClosure_minimalₓ'. -/
 theorem Subfield.topologicalClosure_minimal (s : Subfield α) {t : Subfield α} (h : s ≤ t)
     (ht : IsClosed (t : Set α)) : s.topologicalClosure ≤ t :=
   closure_minimal h ht
@@ -89,6 +123,12 @@ happens to be a field is enough.
 
 variable {𝕜 : Type _} [Field 𝕜] [TopologicalSpace 𝕜] [TopologicalRing 𝕜]
 
+/- warning: affine_homeomorph -> affineHomeomorph is a dubious translation:
+lean 3 declaration is
+  forall {𝕜 : Type.{u1}} [_inst_3 : Field.{u1} 𝕜] [_inst_4 : TopologicalSpace.{u1} 𝕜] [_inst_5 : TopologicalRing.{u1} 𝕜 _inst_4 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 _inst_3))))] (a : 𝕜), 𝕜 -> (Ne.{succ u1} 𝕜 a (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 _inst_3))))))))))) -> (Homeomorph.{u1, u1} 𝕜 𝕜 _inst_4 _inst_4)
+but is expected to have type
+  forall {𝕜 : Type.{u1}} [_inst_3 : Field.{u1} 𝕜] [_inst_4 : TopologicalSpace.{u1} 𝕜] [_inst_5 : TopologicalRing.{u1} 𝕜 _inst_4 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 _inst_3))))] (a : 𝕜), 𝕜 -> (Ne.{succ u1} 𝕜 a (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 _inst_3))))))) -> (Homeomorph.{u1, u1} 𝕜 𝕜 _inst_4 _inst_4)
+Case conversion may be inaccurate. Consider using '#align affine_homeomorph affineHomeomorphₓ'. -/
 /--
 The map `λ x, a * x + b`, as a homeomorphism from `𝕜` (a topological field) to itself, when `a ≠ 0`.
 -/
@@ -111,6 +151,12 @@ variable {α β : Type _} [TopologicalSpace α] [LinearOrderedSemifield β] {a :
 
 open Topology
 
+/- warning: is_local_min.inv -> IsLocalMin.inv is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : LinearOrderedSemifield.{u2} β] {f : α -> β} {a : α}, (IsLocalMin.{u1, u2} α β _inst_3 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} β _inst_4)))))) f a) -> (Filter.Eventually.{u1} α (fun (z : α) => LT.lt.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} β _inst_4))))))) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (DivisionSemiring.toSemiring.{u2} β (Semifield.toDivisionSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β _inst_4)))))))))) (f z)) (nhds.{u1} α _inst_3 a)) -> (IsLocalMax.{u1, u2} α β _inst_3 (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} β _inst_4)))))) (Inv.inv.{max u1 u2} (α -> β) (Pi.instInv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasInv.{u2} β (GroupWithZero.toDivInvMonoid.{u2} β (DivisionSemiring.toGroupWithZero.{u2} β (Semifield.toDivisionSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β _inst_4)))))) f) a)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_3 : TopologicalSpace.{u2} α] [_inst_4 : LinearOrderedSemifield.{u1} β] {f : α -> β} {a : α}, (IsLocalMin.{u2, u1} α β _inst_3 (PartialOrder.toPreorder.{u1} β (StrictOrderedSemiring.toPartialOrder.{u1} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} β _inst_4))))) f a) -> (Filter.Eventually.{u2} α (fun (z : α) => LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedSemiring.toPartialOrder.{u1} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} β _inst_4)))))) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β _inst_4)))))) (f z)) (nhds.{u2} α _inst_3 a)) -> (IsLocalMax.{u2, u1} α β _inst_3 (PartialOrder.toPreorder.{u1} β (StrictOrderedSemiring.toPartialOrder.{u1} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} β (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} β _inst_4))))) (Inv.inv.{max u1 u2} (α -> β) (Pi.instInv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => LinearOrderedSemifield.toInv.{u1} β _inst_4)) f) a)
+Case conversion may be inaccurate. Consider using '#align is_local_min.inv IsLocalMin.invₓ'. -/
 theorem IsLocalMin.inv {f : α → β} {a : α} (h1 : IsLocalMin f a) (h2 : ∀ᶠ z in 𝓝 a, 0 < f z) :
     IsLocalMax f⁻¹ a := by
   filter_upwards [h1, h2]with z h3 h4 using(inv_le_inv h4 h2.self_of_nhds).mpr h3
@@ -128,6 +174,12 @@ open Set
 variable {α 𝕜 : Type _} {f g : α → 𝕜} {S : Set α} [TopologicalSpace α] [TopologicalSpace 𝕜]
   [T1Space 𝕜]
 
+/- warning: is_preconnected.eq_one_or_eq_neg_one_of_sq_eq -> IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Ring.{u2} 𝕜] [_inst_7 : NoZeroDivisors.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 _inst_6)) (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 _inst_6)))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))))) S) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))))) S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => SubNegMonoid.toHasNeg.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (OfNat.mk.{max u1 u2} (α -> 𝕜) 1 (One.one.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => AddMonoidWithOne.toOne.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))))))))) S))
+but is expected to have type
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Ring.{u2} 𝕜] [_inst_7 : NoZeroDivisors.{u2} 𝕜 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))) (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.738 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (Ring.toSemiring.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (OfNat.ofNat.{max u2 u1} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))))) S) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6))))) S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 _inst_6)) (OfNat.ofNat.{max u1 u2} (α -> 𝕜) 1 (One.toOfNat1.{max u1 u2} (α -> 𝕜) (Pi.instOne.{u1, u2} α (fun (a._@.Mathlib.Data.Set.Function._hyg.1349 : α) => 𝕜) (fun (i : α) => NonAssocRing.toOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 _inst_6)))))) S))
+Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_one_or_eq_neg_one_of_sq_eq IsPreconnected.eq_one_or_eq_neg_one_of_sq_eqₓ'. -/
 /-- If `f` is a function `α → 𝕜` which is continuous on a preconnected set `S`, and
 `f ^ 2 = 1` on `S`, then either `f = 1` on `S`, or `f = -1` on `S`. -/
 theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors 𝕜]
@@ -159,6 +211,12 @@ theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors
   exact discrete_of_t1_of_finite
 #align is_preconnected.eq_one_or_eq_neg_one_of_sq_eq IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq
 
+/- warning: is_preconnected.eq_or_eq_neg_of_sq_eq -> IsPreconnected.eq_or_eq_neg_of_sq_eq is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))))) (DivInvMonoid.toHasInv.{u2} 𝕜 (DivisionRing.toDivInvMonoid.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) g (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) S) -> (forall {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))))))) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f g S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => SubNegMonoid.toHasNeg.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))) g) S))
+but is expected to have type
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))) (Field.toInv.{u2} 𝕜 _inst_6) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.872 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.875 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) g (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) S) -> (forall {x : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) -> (Or (Set.EqOn.{u1, u2} α 𝕜 f g S) (Set.EqOn.{u1, u2} α 𝕜 f (Neg.neg.{max u1 u2} (α -> 𝕜) (Pi.instNeg.{u1, u2} α (fun (ᾰ : α) => 𝕜) (fun (i : α) => Ring.toNeg.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))) g) S))
+Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_or_eq_neg_of_sq_eq IsPreconnected.eq_or_eq_neg_of_sq_eqₓ'. -/
 /-- If `f, g` are functions `α → 𝕜`, both continuous on a preconnected set `S`, with
 `f ^ 2 = g ^ 2` on `S`, and `g z ≠ 0` all `z ∈ S`, then either `f = g` or `f = -g` on
 `S`. -/
@@ -179,6 +237,12 @@ theorem IsPreconnected.eq_or_eq_neg_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 
     exact pow_ne_zero _ (hg_ne hx)
 #align is_preconnected.eq_or_eq_neg_of_sq_eq IsPreconnected.eq_or_eq_neg_of_sq_eq
 
+/- warning: is_preconnected.eq_of_sq_eq -> IsPreconnected.eq_of_sq_eq is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))))) (DivInvMonoid.toHasInv.{u2} 𝕜 (DivisionRing.toDivInvMonoid.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) f (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => 𝕜) (fun (i : α) => Monoid.Pow.{u2} 𝕜 (Ring.toMonoid.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))) g (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) S) -> (forall {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))))))))) -> (forall {y : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y S) -> (Eq.{succ u2} 𝕜 (f y) (g y)) -> (Set.EqOn.{u1, u2} α 𝕜 f g S))
+but is expected to have type
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} {f : α -> 𝕜} {g : α -> 𝕜} {S : Set.{u1} α} [_inst_3 : TopologicalSpace.{u1} α] [_inst_4 : TopologicalSpace.{u2} 𝕜] [_inst_5 : T1Space.{u2} 𝕜 _inst_4] [_inst_6 : Field.{u2} 𝕜] [_inst_7 : HasContinuousInv₀.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))) (Field.toInv.{u2} 𝕜 _inst_6) _inst_4] [_inst_8 : ContinuousMul.{u2} 𝕜 _inst_4 (NonUnitalNonAssocRing.toMul.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 _inst_6)))))], (IsPreconnected.{u1} α _inst_3 S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 f S) -> (ContinuousOn.{u1, u2} α 𝕜 _inst_3 _inst_4 g S) -> (Set.EqOn.{u1, u2} α 𝕜 (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.1060 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) f (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (HPow.hPow.{max u1 u2, 0, max u2 u1} (α -> 𝕜) Nat (α -> 𝕜) (instHPow.{max u1 u2, 0} (α -> 𝕜) Nat (Monoid.Pow.{max u1 u2} (α -> 𝕜) (Pi.monoid.{u1, u2} α (fun (a._@.Mathlib.Topology.Algebra.Field._hyg.1063 : α) => 𝕜) (fun (i : α) => MonoidWithZero.toMonoid.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) g (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) S) -> (forall {x : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x S) -> (Ne.{succ u2} 𝕜 (g x) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (Field.toSemifield.{u2} 𝕜 _inst_6)))))))) -> (forall {y : α}, (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y S) -> (Eq.{succ u2} 𝕜 (f y) (g y)) -> (Set.EqOn.{u1, u2} α 𝕜 f g S))
+Case conversion may be inaccurate. Consider using '#align is_preconnected.eq_of_sq_eq IsPreconnected.eq_of_sq_eqₓ'. -/
 /-- If `f, g` are functions `α → 𝕜`, both continuous on a preconnected set `S`, with
 `f ^ 2 = g ^ 2` on `S`, and `g z ≠ 0` all `z ∈ S`, then as soon as `f = g` holds at
 one point of `S` it holds for all points. -/
Diff
@@ -4,11 +4,11 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Scott Morrison
 
 ! This file was ported from Lean 3 source module topology.algebra.field
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit c10e724be91096453ee3db13862b9fb9a992fef2
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
-import Mathbin.Topology.Algebra.Ring
+import Mathbin.Topology.Algebra.Ring.Basic
 import Mathbin.Topology.Algebra.GroupWithZero
 import Mathbin.Topology.LocalExtr
 import Mathbin.FieldTheory.Subfield
@@ -22,60 +22,6 @@ non-zero element.
 -/
 
 
-namespace TopologicalRing
-
-open TopologicalSpace Function
-
-variable (R : Type _) [Semiring R]
-
-variable [TopologicalSpace R]
-
-/-- The induced topology on units of a topological semiring.
-This is not a global instance since other topologies could be relevant. Instead there is a class
-`induced_units` asserting that something equivalent to this construction holds. -/
-def topologicalSpaceUnits : TopologicalSpace Rˣ :=
-  induced (coe : Rˣ → R) ‹_›
-#align topological_ring.topological_space_units TopologicalRing.topologicalSpaceUnits
-
-/-- Asserts the topology on units is the induced topology.
-
- Note: this is not always the correct topology.
- Another good candidate is the subspace topology of $R \times R$,
- with the units embedded via $u \mapsto (u, u^{-1})$.
- These topologies are not (propositionally) equal in general. -/
-class InducedUnits [t : TopologicalSpace <| Rˣ] : Prop where
-  top_eq : t = induced (coe : Rˣ → R) ‹_›
-#align topological_ring.induced_units TopologicalRing.InducedUnits
-
-variable [TopologicalSpace <| Rˣ]
-
-theorem units_topology_eq [InducedUnits R] : ‹TopologicalSpace Rˣ› = induced (coe : Rˣ → R) ‹_› :=
-  InducedUnits.top_eq
-#align topological_ring.units_topology_eq TopologicalRing.units_topology_eq
-
-theorem InducedUnits.continuous_coe [InducedUnits R] : Continuous (coe : Rˣ → R) :=
-  (units_topology_eq R).symm ▸ continuous_induced_dom
-#align topological_ring.induced_units.continuous_coe TopologicalRing.InducedUnits.continuous_coe
-
-theorem units_embedding [InducedUnits R] : Embedding (coe : Rˣ → R) :=
-  { induced := units_topology_eq R
-    inj := fun x y h => Units.ext h }
-#align topological_ring.units_embedding TopologicalRing.units_embedding
-
-instance top_monoid_units [TopologicalSemiring R] [InducedUnits R] : ContinuousMul Rˣ :=
-  ⟨by
-    let mulR := fun p : R × R => p.1 * p.2
-    let mulRx := fun p : Rˣ × Rˣ => p.1 * p.2
-    have key : coe ∘ mulRx = mulR ∘ fun p => (p.1.val, p.2.val) := rfl
-    rw [continuous_iff_le_induced, units_topology_eq R, prod_induced_induced, induced_compose, key,
-      ← induced_compose]
-    apply induced_mono
-    rw [← continuous_iff_le_induced]
-    exact continuous_mul⟩
-#align topological_ring.top_monoid_units TopologicalRing.top_monoid_units
-
-end TopologicalRing
-
 variable {K : Type _} [DivisionRing K] [TopologicalSpace K]
 
 /-- Left-multiplication by a nonzero element of a topological division ring is proper, i.e.,
@@ -99,50 +45,6 @@ variable (K)
 class TopologicalDivisionRing extends TopologicalRing K, HasContinuousInv₀ K : Prop
 #align topological_division_ring TopologicalDivisionRing
 
-namespace TopologicalDivisionRing
-
-open Filter Set
-
-/-!
-In this section, we show that units of a topological division ring endowed with the
-induced topology form a topological group. These are not global instances because
-one could want another topology on units. To turn on this feature, use:
-
-```lean
-local attribute [instance]
-topological_semiring.topological_space_units topological_division_ring.units_top_group
-```
--/
-
-
-attribute [local instance] TopologicalRing.topologicalSpaceUnits
-
-instance (priority := 100) inducedUnits : TopologicalRing.InducedUnits K :=
-  ⟨rfl⟩
-#align topological_division_ring.induced_units TopologicalDivisionRing.inducedUnits
-
-variable [TopologicalDivisionRing K]
-
-theorem units_top_group : TopologicalGroup Kˣ :=
-  { TopologicalRing.top_monoid_units K with
-    continuous_inv := by
-      rw [continuous_iff_continuousAt]
-      intro x
-      rw [ContinuousAt, nhds_induced, nhds_induced, tendsto_iff_comap, ←
-        Function.Semiconj.filter_comap Units.val_inv_eq_inv_val _]
-      apply comap_mono
-      rw [← tendsto_iff_comap, Units.val_inv_eq_inv_val]
-      exact continuous_at_inv₀ x.ne_zero }
-#align topological_division_ring.units_top_group TopologicalDivisionRing.units_top_group
-
-attribute [local instance] units_top_group
-
-theorem continuous_units_inv : Continuous fun x : Kˣ => (↑x⁻¹ : K) :=
-  (TopologicalRing.InducedUnits.continuous_coe K).comp continuous_inv
-#align topological_division_ring.continuous_units_inv TopologicalDivisionRing.continuous_units_inv
-
-end TopologicalDivisionRing
-
 section Subfield
 
 variable {α : Type _} [Field α] [TopologicalSpace α] [TopologicalDivisionRing α]
@@ -153,16 +55,11 @@ def Subfield.topologicalClosure (K : Subfield α) : Subfield α :=
   {
     K.toSubring.topologicalClosure with
     carrier := closure (K : Set α)
-    inv_mem' := by
-      intro x hx
-      by_cases h : x = 0
-      · rwa [h, inv_zero, ← h]
-      · convert mem_closure_image (continuous_at_inv₀ h) hx using 2
-        ext x
-        constructor
-        · exact fun hx => ⟨x⁻¹, ⟨K.inv_mem hx, inv_inv x⟩⟩
-        · rintro ⟨y, ⟨hy, rfl⟩⟩
-          exact K.inv_mem hy }
+    inv_mem' := fun x hx => by
+      rcases eq_or_ne x 0 with (rfl | h)
+      · rwa [inv_zero]
+      · rw [← inv_coe_set, ← Set.image_inv]
+        exact mem_closure_image (continuous_at_inv₀ h) hx }
 #align subfield.topological_closure Subfield.topologicalClosure
 
 theorem Subfield.le_topologicalClosure (s : Subfield α) : s ≤ s.topologicalClosure :=

Changes in mathlib4

mathlib3
mathlib4
move(Topology/Order): Move anything that doesn't concern algebra (#11610)

Move files from Topology.Algebra.Order to Topology.Order when they do not contain any algebra. Also move Topology.LocalExtr to Topology.Order.LocalExtr.

According to git, the moves are:

  • Mathlib/Topology/{Algebra => }/Order/ExtendFrom.lean
  • Mathlib/Topology/{Algebra => }/Order/ExtrClosure.lean
  • Mathlib/Topology/{Algebra => }/Order/Filter.lean
  • Mathlib/Topology/{Algebra => }/Order/IntermediateValue.lean
  • Mathlib/Topology/{Algebra => }/Order/LeftRight.lean
  • Mathlib/Topology/{Algebra => }/Order/LeftRightLim.lean
  • Mathlib/Topology/{Algebra => }/Order/MonotoneContinuity.lean
  • Mathlib/Topology/{Algebra => }/Order/MonotoneConvergence.lean
  • Mathlib/Topology/{Algebra => }/Order/ProjIcc.lean
  • Mathlib/Topology/{Algebra => }/Order/T5.lean
  • Mathlib/Topology/{ => Order}/LocalExtr.lean
Diff
@@ -6,7 +6,7 @@ Authors: Patrick Massot, Scott Morrison
 import Mathlib.Algebra.GroupPower.Ring
 import Mathlib.Topology.Algebra.Ring.Basic
 import Mathlib.Topology.Algebra.GroupWithZero
-import Mathlib.Topology.LocalExtr
+import Mathlib.Topology.Order.LocalExtr
 import Mathlib.FieldTheory.Subfield
 
 #align_import topology.algebra.field from "leanprover-community/mathlib"@"c10e724be91096453ee3db13862b9fb9a992fef2"
chore: Rename mul-div cancellation lemmas (#11530)

Lemma names around cancellation of multiplication and division are a mess.

This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero lemma name, the Group lemma, the AddGroup lemma name).

| Statement | New name | Old name | |

Diff
@@ -96,9 +96,9 @@ def affineHomeomorph (a b : 𝕜) (h : a ≠ 0) : 𝕜 ≃ₜ 𝕜 where
   toFun x := a * x + b
   invFun y := (y - b) / a
   left_inv x := by
-    simp only [add_sub_cancel]
-    exact mul_div_cancel_left x h
-  right_inv y := by simp [mul_div_cancel' _ h]
+    simp only [add_sub_cancel_right]
+    exact mul_div_cancel_left₀ x h
+  right_inv y := by simp [mul_div_cancel₀ _ h]
 #align affine_homeomorph affineHomeomorph
 
 end affineHomeomorph
chore: classify todo porting notes (#11216)

Classifies by adding issue number #11215 to porting notes claiming "TODO".

Diff
@@ -55,7 +55,7 @@ def Subfield.topologicalClosure (K : Subfield α) : Subfield α :=
       dsimp only at hx ⊢
       rcases eq_or_ne x 0 with (rfl | h)
       · rwa [inv_zero]
-      · -- Porting note: todo: Lean fails to find InvMemClass instance
+      · -- Porting note (#11215): TODO: Lean fails to find InvMemClass instance
         rw [← @inv_coe_set α (Subfield α) _ _ SubfieldClass.toInvMemClass K, ← Set.image_inv]
         exact mem_closure_image (continuousAt_inv₀ h) hx }
 #align subfield.topological_closure Subfield.topologicalClosure
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -55,7 +55,7 @@ def Subfield.topologicalClosure (K : Subfield α) : Subfield α :=
       dsimp only at hx ⊢
       rcases eq_or_ne x 0 with (rfl | h)
       · rwa [inv_zero]
-      · -- porting note: todo: Lean fails to find InvMemClass instance
+      · -- Porting note: todo: Lean fails to find InvMemClass instance
         rw [← @inv_coe_set α (Subfield α) _ _ SubfieldClass.toInvMemClass K, ← Set.image_inv]
         exact mem_closure_image (continuousAt_inv₀ h) hx }
 #align subfield.topological_closure Subfield.topologicalClosure
chore: remove stream-of-consciousness uses of have, replace and suffices (#10640)

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

This follows on from #6964.

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

Diff
@@ -131,8 +131,8 @@ theorem IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq [Ring 𝕜] [NoZeroDivisors
     (hS : IsPreconnected S) (hf : ContinuousOn f S) (hsq : EqOn (f ^ 2) 1 S) :
     EqOn f 1 S ∨ EqOn f (-1) S := by
   have : DiscreteTopology ({1, -1} : Set 𝕜) := discrete_of_t1_of_finite
-  have hmaps : MapsTo f S {1, -1}
-  · simpa only [EqOn, Pi.one_apply, Pi.pow_apply, sq_eq_one_iff] using hsq
+  have hmaps : MapsTo f S {1, -1} := by
+    simpa only [EqOn, Pi.one_apply, Pi.pow_apply, sq_eq_one_iff] using hsq
   simpa using hS.eqOn_const_of_mapsTo hf hmaps
 #align is_preconnected.eq_one_or_eq_neg_one_of_sq_eq IsPreconnected.eq_one_or_eq_neg_one_of_sq_eq
 
feat: add lake exe shake to CI (#9751)

This checks files for unused imports. The output here is piped through gh-problem-matcher-wrap so that it will show up as annotations.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -3,6 +3,7 @@ Copyright (c) 2021 Patrick Massot. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Scott Morrison
 -/
+import Mathlib.Algebra.GroupPower.Ring
 import Mathlib.Topology.Algebra.Ring.Basic
 import Mathlib.Topology.Algebra.GroupWithZero
 import Mathlib.Topology.LocalExtr
chore: cleanup typo in filter_upwards (#7719)

mathport was forgetting a space in filter_upwards [...]with instead of filter_upwards [...] with.

Diff
@@ -110,7 +110,7 @@ open Topology
 
 theorem IsLocalMin.inv {f : α → β} {a : α} (h1 : IsLocalMin f a) (h2 : ∀ᶠ z in 𝓝 a, 0 < f z) :
     IsLocalMax f⁻¹ a := by
-  filter_upwards [h1, h2]with z h3 h4 using(inv_le_inv h4 h2.self_of_nhds).mpr h3
+  filter_upwards [h1, h2] with z h3 h4 using(inv_le_inv h4 h2.self_of_nhds).mpr h3
 #align is_local_min.inv IsLocalMin.inv
 
 end LocalExtr
@@ -162,4 +162,3 @@ theorem IsPreconnected.eq_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 𝕜] [Cont
 #align is_preconnected.eq_of_sq_eq IsPreconnected.eq_of_sq_eq
 
 end Preconnected
-
chore: banish Type _ and Sort _ (#6499)

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

This has nice performance benefits.

Diff
@@ -18,7 +18,7 @@ non-zero element.
 
 -/
 
-variable {K : Type _} [DivisionRing K] [TopologicalSpace K]
+variable {K : Type*} [DivisionRing K] [TopologicalSpace K]
 
 /-- Left-multiplication by a nonzero element of a topological division ring is proper, i.e.,
 inverse images of compact sets are compact. -/
@@ -43,7 +43,7 @@ class TopologicalDivisionRing extends TopologicalRing K, HasContinuousInv₀ K :
 
 section Subfield
 
-variable {α : Type _} [Field α] [TopologicalSpace α] [TopologicalDivisionRing α]
+variable {α : Type*} [Field α] [TopologicalSpace α] [TopologicalDivisionRing α]
 
 /-- The (topological-space) closure of a subfield of a topological field is
 itself a subfield. -/
@@ -84,7 +84,7 @@ happens to be a field is enough.
 -/
 
 
-variable {𝕜 : Type _} [Field 𝕜] [TopologicalSpace 𝕜] [TopologicalRing 𝕜]
+variable {𝕜 : Type*} [Field 𝕜] [TopologicalSpace 𝕜] [TopologicalRing 𝕜]
 
 /--
 The map `fun x => a * x + b`, as a homeomorphism from `𝕜` (a topological field) to itself,
@@ -104,7 +104,7 @@ end affineHomeomorph
 
 section LocalExtr
 
-variable {α β : Type _} [TopologicalSpace α] [LinearOrderedSemifield β] {a : α}
+variable {α β : Type*} [TopologicalSpace α] [LinearOrderedSemifield β] {a : α}
 
 open Topology
 
@@ -121,7 +121,7 @@ section Preconnected
 
 open Set
 
-variable {α 𝕜 : Type _} {f g : α → 𝕜} {S : Set α} [TopologicalSpace α] [TopologicalSpace 𝕜]
+variable {α 𝕜 : Type*} {f g : α → 𝕜} {S : Set α} [TopologicalSpace α] [TopologicalSpace 𝕜]
   [T1Space 𝕜]
 
 /-- If `f` is a function `α → 𝕜` which is continuous on a preconnected set `S`, and
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2021 Patrick Massot. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Scott Morrison
-
-! This file was ported from Lean 3 source module topology.algebra.field
-! leanprover-community/mathlib commit c10e724be91096453ee3db13862b9fb9a992fef2
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Topology.Algebra.Ring.Basic
 import Mathlib.Topology.Algebra.GroupWithZero
 import Mathlib.Topology.LocalExtr
 import Mathlib.FieldTheory.Subfield
 
+#align_import topology.algebra.field from "leanprover-community/mathlib"@"c10e724be91096453ee3db13862b9fb9a992fef2"
+
 /-!
 # Topological fields
 
feat: port Topology.Algebra.Field (#2617)

Dependencies 9 + 442

443 files ported (98.0%)
191797 lines ported (97.4%)
Show graph

The unported dependencies are