模块
Mathlib.Analysis.Calculus.ImplicitFunction
npa-mathlib
包
2
模块
63
定理
750
声明
1016
非可信 sidecar
源文本和展示 overlay 属于展示元数据。可信证据是签名证书和 checker 结果。
定理
33
定义
11
归纳类型
0
公理
1
声明
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
哈希
- source
- sha256:4ad9b6a6a100e2b7964d11e3aec36c1518a3312cf8ce30cebbcf89140cf26ab0
- certificateFile
- sha256:e9c8e022da767c64a68a7d325d7973c716017978c833886cc4e568fe3afd578a
- export
- sha256:efc45f11663333dc28aa373c19bc943dd353aad33025b241eafe73dde91475fc
- axiomReport
- sha256:0d1690c6eba73dbd259c7cfc6f42702c48cb349a31bca7078cd2a76bb5ac6fcf
- certificate
- sha256:0b285ded8c84adf179a8d5e27831eadd240f81b1b0711e964f77438bc2b17784
源文本
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)