Module
Mathlib.Analysis.Calculus.ImplicitFunction
npa-mathlib
Packages
2
Module
63
Theorems
750
Declarations
1016
Untrusted sidecar
Source text and display overlays are presentation metadata. The signed certificate and checker result are the trusted evidence.
Theorems
33
Definitions
11
Inductive types
0
Axioms
1
Declarations
ImplicitTargetPoint
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
ImplicitFunction
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
ImplicitGraphPoint
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
ImplicitTargetDerivativeMap
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
ImplicitFunctionDerivativeChainMap
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
ImplicitFunctionDerivativeFormulaMap
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
ImplicitPhiLocalInverseLaws
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
ImplicitFunctionExtractionArgs
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
ImplicitFunctionDerivativeArgs
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
ImplicitFunctionTheoremEvidence
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
ImplicitFunctionDerivativeEvidence
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_target_point_def
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_def
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_graph_point_def
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_target_derivative_map_def
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_derivative_chain_map_def
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_derivative_formula_map_def
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_extraction_local_inverse_from_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_extraction_target_mem_from_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_value_mem_from_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_zero_from_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_unique_from_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_derivative_extraction_args_from_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_target_derivative_from_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_partial_x_from_derivative_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_partial_y_from_derivative_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_dy_iso_from_derivative_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_phi_inverse_derivative_from_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_snd_projection_derivative_from_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_derivative_from_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_differentiable_from_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_derivative_formula_from_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_theorem_args_from_evidence
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_theorem_target_mem_from_evidence
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_theorem_value_mem_from_evidence
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_theorem_zero_from_evidence
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_theorem_unique_from_evidence
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_theorem
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_derivative_evidence_args
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_derivative_evidence_basic
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_derivative_evidence_differentiable
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_derivative_evidence_derivative
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_derivative_evidence_formula
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
implicit_function_derivative_theorem
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (...
Eq.rec
Hashes
- source
- sha256:4ad9b6a6a100e2b7964d11e3aec36c1518a3312cf8ce30cebbcf89140cf26ab0
- certificateFile
- sha256:e9c8e022da767c64a68a7d325d7973c716017978c833886cc4e568fe3afd578a
- export
- sha256:efc45f11663333dc28aa373c19bc943dd353aad33025b241eafe73dde91475fc
- axiomReport
- sha256:0d1690c6eba73dbd259c7cfc6f42702c48cb349a31bca7078cd2a76bb5ac6fcf
- certificate
- sha256:0b285ded8c84adf179a8d5e27831eadd240f81b1b0711e964f77438bc2b17784
Source
import Std.Logic.Eq
import Mathlib.Logic.EqReasoning
import Mathlib.LinearAlgebra.VectorSpace
import Mathlib.Analysis.NormedSpace.Basic
import Mathlib.Analysis.LinearMap
import Mathlib.Analysis.Calculus.Derivative
import Mathlib.Analysis.Calculus.ImplicitFunction.Phi
def ImplicitTargetPoint.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x : X), XZ :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x => pairXZ x zzero
def ImplicitFunction.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (x : X), Y :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun x => sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x))
def ImplicitGraphPoint.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (x : X), XY :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun x => pairXY x (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)
def ImplicitTargetDerivativeMap.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (h : X), XZ :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun h => pairXZ h zzero
def ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (x : X), forall (h : X), Y :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dPhi_inv_at => fun x => fun h => sndXY (dPhi_inv_at x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder h))
def ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (x : X), forall (h : X), Y :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy_inv => fun x => fun h => yneg (dFy_inv x (dFx x h))
def ImplicitPhiLocalInverseLaws.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), Prop :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => forall (P : Prop), forall (mk : forall (inverse_maps_law : forall (target : XZ), forall (target_mem : xz_domain target), xy_domain (phi_inv target)), forall (left_inverse_law : forall (target : XZ), forall (target_mem : xz_domain target), @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (phi_inv target)) target), forall (unique_phi_law : forall (point : XY), forall (target : XZ), forall (point_mem : xy_domain point), forall (target_mem : xz_domain target), forall (image_eq : @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y point) target), @Eq.{p} XY point (phi_inv target)), P), P
def ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), Prop :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => forall (P : Prop), forall (mk : forall (local_inverse_law : @ImplicitPhiLocalInverseLaws.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (target_mem_law : forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), forall (value_mem_projection_law : forall (point : XY), forall (point_mem : xy_domain point), y_domain (sndXY point)), forall (zero_projection_law : forall (x : X), forall (hx : x_domain x), forall (target_mem : xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), forall (left_inverse_eq : @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x))) (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero), forall (zero_to_phi_image_law : forall (x : X), forall (y : Y), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (pairXY x y)) (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), forall (snd_pair_law : forall (x : X), forall (y : Y), @Eq.{w} Y (sndXY (pairXY x y)) y), P), P
def ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), Prop :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => forall (P : Prop), forall (mk : forall (extraction_args_law : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (target_derivative_law : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,q} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm XZ xzzero xzadd xzneg xzsmul xznorm (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y) x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) target_bound target_remainder), forall (partial_x_law : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Z zzero zadd zneg zsmul znorm (@PartialXMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) x (dFx x) partial_x_bound partial_x_remainder), forall (partial_y_law : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (@PartialYMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F x) (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (dFy x) partial_y_bound partial_y_remainder), forall (dy_iso_law : forall (x : X), forall (hx : x_domain x), @LinearIsoArgs.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (dFy x) (dFy_inv x) dy_op_norm dy_inv_op_norm), forall (phi_inverse_derivative_law : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,q,p} Scalar zero one add neg sub mul le_rel XZ xzzero xzadd xzneg xzsmul xznorm XY xyzero xyadd xyneg xysmul xynorm phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (dPhi_inv_at x) phi_inverse_bound phi_inverse_remainder), forall (snd_projection_derivative_law : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,p,w} Scalar zero one add neg sub mul le_rel XY xyzero xyadd xyneg xysmul xynorm Y yzero yadd yneg ysmul ynorm sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) sndXY snd_bound snd_remainder), forall (chain_derivative_law : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder), forall (formula_law : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)), P), P
def ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), Prop :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => forall (P : Prop), forall (mk : forall (extraction_args_law : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (target_mem_law : forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), forall (value_mem_law : forall (x : X), forall (hx : x_domain x), y_domain (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)), forall (zero_law : forall (x : X), forall (hx : x_domain x), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero), forall (unique_law : forall (x : X), forall (hx : x_domain x), forall (y : Y), forall (candidate_mem : xy_domain (pairXY x y)), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{w} Y y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)), P), P
def ImplicitFunctionDerivativeEvidence.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), Prop :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => forall (P : Prop), forall (mk : forall (derivative_args_law : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (basic_evidence_law : @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (differentiability_law : forall (x : X), forall (hx : x_domain x), @FrechetDifferentiableAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x), forall (derivative_law : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder), forall (formula_law : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)), P), P
theorem implicit_target_point_def.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x : X), @Eq.{q} XZ (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (pairXZ x zzero) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x => @Eq.refl.{q} XZ (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)
theorem implicit_function_def.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (x : X), @Eq.{w} Y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x))) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun x => @Eq.refl.{w} Y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)
theorem implicit_graph_point_def.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (x : X), @Eq.{p} XY (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (pairXY x (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun x => @Eq.refl.{p} XY (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)
theorem implicit_target_derivative_map_def.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (h : X), @Eq.{q} XZ (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder h) (pairXZ h zzero) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun h => @Eq.refl.{q} XZ (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder h)
theorem implicit_function_derivative_chain_map_def.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (x : X), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (sndXY (dPhi_inv_at x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder h))) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dPhi_inv_at => fun x => fun h => @Eq.refl.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h)
theorem implicit_function_derivative_formula_map_def.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (x : X), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h) (yneg (dFy_inv x (dFx x h))) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy_inv => fun x => fun h => @Eq.refl.{w} Y (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)
theorem implicit_extraction_local_inverse_from_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (args : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), @ImplicitPhiLocalInverseLaws.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun args => args (@ImplicitPhiLocalInverseLaws.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) (fun (local_inverse_arg : @ImplicitPhiLocalInverseLaws.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_mem_arg : forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (value_mem_projection_arg : forall (point : XY), forall (point_mem : xy_domain point), y_domain (sndXY point)) => fun (zero_projection_arg : forall (x : X), forall (hx : x_domain x), forall (target_mem : xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), forall (left_inverse_eq : @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x))) (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero) => fun (zero_to_phi_image_arg : forall (x : X), forall (y : Y), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (pairXY x y)) (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (snd_pair_arg : forall (x : X), forall (y : Y), @Eq.{w} Y (sndXY (pairXY x y)) y) => local_inverse_arg)
theorem implicit_extraction_target_mem_from_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (args : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun args => fun x => fun hx => args (xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) (fun (local_inverse_arg : @ImplicitPhiLocalInverseLaws.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_mem_arg : forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (value_mem_projection_arg : forall (point : XY), forall (point_mem : xy_domain point), y_domain (sndXY point)) => fun (zero_projection_arg : forall (x : X), forall (hx : x_domain x), forall (target_mem : xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), forall (left_inverse_eq : @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x))) (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero) => fun (zero_to_phi_image_arg : forall (x : X), forall (y : Y), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (pairXY x y)) (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (snd_pair_arg : forall (x : X), forall (y : Y), @Eq.{w} Y (sndXY (pairXY x y)) y) => target_mem_arg x hx)
theorem implicit_function_value_mem_from_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (args : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (x : X), forall (hx : x_domain x), y_domain (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun args => fun x => fun hx => args (y_domain (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) (fun (local_inverse_arg : @ImplicitPhiLocalInverseLaws.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_mem_arg : forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (value_mem_projection_arg : forall (point : XY), forall (point_mem : xy_domain point), y_domain (sndXY point)) => fun (zero_projection_arg : forall (x : X), forall (hx : x_domain x), forall (target_mem : xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), forall (left_inverse_eq : @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x))) (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero) => fun (zero_to_phi_image_arg : forall (x : X), forall (y : Y), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (pairXY x y)) (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (snd_pair_arg : forall (x : X), forall (y : Y), @Eq.{w} Y (sndXY (pairXY x y)) y) => local_inverse_arg (y_domain (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) (fun (inverse_maps_arg : forall (target : XZ), forall (target_mem : xz_domain target), xy_domain (phi_inv target)) => fun (left_inverse_arg : forall (target : XZ), forall (target_mem : xz_domain target), @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (phi_inv target)) target) => fun (unique_phi_arg : forall (point : XY), forall (target : XZ), forall (point_mem : xy_domain point), forall (target_mem : xz_domain target), forall (image_eq : @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y point) target), @Eq.{p} XY point (phi_inv target)) => value_mem_projection_arg (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) (inverse_maps_arg (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (target_mem_arg x hx))))
theorem implicit_function_zero_from_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (args : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (x : X), forall (hx : x_domain x), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun args => fun x => fun hx => args (@Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero) (fun (local_inverse_arg : @ImplicitPhiLocalInverseLaws.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_mem_arg : forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (value_mem_projection_arg : forall (point : XY), forall (point_mem : xy_domain point), y_domain (sndXY point)) => fun (zero_projection_arg : forall (x : X), forall (hx : x_domain x), forall (target_mem : xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), forall (left_inverse_eq : @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x))) (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero) => fun (zero_to_phi_image_arg : forall (x : X), forall (y : Y), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (pairXY x y)) (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (snd_pair_arg : forall (x : X), forall (y : Y), @Eq.{w} Y (sndXY (pairXY x y)) y) => local_inverse_arg (@Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero) (fun (inverse_maps_arg : forall (target : XZ), forall (target_mem : xz_domain target), xy_domain (phi_inv target)) => fun (left_inverse_arg : forall (target : XZ), forall (target_mem : xz_domain target), @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (phi_inv target)) target) => fun (unique_phi_arg : forall (point : XY), forall (target : XZ), forall (point_mem : xy_domain point), forall (target_mem : xz_domain target), forall (image_eq : @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y point) target), @Eq.{p} XY point (phi_inv target)) => zero_projection_arg x hx (target_mem_arg x hx) (left_inverse_arg (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (target_mem_arg x hx))))
theorem implicit_function_unique_from_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (args : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (x : X), forall (hx : x_domain x), forall (y : Y), forall (candidate_mem : xy_domain (pairXY x y)), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{w} Y y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun args => fun x => fun hx => fun y => fun candidate_mem => fun zero_eq => args (@Eq.{w} Y y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) (fun (local_inverse_arg : @ImplicitPhiLocalInverseLaws.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_mem_arg : forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (value_mem_projection_arg : forall (point : XY), forall (point_mem : xy_domain point), y_domain (sndXY point)) => fun (zero_projection_arg : forall (x : X), forall (hx : x_domain x), forall (target_mem : xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), forall (left_inverse_eq : @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x))) (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero) => fun (zero_to_phi_image_arg : forall (x : X), forall (y : Y), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (pairXY x y)) (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (snd_pair_arg : forall (x : X), forall (y : Y), @Eq.{w} Y (sndXY (pairXY x y)) y) => local_inverse_arg (@Eq.{w} Y y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) (fun (inverse_maps_arg : forall (target : XZ), forall (target_mem : xz_domain target), xy_domain (phi_inv target)) => fun (left_inverse_arg : forall (target : XZ), forall (target_mem : xz_domain target), @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y (phi_inv target)) target) => fun (unique_phi_arg : forall (point : XY), forall (target : XZ), forall (point_mem : xy_domain point), forall (target_mem : xz_domain target), forall (image_eq : @Eq.{q} XZ (@ImplicitPhi.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y point) target), @Eq.{p} XY point (phi_inv target)) => @eq_trans.{w} Y y (sndXY (pairXY x y)) (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (@eq_symm.{w} Y (sndXY (pairXY x y)) y (snd_pair_arg x y)) (@eq_congr_arg.{p,w} XY Y sndXY (pairXY x y) (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) (unique_phi_arg (pairXY x y) (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) candidate_mem (target_mem_arg x hx) (zero_to_phi_image_arg x y zero_eq)))))
theorem implicit_function_derivative_extraction_args_from_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (args : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun args => args (@ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,q} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm XZ xzzero xzadd xzneg xzsmul xznorm (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y) x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) target_bound target_remainder) => fun (partial_x_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Z zzero zadd zneg zsmul znorm (@PartialXMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) x (dFx x) partial_x_bound partial_x_remainder) => fun (partial_y_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (@PartialYMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F x) (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (dFy x) partial_y_bound partial_y_remainder) => fun (dy_iso_arg : forall (x : X), forall (hx : x_domain x), @LinearIsoArgs.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (dFy x) (dFy_inv x) dy_op_norm dy_inv_op_norm) => fun (phi_inverse_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,q,p} Scalar zero one add neg sub mul le_rel XZ xzzero xzadd xzneg xzsmul xznorm XY xyzero xyadd xyneg xysmul xynorm phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (dPhi_inv_at x) phi_inverse_bound phi_inverse_remainder) => fun (snd_projection_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,p,w} Scalar zero one add neg sub mul le_rel XY xyzero xyadd xyneg xysmul xynorm Y yzero yadd yneg ysmul ynorm sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) sndXY snd_bound snd_remainder) => fun (chain_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => extraction_args_arg)
theorem implicit_function_target_derivative_from_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (args : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,q} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm XZ xzzero xzadd xzneg xzsmul xznorm (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y) x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) target_bound target_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun args => fun x => fun hx => args (@FrechetDerivativeAt.{u,v,q} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm XZ xzzero xzadd xzneg xzsmul xznorm (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y) x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) target_bound target_remainder) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,q} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm XZ xzzero xzadd xzneg xzsmul xznorm (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y) x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) target_bound target_remainder) => fun (partial_x_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Z zzero zadd zneg zsmul znorm (@PartialXMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) x (dFx x) partial_x_bound partial_x_remainder) => fun (partial_y_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (@PartialYMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F x) (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (dFy x) partial_y_bound partial_y_remainder) => fun (dy_iso_arg : forall (x : X), forall (hx : x_domain x), @LinearIsoArgs.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (dFy x) (dFy_inv x) dy_op_norm dy_inv_op_norm) => fun (phi_inverse_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,q,p} Scalar zero one add neg sub mul le_rel XZ xzzero xzadd xzneg xzsmul xznorm XY xyzero xyadd xyneg xysmul xynorm phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (dPhi_inv_at x) phi_inverse_bound phi_inverse_remainder) => fun (snd_projection_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,p,w} Scalar zero one add neg sub mul le_rel XY xyzero xyadd xyneg xysmul xynorm Y yzero yadd yneg ysmul ynorm sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) sndXY snd_bound snd_remainder) => fun (chain_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => target_derivative_arg x hx)
theorem implicit_function_partial_x_from_derivative_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (args : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Z zzero zadd zneg zsmul znorm (@PartialXMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) x (dFx x) partial_x_bound partial_x_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun args => fun x => fun hx => args (@FrechetDerivativeAt.{u,v,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Z zzero zadd zneg zsmul znorm (@PartialXMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) x (dFx x) partial_x_bound partial_x_remainder) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,q} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm XZ xzzero xzadd xzneg xzsmul xznorm (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y) x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) target_bound target_remainder) => fun (partial_x_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Z zzero zadd zneg zsmul znorm (@PartialXMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) x (dFx x) partial_x_bound partial_x_remainder) => fun (partial_y_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (@PartialYMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F x) (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (dFy x) partial_y_bound partial_y_remainder) => fun (dy_iso_arg : forall (x : X), forall (hx : x_domain x), @LinearIsoArgs.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (dFy x) (dFy_inv x) dy_op_norm dy_inv_op_norm) => fun (phi_inverse_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,q,p} Scalar zero one add neg sub mul le_rel XZ xzzero xzadd xzneg xzsmul xznorm XY xyzero xyadd xyneg xysmul xynorm phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (dPhi_inv_at x) phi_inverse_bound phi_inverse_remainder) => fun (snd_projection_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,p,w} Scalar zero one add neg sub mul le_rel XY xyzero xyadd xyneg xysmul xynorm Y yzero yadd yneg ysmul ynorm sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) sndXY snd_bound snd_remainder) => fun (chain_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => partial_x_arg x hx)
theorem implicit_function_partial_y_from_derivative_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (args : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (@PartialYMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F x) (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (dFy x) partial_y_bound partial_y_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun args => fun x => fun hx => args (@FrechetDerivativeAt.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (@PartialYMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F x) (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (dFy x) partial_y_bound partial_y_remainder) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,q} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm XZ xzzero xzadd xzneg xzsmul xznorm (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y) x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) target_bound target_remainder) => fun (partial_x_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Z zzero zadd zneg zsmul znorm (@PartialXMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) x (dFx x) partial_x_bound partial_x_remainder) => fun (partial_y_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (@PartialYMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F x) (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (dFy x) partial_y_bound partial_y_remainder) => fun (dy_iso_arg : forall (x : X), forall (hx : x_domain x), @LinearIsoArgs.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (dFy x) (dFy_inv x) dy_op_norm dy_inv_op_norm) => fun (phi_inverse_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,q,p} Scalar zero one add neg sub mul le_rel XZ xzzero xzadd xzneg xzsmul xznorm XY xyzero xyadd xyneg xysmul xynorm phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (dPhi_inv_at x) phi_inverse_bound phi_inverse_remainder) => fun (snd_projection_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,p,w} Scalar zero one add neg sub mul le_rel XY xyzero xyadd xyneg xysmul xynorm Y yzero yadd yneg ysmul ynorm sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) sndXY snd_bound snd_remainder) => fun (chain_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => partial_y_arg x hx)
theorem implicit_function_dy_iso_from_derivative_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (args : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (x : X), forall (hx : x_domain x), @LinearIsoArgs.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (dFy x) (dFy_inv x) dy_op_norm dy_inv_op_norm :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun args => fun x => fun hx => args (@LinearIsoArgs.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (dFy x) (dFy_inv x) dy_op_norm dy_inv_op_norm) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,q} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm XZ xzzero xzadd xzneg xzsmul xznorm (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y) x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) target_bound target_remainder) => fun (partial_x_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Z zzero zadd zneg zsmul znorm (@PartialXMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) x (dFx x) partial_x_bound partial_x_remainder) => fun (partial_y_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (@PartialYMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F x) (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (dFy x) partial_y_bound partial_y_remainder) => fun (dy_iso_arg : forall (x : X), forall (hx : x_domain x), @LinearIsoArgs.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (dFy x) (dFy_inv x) dy_op_norm dy_inv_op_norm) => fun (phi_inverse_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,q,p} Scalar zero one add neg sub mul le_rel XZ xzzero xzadd xzneg xzsmul xznorm XY xyzero xyadd xyneg xysmul xynorm phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (dPhi_inv_at x) phi_inverse_bound phi_inverse_remainder) => fun (snd_projection_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,p,w} Scalar zero one add neg sub mul le_rel XY xyzero xyadd xyneg xysmul xynorm Y yzero yadd yneg ysmul ynorm sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) sndXY snd_bound snd_remainder) => fun (chain_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => dy_iso_arg x hx)
theorem implicit_function_phi_inverse_derivative_from_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (args : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,q,p} Scalar zero one add neg sub mul le_rel XZ xzzero xzadd xzneg xzsmul xznorm XY xyzero xyadd xyneg xysmul xynorm phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (dPhi_inv_at x) phi_inverse_bound phi_inverse_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun args => fun x => fun hx => args (@FrechetDerivativeAt.{u,q,p} Scalar zero one add neg sub mul le_rel XZ xzzero xzadd xzneg xzsmul xznorm XY xyzero xyadd xyneg xysmul xynorm phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (dPhi_inv_at x) phi_inverse_bound phi_inverse_remainder) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,q} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm XZ xzzero xzadd xzneg xzsmul xznorm (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y) x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) target_bound target_remainder) => fun (partial_x_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Z zzero zadd zneg zsmul znorm (@PartialXMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) x (dFx x) partial_x_bound partial_x_remainder) => fun (partial_y_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (@PartialYMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F x) (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (dFy x) partial_y_bound partial_y_remainder) => fun (dy_iso_arg : forall (x : X), forall (hx : x_domain x), @LinearIsoArgs.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (dFy x) (dFy_inv x) dy_op_norm dy_inv_op_norm) => fun (phi_inverse_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,q,p} Scalar zero one add neg sub mul le_rel XZ xzzero xzadd xzneg xzsmul xznorm XY xyzero xyadd xyneg xysmul xynorm phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (dPhi_inv_at x) phi_inverse_bound phi_inverse_remainder) => fun (snd_projection_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,p,w} Scalar zero one add neg sub mul le_rel XY xyzero xyadd xyneg xysmul xynorm Y yzero yadd yneg ysmul ynorm sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) sndXY snd_bound snd_remainder) => fun (chain_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => phi_inverse_derivative_arg x hx)
theorem implicit_function_snd_projection_derivative_from_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (args : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,p,w} Scalar zero one add neg sub mul le_rel XY xyzero xyadd xyneg xysmul xynorm Y yzero yadd yneg ysmul ynorm sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) sndXY snd_bound snd_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun args => fun x => fun hx => args (@FrechetDerivativeAt.{u,p,w} Scalar zero one add neg sub mul le_rel XY xyzero xyadd xyneg xysmul xynorm Y yzero yadd yneg ysmul ynorm sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) sndXY snd_bound snd_remainder) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,q} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm XZ xzzero xzadd xzneg xzsmul xznorm (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y) x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) target_bound target_remainder) => fun (partial_x_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Z zzero zadd zneg zsmul znorm (@PartialXMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) x (dFx x) partial_x_bound partial_x_remainder) => fun (partial_y_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (@PartialYMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F x) (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (dFy x) partial_y_bound partial_y_remainder) => fun (dy_iso_arg : forall (x : X), forall (hx : x_domain x), @LinearIsoArgs.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (dFy x) (dFy_inv x) dy_op_norm dy_inv_op_norm) => fun (phi_inverse_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,q,p} Scalar zero one add neg sub mul le_rel XZ xzzero xzadd xzneg xzsmul xznorm XY xyzero xyadd xyneg xysmul xynorm phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (dPhi_inv_at x) phi_inverse_bound phi_inverse_remainder) => fun (snd_projection_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,p,w} Scalar zero one add neg sub mul le_rel XY xyzero xyadd xyneg xysmul xynorm Y yzero yadd yneg ysmul ynorm sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) sndXY snd_bound snd_remainder) => fun (chain_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => snd_projection_derivative_arg x hx)
theorem implicit_function_derivative_from_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (args : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun args => fun x => fun hx => args (@FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,q} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm XZ xzzero xzadd xzneg xzsmul xznorm (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y) x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) target_bound target_remainder) => fun (partial_x_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Z zzero zadd zneg zsmul znorm (@PartialXMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) x (dFx x) partial_x_bound partial_x_remainder) => fun (partial_y_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (@PartialYMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F x) (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (dFy x) partial_y_bound partial_y_remainder) => fun (dy_iso_arg : forall (x : X), forall (hx : x_domain x), @LinearIsoArgs.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (dFy x) (dFy_inv x) dy_op_norm dy_inv_op_norm) => fun (phi_inverse_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,q,p} Scalar zero one add neg sub mul le_rel XZ xzzero xzadd xzneg xzsmul xznorm XY xyzero xyadd xyneg xysmul xynorm phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (dPhi_inv_at x) phi_inverse_bound phi_inverse_remainder) => fun (snd_projection_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,p,w} Scalar zero one add neg sub mul le_rel XY xyzero xyadd xyneg xysmul xynorm Y yzero yadd yneg ysmul ynorm sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) sndXY snd_bound snd_remainder) => fun (chain_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => chain_derivative_arg x hx)
theorem implicit_function_differentiable_from_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (args : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (x : X), forall (hx : x_domain x), @FrechetDifferentiableAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun args => fun x => fun hx => @frechet_differentiable_at_intro.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder (@implicit_function_derivative_from_args.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder args x hx)
theorem implicit_function_derivative_formula_from_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (args : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun args => fun x => fun hx => fun h => args (@Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,q} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm XZ xzzero xzadd xzneg xzsmul xznorm (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y) x (@ImplicitTargetDerivativeMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) target_bound target_remainder) => fun (partial_x_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Z zzero zadd zneg zsmul znorm (@PartialXMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) x (dFx x) partial_x_bound partial_x_remainder) => fun (partial_y_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (@PartialYMap.{p,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY F x) (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) (dFy x) partial_y_bound partial_y_remainder) => fun (dy_iso_arg : forall (x : X), forall (hx : x_domain x), @LinearIsoArgs.{u,w,z} Scalar zero one add neg sub mul le_rel Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm (dFy x) (dFy_inv x) dy_op_norm dy_inv_op_norm) => fun (phi_inverse_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,q,p} Scalar zero one add neg sub mul le_rel XZ xzzero xzadd xzneg xzsmul xznorm XY xyzero xyadd xyneg xysmul xynorm phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) (dPhi_inv_at x) phi_inverse_bound phi_inverse_remainder) => fun (snd_projection_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,p,w} Scalar zero one add neg sub mul le_rel XY xyzero xyadd xyneg xysmul xynorm Y yzero yadd yneg ysmul ynorm sndXY (phi_inv (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) sndXY snd_bound snd_remainder) => fun (chain_derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => formula_arg x hx h)
theorem implicit_function_theorem_args_from_evidence.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (evidence : @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun evidence => evidence (@ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_mem_arg : forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (value_mem_arg : forall (x : X), forall (hx : x_domain x), y_domain (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) => fun (zero_arg : forall (x : X), forall (hx : x_domain x), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero) => fun (unique_arg : forall (x : X), forall (hx : x_domain x), forall (y : Y), forall (candidate_mem : xy_domain (pairXY x y)), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{w} Y y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) => extraction_args_arg)
theorem implicit_function_theorem_target_mem_from_evidence.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (evidence : @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun evidence => fun x => fun hx => evidence (xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_mem_arg : forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (value_mem_arg : forall (x : X), forall (hx : x_domain x), y_domain (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) => fun (zero_arg : forall (x : X), forall (hx : x_domain x), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero) => fun (unique_arg : forall (x : X), forall (hx : x_domain x), forall (y : Y), forall (candidate_mem : xy_domain (pairXY x y)), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{w} Y y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) => target_mem_arg x hx)
theorem implicit_function_theorem_value_mem_from_evidence.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (evidence : @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (x : X), forall (hx : x_domain x), y_domain (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun evidence => fun x => fun hx => evidence (y_domain (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_mem_arg : forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (value_mem_arg : forall (x : X), forall (hx : x_domain x), y_domain (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) => fun (zero_arg : forall (x : X), forall (hx : x_domain x), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero) => fun (unique_arg : forall (x : X), forall (hx : x_domain x), forall (y : Y), forall (candidate_mem : xy_domain (pairXY x y)), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{w} Y y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) => value_mem_arg x hx)
theorem implicit_function_theorem_zero_from_evidence.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (evidence : @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (x : X), forall (hx : x_domain x), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun evidence => fun x => fun hx => evidence (@Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_mem_arg : forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (value_mem_arg : forall (x : X), forall (hx : x_domain x), y_domain (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) => fun (zero_arg : forall (x : X), forall (hx : x_domain x), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero) => fun (unique_arg : forall (x : X), forall (hx : x_domain x), forall (y : Y), forall (candidate_mem : xy_domain (pairXY x y)), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{w} Y y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) => zero_arg x hx)
theorem implicit_function_theorem_unique_from_evidence.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (evidence : @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (x : X), forall (hx : x_domain x), forall (y : Y), forall (candidate_mem : xy_domain (pairXY x y)), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{w} Y y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun evidence => fun x => fun hx => fun y => fun candidate_mem => fun zero_eq => evidence (@Eq.{w} Y y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) (fun (extraction_args_arg : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (target_mem_arg : forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)) => fun (value_mem_arg : forall (x : X), forall (hx : x_domain x), y_domain (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) => fun (zero_arg : forall (x : X), forall (hx : x_domain x), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero) => fun (unique_arg : forall (x : X), forall (hx : x_domain x), forall (y : Y), forall (candidate_mem : xy_domain (pairXY x y)), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{w} Y y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) => unique_arg x hx y candidate_mem zero_eq)
theorem implicit_function_theorem.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (args : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun args => fun (P : Prop) => fun (mk : forall (extraction_args_law : @ImplicitFunctionExtractionArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (target_mem_law : forall (x : X), forall (hx : x_domain x), xz_domain (@ImplicitTargetPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x)), forall (value_mem_law : forall (x : X), forall (hx : x_domain x), y_domain (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)), forall (zero_law : forall (x : X), forall (hx : x_domain x), @Eq.{z} Z (F (@ImplicitGraphPoint.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)) zzero), forall (unique_law : forall (x : X), forall (hx : x_domain x), forall (y : Y), forall (candidate_mem : xy_domain (pairXY x y)), forall (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero), @Eq.{w} Y y (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder x)), P) => mk args (fun (x : X) => fun (hx : x_domain x) => @implicit_extraction_target_mem_from_args.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder args x hx) (fun (x : X) => fun (hx : x_domain x) => @implicit_function_value_mem_from_args.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder args x hx) (fun (x : X) => fun (hx : x_domain x) => @implicit_function_zero_from_args.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder args x hx) (fun (x : X) => fun (hx : x_domain x) => fun (y : Y) => fun (candidate_mem : xy_domain (pairXY x y)) => fun (zero_eq : @Eq.{z} Z (F (pairXY x y)) zzero) => @implicit_function_unique_from_args.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder args x hx y candidate_mem zero_eq)
theorem implicit_function_derivative_evidence_args.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (evidence : @ImplicitFunctionDerivativeEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun evidence => evidence (@ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder) (fun (derivative_args_arg : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder) => fun (basic_evidence_arg : @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (differentiability_arg : forall (x : X), forall (hx : x_domain x), @FrechetDifferentiableAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x) => fun (derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => derivative_args_arg)
theorem implicit_function_derivative_evidence_basic.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (evidence : @ImplicitFunctionDerivativeEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun evidence => evidence (@ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) (fun (derivative_args_arg : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder) => fun (basic_evidence_arg : @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (differentiability_arg : forall (x : X), forall (hx : x_domain x), @FrechetDifferentiableAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x) => fun (derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => basic_evidence_arg)
theorem implicit_function_derivative_evidence_differentiable.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (evidence : @ImplicitFunctionDerivativeEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (x : X), forall (hx : x_domain x), @FrechetDifferentiableAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun evidence => fun x => fun hx => evidence (@FrechetDifferentiableAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x) (fun (derivative_args_arg : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder) => fun (basic_evidence_arg : @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (differentiability_arg : forall (x : X), forall (hx : x_domain x), @FrechetDifferentiableAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x) => fun (derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => differentiability_arg x hx)
theorem implicit_function_derivative_evidence_derivative.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (evidence : @ImplicitFunctionDerivativeEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun evidence => fun x => fun hx => evidence (@FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) (fun (derivative_args_arg : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder) => fun (basic_evidence_arg : @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (differentiability_arg : forall (x : X), forall (hx : x_domain x), @FrechetDifferentiableAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x) => fun (derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => derivative_arg x hx)
theorem implicit_function_derivative_evidence_formula.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (evidence : @ImplicitFunctionDerivativeEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h) :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun evidence => fun x => fun hx => fun h => evidence (@Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) (fun (derivative_args_arg : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder) => fun (basic_evidence_arg : @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) => fun (differentiability_arg : forall (x : X), forall (hx : x_domain x), @FrechetDifferentiableAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x) => fun (derivative_arg : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder) => fun (formula_arg : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)) => formula_arg x hx h)
theorem implicit_function_derivative_theorem.{p,q,u,v,w,z} :
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (le_rel : forall (a : Scalar), forall (b : Scalar), Prop), forall (X : Sort v), forall (xzero : X), forall (xadd : forall (x : X), forall (y : X), X), forall (xneg : forall (x : X), X), forall (xsmul : forall (a : Scalar), forall (x : X), X), forall (xnorm : forall (x : X), Scalar), forall (Y : Sort w), forall (yzero : Y), forall (yadd : forall (x : Y), forall (y : Y), Y), forall (yneg : forall (y : Y), Y), forall (ysmul : forall (a : Scalar), forall (y : Y), Y), forall (ynorm : forall (y : Y), Scalar), forall (Z : Sort z), forall (zzero : Z), forall (zadd : forall (x : Z), forall (y : Z), Z), forall (zneg : forall (z : Z), Z), forall (zsmul : forall (a : Scalar), forall (z : Z), Z), forall (znorm : forall (z : Z), Scalar), forall (XY : Sort p), forall (xyzero : XY), forall (xyadd : forall (x : XY), forall (y : XY), XY), forall (xyneg : forall (x : XY), XY), forall (xysmul : forall (a : Scalar), forall (x : XY), XY), forall (xynorm : forall (x : XY), Scalar), forall (pairXY : forall (x : X), forall (y : Y), XY), forall (fstXY : forall (point : XY), X), forall (sndXY : forall (point : XY), Y), forall (XZ : Sort q), forall (xzzero : XZ), forall (xzadd : forall (x : XZ), forall (y : XZ), XZ), forall (xzneg : forall (x : XZ), XZ), forall (xzsmul : forall (a : Scalar), forall (x : XZ), XZ), forall (xznorm : forall (x : XZ), Scalar), forall (pairXZ : forall (x : X), forall (z : Z), XZ), forall (fstXZ : forall (point : XZ), X), forall (sndXZ : forall (point : XZ), Z), forall (F : forall (point : XY), Z), forall (base_x : X), forall (base_y : Y), forall (x_domain : forall (x : X), Prop), forall (y_domain : forall (y : Y), Prop), forall (xy_domain : forall (point : XY), Prop), forall (xz_domain : forall (target : XZ), Prop), forall (phi_inv : forall (target : XZ), XY), forall (dPhi : forall (h : XY), XZ), forall (dPhi_inv : forall (target : XZ), XY), forall (op_norm : Scalar), forall (inv_op_norm : Scalar), forall (inverse_bound : Scalar), forall (inverse_remainder : forall (r : XY), Prop), forall (dFx : forall (x : X), forall (h : X), Z), forall (dFy : forall (x : X), forall (h : Y), Z), forall (dFy_inv : forall (x : X), forall (z : Z), Y), forall (dPhi_inv_at : forall (x : X), forall (target : XZ), XY), forall (target_bound : Scalar), forall (target_remainder : forall (r : XZ), Prop), forall (partial_x_bound : Scalar), forall (partial_x_remainder : forall (r : Z), Prop), forall (partial_y_bound : Scalar), forall (partial_y_remainder : forall (r : Z), Prop), forall (dy_op_norm : Scalar), forall (dy_inv_op_norm : Scalar), forall (phi_inverse_bound : Scalar), forall (phi_inverse_remainder : forall (r : XY), Prop), forall (snd_bound : Scalar), forall (snd_remainder : forall (r : Y), Prop), forall (chain_bound : Scalar), forall (chain_remainder : forall (r : Y), Prop), forall (args : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), @ImplicitFunctionDerivativeEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder :=
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun le_rel => fun X => fun xzero => fun xadd => fun xneg => fun xsmul => fun xnorm => fun Y => fun yzero => fun yadd => fun yneg => fun ysmul => fun ynorm => fun Z => fun zzero => fun zadd => fun zneg => fun zsmul => fun znorm => fun XY => fun xyzero => fun xyadd => fun xyneg => fun xysmul => fun xynorm => fun pairXY => fun fstXY => fun sndXY => fun XZ => fun xzzero => fun xzadd => fun xzneg => fun xzsmul => fun xznorm => fun pairXZ => fun fstXZ => fun sndXZ => fun F => fun base_x => fun base_y => fun x_domain => fun y_domain => fun xy_domain => fun xz_domain => fun phi_inv => fun dPhi => fun dPhi_inv => fun op_norm => fun inv_op_norm => fun inverse_bound => fun inverse_remainder => fun dFx => fun dFy => fun dFy_inv => fun dPhi_inv_at => fun target_bound => fun target_remainder => fun partial_x_bound => fun partial_x_remainder => fun partial_y_bound => fun partial_y_remainder => fun dy_op_norm => fun dy_inv_op_norm => fun phi_inverse_bound => fun phi_inverse_remainder => fun snd_bound => fun snd_remainder => fun chain_bound => fun chain_remainder => fun args => fun (P : Prop) => fun (mk : forall (derivative_args_law : @ImplicitFunctionDerivativeArgs.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder), forall (basic_evidence_law : @ImplicitFunctionTheoremEvidence.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder), forall (differentiability_law : forall (x : X), forall (hx : x_domain x), @FrechetDifferentiableAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x), forall (derivative_law : forall (x : X), forall (hx : x_domain x), @FrechetDerivativeAt.{u,v,w} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm (@ImplicitFunction.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder) x (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x) chain_bound chain_remainder), forall (formula_law : forall (x : X), forall (hx : x_domain x), forall (h : X), @Eq.{w} Y (@ImplicitFunctionDerivativeChainMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dPhi_inv_at x h) (@ImplicitFunctionDerivativeFormulaMap.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy_inv x h)), P) => mk args (@implicit_function_theorem.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder (@implicit_function_derivative_extraction_args_from_args.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder args)) (fun (x : X) => fun (hx : x_domain x) => @implicit_function_differentiable_from_args.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder args x hx) (fun (x : X) => fun (hx : x_domain x) => @implicit_function_derivative_from_args.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder args x hx) (fun (x : X) => fun (hx : x_domain x) => fun (h : X) => @implicit_function_derivative_formula_from_args.{p,q,u,v,w,z} Scalar zero one add neg sub mul le_rel X xzero xadd xneg xsmul xnorm Y yzero yadd yneg ysmul ynorm Z zzero zadd zneg zsmul znorm XY xyzero xyadd xyneg xysmul xynorm pairXY fstXY sndXY XZ xzzero xzadd xzneg xzsmul xznorm pairXZ fstXZ sndXZ F base_x base_y x_domain y_domain xy_domain xz_domain phi_inv dPhi dPhi_inv op_norm inv_op_norm inverse_bound inverse_remainder dFx dFy dFy_inv dPhi_inv_at target_bound target_remainder partial_x_bound partial_x_remainder partial_y_bound partial_y_remainder dy_op_norm dy_inv_op_norm phi_inverse_bound phi_inverse_remainder snd_bound snd_remainder chain_bound chain_remainder args x hx h)