analysis.calculus.conformal.inner_productMathlib.Analysis.Calculus.Conformal.InnerProduct

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2021 Yourong Zang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yourong Zang
 -/
-import Mathbin.Analysis.Calculus.Conformal.NormedSpace
-import Mathbin.Analysis.InnerProductSpace.ConformalLinearMap
+import Analysis.Calculus.Conformal.NormedSpace
+import Analysis.InnerProductSpace.ConformalLinearMap
 
 #align_import analysis.calculus.conformal.inner_product from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2021 Yourong Zang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yourong Zang
-
-! This file was ported from Lean 3 source module analysis.calculus.conformal.inner_product
-! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Analysis.Calculus.Conformal.NormedSpace
 import Mathbin.Analysis.InnerProductSpace.ConformalLinearMap
 
+#align_import analysis.calculus.conformal.inner_product from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
+
 /-!
 # Conformal maps between inner product spaces
 
Diff
@@ -32,19 +32,23 @@ variable [InnerProductSpace ℝ E] [InnerProductSpace ℝ F]
 
 open scoped RealInnerProductSpace
 
+#print conformalAt_iff' /-
 /-- A real differentiable map `f` is conformal at point `x` if and only if its
     differential `fderiv ℝ f x` at that point scales every inner product by a positive scalar. -/
 theorem conformalAt_iff' {f : E → F} {x : E} :
     ConformalAt f x ↔ ∃ c : ℝ, 0 < c ∧ ∀ u v : E, ⟪fderiv ℝ f x u, fderiv ℝ f x v⟫ = c * ⟪u, v⟫ :=
   by rw [conformalAt_iff_isConformalMap_fderiv, isConformalMap_iff]
 #align conformal_at_iff' conformalAt_iff'
+-/
 
+#print conformalAt_iff /-
 /-- A real differentiable map `f` is conformal at point `x` if and only if its
     differential `f'` at that point scales every inner product by a positive scalar. -/
 theorem conformalAt_iff {f : E → F} {x : E} {f' : E →L[ℝ] F} (h : HasFDerivAt f f' x) :
     ConformalAt f x ↔ ∃ c : ℝ, 0 < c ∧ ∀ u v : E, ⟪f' u, f' v⟫ = c * ⟪u, v⟫ := by
   simp only [conformalAt_iff', h.fderiv]
 #align conformal_at_iff conformalAt_iff
+-/
 
 #print conformalFactorAt /-
 /-- The conformal factor of a conformal map at some point `x`. Some authors refer to this function
@@ -54,18 +58,24 @@ def conformalFactorAt {f : E → F} {x : E} (h : ConformalAt f x) : ℝ :=
 #align conformal_factor_at conformalFactorAt
 -/
 
+#print conformalFactorAt_pos /-
 theorem conformalFactorAt_pos {f : E → F} {x : E} (h : ConformalAt f x) : 0 < conformalFactorAt h :=
   (Classical.choose_spec <| conformalAt_iff'.mp h).1
 #align conformal_factor_at_pos conformalFactorAt_pos
+-/
 
+#print conformalFactorAt_inner_eq_mul_inner' /-
 theorem conformalFactorAt_inner_eq_mul_inner' {f : E → F} {x : E} (h : ConformalAt f x) (u v : E) :
     ⟪(fderiv ℝ f x) u, (fderiv ℝ f x) v⟫ = (conformalFactorAt h : ℝ) * ⟪u, v⟫ :=
   (Classical.choose_spec <| conformalAt_iff'.mp h).2 u v
 #align conformal_factor_at_inner_eq_mul_inner' conformalFactorAt_inner_eq_mul_inner'
+-/
 
+#print conformalFactorAt_inner_eq_mul_inner /-
 theorem conformalFactorAt_inner_eq_mul_inner {f : E → F} {x : E} {f' : E →L[ℝ] F}
     (h : HasFDerivAt f f' x) (H : ConformalAt f x) (u v : E) :
     ⟪f' u, f' v⟫ = (conformalFactorAt H : ℝ) * ⟪u, v⟫ :=
   H.DifferentiableAt.HasFDerivAt.unique h ▸ conformalFactorAt_inner_eq_mul_inner' H u v
 #align conformal_factor_at_inner_eq_mul_inner conformalFactorAt_inner_eq_mul_inner
+-/
 
Diff
@@ -30,7 +30,7 @@ variable [NormedAddCommGroup E] [NormedAddCommGroup F]
 
 variable [InnerProductSpace ℝ E] [InnerProductSpace ℝ F]
 
-open RealInnerProductSpace
+open scoped RealInnerProductSpace
 
 /-- A real differentiable map `f` is conformal at point `x` if and only if its
     differential `fderiv ℝ f x` at that point scales every inner product by a positive scalar. -/
Diff
@@ -32,9 +32,6 @@ variable [InnerProductSpace ℝ E] [InnerProductSpace ℝ F]
 
 open RealInnerProductSpace
 
-/- warning: conformal_at_iff' -> conformalAt_iff' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align conformal_at_iff' conformalAt_iff'ₓ'. -/
 /-- A real differentiable map `f` is conformal at point `x` if and only if its
     differential `fderiv ℝ f x` at that point scales every inner product by a positive scalar. -/
 theorem conformalAt_iff' {f : E → F} {x : E} :
@@ -42,9 +39,6 @@ theorem conformalAt_iff' {f : E → F} {x : E} :
   by rw [conformalAt_iff_isConformalMap_fderiv, isConformalMap_iff]
 #align conformal_at_iff' conformalAt_iff'
 
-/- warning: conformal_at_iff -> conformalAt_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align conformal_at_iff conformalAt_iffₓ'. -/
 /-- A real differentiable map `f` is conformal at point `x` if and only if its
     differential `f'` at that point scales every inner product by a positive scalar. -/
 theorem conformalAt_iff {f : E → F} {x : E} {f' : E →L[ℝ] F} (h : HasFDerivAt f f' x) :
@@ -60,27 +54,15 @@ def conformalFactorAt {f : E → F} {x : E} (h : ConformalAt f x) : ℝ :=
 #align conformal_factor_at conformalFactorAt
 -/
 
-/- warning: conformal_factor_at_pos -> conformalFactorAt_pos is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} {F : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u1} E] [_inst_2 : NormedAddCommGroup.{u2} F] [_inst_3 : InnerProductSpace.{0, u1} Real E Real.isROrC _inst_1] [_inst_4 : InnerProductSpace.{0, u2} Real F Real.isROrC _inst_2] {f : E -> F} {x : E} (h : ConformalAt.{u1, u2} E F _inst_1 _inst_2 (InnerProductSpace.toNormedSpace.{0, u1} Real E Real.isROrC _inst_1 _inst_3) (InnerProductSpace.toNormedSpace.{0, u2} Real F Real.isROrC _inst_2 _inst_4) f x), LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) (conformalFactorAt.{u1, u2} E F _inst_1 _inst_2 _inst_3 _inst_4 f x h)
-but is expected to have type
-  forall {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u2} E] [_inst_2 : NormedAddCommGroup.{u1} F] [_inst_3 : InnerProductSpace.{0, u2} Real E Real.isROrC _inst_1] [_inst_4 : InnerProductSpace.{0, u1} Real F Real.isROrC _inst_2] {f : E -> F} {x : E} (h : ConformalAt.{u2, u1} E F _inst_1 _inst_2 (InnerProductSpace.toNormedSpace.{0, u2} Real E Real.isROrC _inst_1 _inst_3) (InnerProductSpace.toNormedSpace.{0, u1} Real F Real.isROrC _inst_2 _inst_4) f x), LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) (conformalFactorAt.{u2, u1} E F _inst_1 _inst_2 _inst_3 _inst_4 f x h)
-Case conversion may be inaccurate. Consider using '#align conformal_factor_at_pos conformalFactorAt_posₓ'. -/
 theorem conformalFactorAt_pos {f : E → F} {x : E} (h : ConformalAt f x) : 0 < conformalFactorAt h :=
   (Classical.choose_spec <| conformalAt_iff'.mp h).1
 #align conformal_factor_at_pos conformalFactorAt_pos
 
-/- warning: conformal_factor_at_inner_eq_mul_inner' -> conformalFactorAt_inner_eq_mul_inner' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align conformal_factor_at_inner_eq_mul_inner' conformalFactorAt_inner_eq_mul_inner'ₓ'. -/
 theorem conformalFactorAt_inner_eq_mul_inner' {f : E → F} {x : E} (h : ConformalAt f x) (u v : E) :
     ⟪(fderiv ℝ f x) u, (fderiv ℝ f x) v⟫ = (conformalFactorAt h : ℝ) * ⟪u, v⟫ :=
   (Classical.choose_spec <| conformalAt_iff'.mp h).2 u v
 #align conformal_factor_at_inner_eq_mul_inner' conformalFactorAt_inner_eq_mul_inner'
 
-/- warning: conformal_factor_at_inner_eq_mul_inner -> conformalFactorAt_inner_eq_mul_inner is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align conformal_factor_at_inner_eq_mul_inner conformalFactorAt_inner_eq_mul_innerₓ'. -/
 theorem conformalFactorAt_inner_eq_mul_inner {f : E → F} {x : E} {f' : E →L[ℝ] F}
     (h : HasFDerivAt f f' x) (H : ConformalAt f x) (u v : E) :
     ⟪f' u, f' v⟫ = (conformalFactorAt H : ℝ) * ⟪u, v⟫ :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yourong Zang
 
 ! This file was ported from Lean 3 source module analysis.calculus.conformal.inner_product
-! leanprover-community/mathlib commit 46b633fd842bef9469441c0209906f6dddd2b4f5
+! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.Analysis.InnerProductSpace.ConformalLinearMap
 /-!
 # Conformal maps between inner product spaces
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 A function between inner product spaces is which has a derivative at `x`
 is conformal at `x` iff the derivative preserves inner products up to a scalar multiple.
 -/
@@ -29,6 +32,9 @@ variable [InnerProductSpace ℝ E] [InnerProductSpace ℝ F]
 
 open RealInnerProductSpace
 
+/- warning: conformal_at_iff' -> conformalAt_iff' is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align conformal_at_iff' conformalAt_iff'ₓ'. -/
 /-- A real differentiable map `f` is conformal at point `x` if and only if its
     differential `fderiv ℝ f x` at that point scales every inner product by a positive scalar. -/
 theorem conformalAt_iff' {f : E → F} {x : E} :
@@ -36,6 +42,9 @@ theorem conformalAt_iff' {f : E → F} {x : E} :
   by rw [conformalAt_iff_isConformalMap_fderiv, isConformalMap_iff]
 #align conformal_at_iff' conformalAt_iff'
 
+/- warning: conformal_at_iff -> conformalAt_iff is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align conformal_at_iff conformalAt_iffₓ'. -/
 /-- A real differentiable map `f` is conformal at point `x` if and only if its
     differential `f'` at that point scales every inner product by a positive scalar. -/
 theorem conformalAt_iff {f : E → F} {x : E} {f' : E →L[ℝ] F} (h : HasFDerivAt f f' x) :
@@ -43,21 +52,35 @@ theorem conformalAt_iff {f : E → F} {x : E} {f' : E →L[ℝ] F} (h : HasFDeri
   simp only [conformalAt_iff', h.fderiv]
 #align conformal_at_iff conformalAt_iff
 
+#print conformalFactorAt /-
 /-- The conformal factor of a conformal map at some point `x`. Some authors refer to this function
     as the characteristic function of the conformal map. -/
 def conformalFactorAt {f : E → F} {x : E} (h : ConformalAt f x) : ℝ :=
   Classical.choose (conformalAt_iff'.mp h)
 #align conformal_factor_at conformalFactorAt
+-/
 
+/- warning: conformal_factor_at_pos -> conformalFactorAt_pos is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} {F : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u1} E] [_inst_2 : NormedAddCommGroup.{u2} F] [_inst_3 : InnerProductSpace.{0, u1} Real E Real.isROrC _inst_1] [_inst_4 : InnerProductSpace.{0, u2} Real F Real.isROrC _inst_2] {f : E -> F} {x : E} (h : ConformalAt.{u1, u2} E F _inst_1 _inst_2 (InnerProductSpace.toNormedSpace.{0, u1} Real E Real.isROrC _inst_1 _inst_3) (InnerProductSpace.toNormedSpace.{0, u2} Real F Real.isROrC _inst_2 _inst_4) f x), LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) (conformalFactorAt.{u1, u2} E F _inst_1 _inst_2 _inst_3 _inst_4 f x h)
+but is expected to have type
+  forall {E : Type.{u2}} {F : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u2} E] [_inst_2 : NormedAddCommGroup.{u1} F] [_inst_3 : InnerProductSpace.{0, u2} Real E Real.isROrC _inst_1] [_inst_4 : InnerProductSpace.{0, u1} Real F Real.isROrC _inst_2] {f : E -> F} {x : E} (h : ConformalAt.{u2, u1} E F _inst_1 _inst_2 (InnerProductSpace.toNormedSpace.{0, u2} Real E Real.isROrC _inst_1 _inst_3) (InnerProductSpace.toNormedSpace.{0, u1} Real F Real.isROrC _inst_2 _inst_4) f x), LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) (conformalFactorAt.{u2, u1} E F _inst_1 _inst_2 _inst_3 _inst_4 f x h)
+Case conversion may be inaccurate. Consider using '#align conformal_factor_at_pos conformalFactorAt_posₓ'. -/
 theorem conformalFactorAt_pos {f : E → F} {x : E} (h : ConformalAt f x) : 0 < conformalFactorAt h :=
   (Classical.choose_spec <| conformalAt_iff'.mp h).1
 #align conformal_factor_at_pos conformalFactorAt_pos
 
+/- warning: conformal_factor_at_inner_eq_mul_inner' -> conformalFactorAt_inner_eq_mul_inner' is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align conformal_factor_at_inner_eq_mul_inner' conformalFactorAt_inner_eq_mul_inner'ₓ'. -/
 theorem conformalFactorAt_inner_eq_mul_inner' {f : E → F} {x : E} (h : ConformalAt f x) (u v : E) :
     ⟪(fderiv ℝ f x) u, (fderiv ℝ f x) v⟫ = (conformalFactorAt h : ℝ) * ⟪u, v⟫ :=
   (Classical.choose_spec <| conformalAt_iff'.mp h).2 u v
 #align conformal_factor_at_inner_eq_mul_inner' conformalFactorAt_inner_eq_mul_inner'
 
+/- warning: conformal_factor_at_inner_eq_mul_inner -> conformalFactorAt_inner_eq_mul_inner is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align conformal_factor_at_inner_eq_mul_inner conformalFactorAt_inner_eq_mul_innerₓ'. -/
 theorem conformalFactorAt_inner_eq_mul_inner {f : E → F} {x : E} {f' : E →L[ℝ] F}
     (h : HasFDerivAt f f' x) (H : ConformalAt f x) (u v : E) :
     ⟪f' u, f' v⟫ = (conformalFactorAt H : ℝ) * ⟪u, v⟫ :=
Diff
@@ -38,7 +38,7 @@ theorem conformalAt_iff' {f : E → F} {x : E} :
 
 /-- A real differentiable map `f` is conformal at point `x` if and only if its
     differential `f'` at that point scales every inner product by a positive scalar. -/
-theorem conformalAt_iff {f : E → F} {x : E} {f' : E →L[ℝ] F} (h : HasFderivAt f f' x) :
+theorem conformalAt_iff {f : E → F} {x : E} {f' : E →L[ℝ] F} (h : HasFDerivAt f f' x) :
     ConformalAt f x ↔ ∃ c : ℝ, 0 < c ∧ ∀ u v : E, ⟪f' u, f' v⟫ = c * ⟪u, v⟫ := by
   simp only [conformalAt_iff', h.fderiv]
 #align conformal_at_iff conformalAt_iff
@@ -59,8 +59,8 @@ theorem conformalFactorAt_inner_eq_mul_inner' {f : E → F} {x : E} (h : Conform
 #align conformal_factor_at_inner_eq_mul_inner' conformalFactorAt_inner_eq_mul_inner'
 
 theorem conformalFactorAt_inner_eq_mul_inner {f : E → F} {x : E} {f' : E →L[ℝ] F}
-    (h : HasFderivAt f f' x) (H : ConformalAt f x) (u v : E) :
+    (h : HasFDerivAt f f' x) (H : ConformalAt f x) (u v : E) :
     ⟪f' u, f' v⟫ = (conformalFactorAt H : ℝ) * ⟪u, v⟫ :=
-  H.DifferentiableAt.HasFderivAt.unique h ▸ conformalFactorAt_inner_eq_mul_inner' H u v
+  H.DifferentiableAt.HasFDerivAt.unique h ▸ conformalFactorAt_inner_eq_mul_inner' H u v
 #align conformal_factor_at_inner_eq_mul_inner conformalFactorAt_inner_eq_mul_inner
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yourong Zang
 
 ! This file was ported from Lean 3 source module analysis.calculus.conformal.inner_product
-! leanprover-community/mathlib commit 51ad06e5a86554fc42398b6f90b021685ce36665
+! leanprover-community/mathlib commit 46b633fd842bef9469441c0209906f6dddd2b4f5
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -21,7 +21,11 @@ is conformal at `x` iff the derivative preserves inner products up to a scalar m
 
 noncomputable section
 
-variable {E F : Type _} [InnerProductSpace ℝ E] [InnerProductSpace ℝ F]
+variable {E F : Type _}
+
+variable [NormedAddCommGroup E] [NormedAddCommGroup F]
+
+variable [InnerProductSpace ℝ E] [InnerProductSpace ℝ F]
 
 open RealInnerProductSpace
 

Changes in mathlib4

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

Empty lines were removed by executing the following Python script twice

import os
import re


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

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

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

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -19,9 +19,7 @@ is conformal at `x` iff the derivative preserves inner products up to a scalar m
 noncomputable section
 
 variable {E F : Type*}
-
 variable [NormedAddCommGroup E] [NormedAddCommGroup F]
-
 variable [InnerProductSpace ℝ E] [InnerProductSpace ℝ F]
 
 open RealInnerProductSpace
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 @@ is conformal at `x` iff the derivative preserves inner products up to a scalar m
 
 noncomputable section
 
-variable {E F : Type _}
+variable {E F : Type*}
 
 variable [NormedAddCommGroup E] [NormedAddCommGroup F]
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2021 Yourong Zang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yourong Zang
-
-! This file was ported from Lean 3 source module analysis.calculus.conformal.inner_product
-! leanprover-community/mathlib commit 46b633fd842bef9469441c0209906f6dddd2b4f5
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.Calculus.Conformal.NormedSpace
 import Mathlib.Analysis.InnerProductSpace.ConformalLinearMap
 
+#align_import analysis.calculus.conformal.inner_product from "leanprover-community/mathlib"@"46b633fd842bef9469441c0209906f6dddd2b4f5"
+
 /-!
 # Conformal maps between inner product spaces
 
feat: port Analysis.Calculus.Conformal.InnerProduct (#4389)

Dependencies 12 + 788

789 files ported (98.5%)
351204 lines ported (98.4%)
Show graph

The unported dependencies are

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