Simplified3.9
\[\leadsto \cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \color{blue}{\mathsf{fma}\left(\cos \lambda_2, \cos \lambda_1, \sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\cos \phi_2 \cdot \cos \phi_1\right)}\right) \cdot R
\]
Proof
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))) R): 0 points increase in error, 0 points decrease in error
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (fma.f64 (Rewrite<= cos-neg_binary64 (cos.f64 (neg.f64 lambda2))) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))) R): 10 points increase in error, 0 points decrease in error
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (Rewrite<= fma-def_binary64 (+.f64 (*.f64 (cos.f64 (neg.f64 lambda2)) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))) R): 0 points increase in error, 10 points decrease in error
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (+.f64 (*.f64 (Rewrite=> cos-neg_binary64 (cos.f64 lambda2)) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))) R): 10 points increase in error, 0 points decrease in error
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))) R): 0 points increase in error, 10 points decrease in error
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))) R): 0 points increase in error, 0 points decrease in error
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (+.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (Rewrite<= *-commutative_binary64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)))))) R): 10 points increase in error, 0 points decrease in error
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))))))) R): 0 points increase in error, 10 points decrease in error
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (Rewrite=> +-commutative_binary64 (+.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))) R): 0 points increase in error, 0 points decrease in error
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (Rewrite<= distribute-lft-out_binary64 (+.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))) R): 0 points increase in error, 0 points decrease in error