Documentation

Mathlib.Analysis.Calculus.ImplicitFunction.Bivariate

Implicit function theorem — curried bivariate #

This specialization of the implicit function theorem applies to a curried bivariate function f : E₁ → E₂ → F and assumes continuity of both its partial derivatives at u : E₁ × E₂ as well as invertibility of f₂ u.1 u.2 : E₂ →L[𝕜] F its partial derivative with respect to the second argument.

It proves the existence of ψ : E₁ → E₂ such that for v in a neighbourhood of u we have f v.1 v.2 = f u.1 u.2 ↔ ψ v.1 = v.2. This is implicitFunctionOfBivariate. A formula for its first derivative follows.

A similar specialization is made to an uncurried bivariate function by HasStrictFDerivAt.implicitFunctionOfProdDomain in a sister file.

Tags #

implicit function

noncomputable def implicitFunctionOfBivariate {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] [IsRCLikeNormedField 𝕜] {E₁ : Type u_2} [NormedAddCommGroup E₁] [NormedSpace 𝕜 E₁] [CompleteSpace E₁] {E₂ : Type u_3} [NormedAddCommGroup E₂] [NormedSpace 𝕜 E₂] [CompleteSpace E₂] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace 𝕜 F] [CompleteSpace F] {u : E₁ × E₂} {f : E₁E₂F} {f₁ : E₁E₂E₁ →L[𝕜] F} {f₂ : E₁E₂E₂ →L[𝕜] F} (df₁ : ∀ᶠ (v : E₁ × E₂) in nhds u, HasFDerivAt (fun (x : E₁) => f x v.2) (f₁ v.1 v.2) v.1) (df₂ : ∀ᶠ (v : E₁ × E₂) in nhds u, HasFDerivAt (fun (x : E₂) => f v.1 x) (f₂ v.1 v.2) v.2) (cf₁ : ContinuousAt (f₁) u) (cf₂ : ContinuousAt (f₂) u) (if₂u : (f₂ u.1 u.2).IsInvertible) :
E₁E₂

Implicit function ψ : E₁ → E₂ associated with the (curried) bivariate function f : E₁ → E₂ → F at u : E₁ × E₂.

Equations
Instances For
    theorem implicitFunctionOfBivariate_def {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] [IsRCLikeNormedField 𝕜] {E₁ : Type u_2} [NormedAddCommGroup E₁] [NormedSpace 𝕜 E₁] [CompleteSpace E₁] {E₂ : Type u_3} [NormedAddCommGroup E₂] [NormedSpace 𝕜 E₂] [CompleteSpace E₂] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace 𝕜 F] [CompleteSpace F] {u : E₁ × E₂} {f : E₁E₂F} {f₁ : E₁E₂E₁ →L[𝕜] F} {f₂ : E₁E₂E₂ →L[𝕜] F} (df₁ : ∀ᶠ (v : E₁ × E₂) in nhds u, HasFDerivAt (fun (x : E₁) => f x v.2) (f₁ v.1 v.2) v.1) (df₂ : ∀ᶠ (v : E₁ × E₂) in nhds u, HasFDerivAt (fun (x : E₂) => f v.1 x) (f₂ v.1 v.2) v.2) (cf₁ : ContinuousAt (f₁) u) (cf₂ : ContinuousAt (f₂) u) (if₂u : (f₂ u.1 u.2).IsInvertible) :
    implicitFunctionOfBivariate df₁ df₂ cf₁ cf₂ if₂u = .implicitFunctionOfProdDomain
    theorem tendsto_implicitFunctionOfBivariate {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] [IsRCLikeNormedField 𝕜] {E₁ : Type u_2} [NormedAddCommGroup E₁] [NormedSpace 𝕜 E₁] [CompleteSpace E₁] {E₂ : Type u_3} [NormedAddCommGroup E₂] [NormedSpace 𝕜 E₂] [CompleteSpace E₂] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace 𝕜 F] [CompleteSpace F] {u : E₁ × E₂} {f : E₁E₂F} {f₁ : E₁E₂E₁ →L[𝕜] F} {f₂ : E₁E₂E₂ →L[𝕜] F} (df₁ : ∀ᶠ (v : E₁ × E₂) in nhds u, HasFDerivAt (fun (x : E₁) => f x v.2) (f₁ v.1 v.2) v.1) (df₂ : ∀ᶠ (v : E₁ × E₂) in nhds u, HasFDerivAt (fun (x : E₂) => f v.1 x) (f₂ v.1 v.2) v.2) (cf₁ : ContinuousAt (f₁) u) (cf₂ : ContinuousAt (f₂) u) (if₂u : (f₂ u.1 u.2).IsInvertible) :
    Filter.Tendsto (implicitFunctionOfBivariate df₁ df₂ cf₁ cf₂ if₂u) (nhds u.1) (nhds u.2)
    theorem eventually_apply_implicitFunctionOfBivariate {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] [IsRCLikeNormedField 𝕜] {E₁ : Type u_2} [NormedAddCommGroup E₁] [NormedSpace 𝕜 E₁] [CompleteSpace E₁] {E₂ : Type u_3} [NormedAddCommGroup E₂] [NormedSpace 𝕜 E₂] [CompleteSpace E₂] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace 𝕜 F] [CompleteSpace F] {u : E₁ × E₂} {f : E₁E₂F} {f₁ : E₁E₂E₁ →L[𝕜] F} {f₂ : E₁E₂E₂ →L[𝕜] F} (df₁ : ∀ᶠ (v : E₁ × E₂) in nhds u, HasFDerivAt (fun (x : E₁) => f x v.2) (f₁ v.1 v.2) v.1) (df₂ : ∀ᶠ (v : E₁ × E₂) in nhds u, HasFDerivAt (fun (x : E₂) => f v.1 x) (f₂ v.1 v.2) v.2) (cf₁ : ContinuousAt (f₁) u) (cf₂ : ContinuousAt (f₂) u) (if₂u : (f₂ u.1 u.2).IsInvertible) :
    ∀ᶠ (x : E₁) in nhds u.1, f x (implicitFunctionOfBivariate df₁ df₂ cf₁ cf₂ if₂u x) = f u.1 u.2
    theorem eventually_apply_eq_iff_implicitFunctionOfBivariate {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] [IsRCLikeNormedField 𝕜] {E₁ : Type u_2} [NormedAddCommGroup E₁] [NormedSpace 𝕜 E₁] [CompleteSpace E₁] {E₂ : Type u_3} [NormedAddCommGroup E₂] [NormedSpace 𝕜 E₂] [CompleteSpace E₂] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace 𝕜 F] [CompleteSpace F] {u : E₁ × E₂} {f : E₁E₂F} {f₁ : E₁E₂E₁ →L[𝕜] F} {f₂ : E₁E₂E₂ →L[𝕜] F} (df₁ : ∀ᶠ (v : E₁ × E₂) in nhds u, HasFDerivAt (fun (x : E₁) => f x v.2) (f₁ v.1 v.2) v.1) (df₂ : ∀ᶠ (v : E₁ × E₂) in nhds u, HasFDerivAt (fun (x : E₂) => f v.1 x) (f₂ v.1 v.2) v.2) (cf₁ : ContinuousAt (f₁) u) (cf₂ : ContinuousAt (f₂) u) (if₂u : (f₂ u.1 u.2).IsInvertible) :
    ∀ᶠ (v : E₁ × E₂) in nhds u, f v.1 v.2 = f u.1 u.2 implicitFunctionOfBivariate df₁ df₂ cf₁ cf₂ if₂u v.1 = v.2
    theorem hasStrictFDerivAt_implicitFunctionOfBivariate {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] [IsRCLikeNormedField 𝕜] {E₁ : Type u_2} [NormedAddCommGroup E₁] [NormedSpace 𝕜 E₁] [CompleteSpace E₁] {E₂ : Type u_3} [NormedAddCommGroup E₂] [NormedSpace 𝕜 E₂] [CompleteSpace E₂] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace 𝕜 F] [CompleteSpace F] {u : E₁ × E₂} {f : E₁E₂F} {f₁ : E₁E₂E₁ →L[𝕜] F} {f₂ : E₁E₂E₂ →L[𝕜] F} (df₁ : ∀ᶠ (v : E₁ × E₂) in nhds u, HasFDerivAt (fun (x : E₁) => f x v.2) (f₁ v.1 v.2) v.1) (df₂ : ∀ᶠ (v : E₁ × E₂) in nhds u, HasFDerivAt (fun (x : E₂) => f v.1 x) (f₂ v.1 v.2) v.2) (cf₁ : ContinuousAt (f₁) u) (cf₂ : ContinuousAt (f₂) u) (if₂u : (f₂ u.1 u.2).IsInvertible) :
    HasStrictFDerivAt (implicitFunctionOfBivariate df₁ df₂ cf₁ cf₂ if₂u) (-(f₂ u.1 u.2).inverse.comp (f₁ u.1 u.2)) u.1