theorem CReal.integral_by_parts : ((x0 : ((x0 : CReal) -> CReal)) -> ((x1 : ((x1 : CReal) -> CReal)) -> ((x2 : ((x2 : CReal) -> CReal)) -> ((x3 : ((x3 : CReal) -> CReal)) -> ((x4 : CReal) -> ((x5 : CReal) -> ((x6 : CReal.le x4 x5) -> ((x7 : CReal.HasDerivativeOn x0 x1 x4 x5) -> ((x8 : CReal.HasDerivativeOn x2 x3 x4 x5) -> ((x9 : CReal.UniformlyContinuousOn x0 x4 x5) -> ((x10 : CReal.UniformlyContinuousOn x1 x4 x5) -> ((x11 : CReal.UniformlyContinuousOn x2 x4 x5) -> ((x12 : CReal.UniformlyContinuousOn x3 x4 x5) -> CReal.Equiv (CReal.integral (fun (x13 : CReal) => CReal.mul (x1 x13) (x2 x13)) x4 x5 x6 (CReal.uniformly_continuous_mul x1 x2 x4 x5 x10 x11 (AxNat.succ (AxNat.add (AxNat.succ (CReal.bound (x1 x4))) (AxNat.mul (AxNat.add (AxNat.succ (CReal.bound (CReal.add x5 (CReal.neg x4)))) (AxNat.succ (AxNat.succ AxNat.zero))) (AxNat.succ (AxNat.add (AxNat.mul (AxNat.succ (AxNat.succ (AxNat.succ (AxNat.succ AxNat.zero)))) (CReal.UniformlyContinuousOn.modulus x1 x4 x5 x10 AxNat.zero)) (AxNat.succ (AxNat.succ (AxNat.succ AxNat.zero)))))))) (AxNat.succ (AxNat.add (AxNat.succ (CReal.bound (x2 x4))) (AxNat.mul (AxNat.add (AxNat.succ (CReal.bound (CReal.add x5 (CReal.neg x4)))) (AxNat.succ (AxNat.succ AxNat.zero))) (AxNat.succ (AxNat.add (AxNat.mul (AxNat.succ (AxNat.succ (AxNat.succ (AxNat.succ AxNat.zero)))) (CReal.UniformlyContinuousOn.modulus x2 x4 x5 x11 AxNat.zero)) (AxNat.succ (AxNat.succ (AxNat.succ AxNat.zero)))))))) (CReal.bounded_of_uniformly_continuous x1 x4 x5 x10 x6) (CReal.bounded_of_uniformly_continuous x2 x4 x5 x11 x6))) (CReal.add (CReal.add (CReal.mul (x0 x5) (x2 x5)) (CReal.neg (CReal.mul (x0 x4) (x2 x4)))) (CReal.neg (CReal.integral (fun (x13 : CReal) => CReal.mul (x0 x13) (x3 x13)) x4 x5 x6 (CReal.uniformly_continuous_mul x0 x3 x4 x5 x9 x12 (AxNat.succ (AxNat.add (AxNat.succ (CReal.bound (x0 x4))) (AxNat.mul (AxNat.add (AxNat.succ (CReal.bound (CReal.add x5 (CReal.neg x4)))) (AxNat.succ (AxNat.succ AxNat.zero))) (AxNat.succ (AxNat.add (AxNat.mul (AxNat.succ (AxNat.succ (AxNat.succ (AxNat.succ AxNat.zero)))) (CReal.UniformlyContinuousOn.modulus x0 x4 x5 x9 AxNat.zero)) (AxNat.succ (AxNat.succ (AxNat.succ AxNat.zero)))))))) (AxNat.succ (AxNat.add (AxNat.succ (CReal.bound (x3 x4))) (AxNat.mul (AxNat.add (AxNat.succ (CReal.bound (CReal.add x5 (CReal.neg x4)))) (AxNat.succ (AxNat.succ AxNat.zero))) (AxNat.succ (AxNat.add (AxNat.mul (AxNat.succ (AxNat.succ (AxNat.succ (AxNat.succ AxNat.zero)))) (CReal.UniformlyContinuousOn.modulus x3 x4 x5 x12 AxNat.zero)) (AxNat.succ (AxNat.succ (AxNat.succ AxNat.zero)))))))) (CReal.bounded_of_uniformly_continuous x0 x4 x5 x9 x6) (CReal.bounded_of_uniformly_continuous x3 x4 x5 x12 x6))))))))))))))))))