Simplified0.0
\[\leadsto \color{blue}{x + \frac{1}{\mathsf{fma}\left(x, -0.5, \frac{-1}{y}\right)}}
\]
Proof
(+.f64 x (/.f64 1 (fma.f64 x -1/2 (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (fma.f64 x (Rewrite<= metadata-eval (/.f64 1 -2)) (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (fma.f64 x (/.f64 1 (Rewrite<= metadata-eval (/.f64 2 -1))) (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (Rewrite<= fma-def_binary64 (+.f64 (*.f64 x (/.f64 1 (/.f64 2 -1))) (/.f64 -1 y))))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (/.f64 1 (/.f64 2 -1)) x)) (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (+.f64 (*.f64 (/.f64 1 (Rewrite=> metadata-eval -2)) x) (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (+.f64 (*.f64 (Rewrite=> metadata-eval -1/2) x) (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (+.f64 (*.f64 (Rewrite<= metadata-eval (/.f64 -1 2)) x) (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (+.f64 (Rewrite<= associate-/r/_binary64 (/.f64 -1 (/.f64 2 x))) (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (+.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 -1 x) 2)) (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (+.f64 (Rewrite<= associate-*r/_binary64 (*.f64 -1 (/.f64 x 2))) (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (Rewrite=> fma-def_binary64 (fma.f64 -1 (/.f64 x 2) (/.f64 -1 y))))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (fma.f64 (Rewrite<= metadata-eval (neg.f64 1)) (/.f64 x 2) (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (fma.f64 (neg.f64 (Rewrite<= *-inverses_binary64 (/.f64 y y))) (/.f64 x 2) (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (fma.f64 (Rewrite<= distribute-frac-neg_binary64 (/.f64 (neg.f64 y) y)) (/.f64 x 2) (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (fma.f64 (/.f64 (neg.f64 y) y) (Rewrite<= /-rgt-identity_binary64 (/.f64 (/.f64 x 2) 1)) (/.f64 -1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (fma.f64 (/.f64 (neg.f64 y) y) (/.f64 (/.f64 x 2) 1) (/.f64 (Rewrite<= metadata-eval (neg.f64 1)) y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (fma.f64 (/.f64 (neg.f64 y) y) (/.f64 (/.f64 x 2) 1) (Rewrite<= distribute-neg-frac_binary64 (neg.f64 (/.f64 1 y)))))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 (/.f64 (neg.f64 y) y) (/.f64 (/.f64 x 2) 1)) (/.f64 1 y))))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (-.f64 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (neg.f64 y) (/.f64 x 2)) (*.f64 y 1))) (/.f64 1 y)))): 3 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (-.f64 (/.f64 (Rewrite<= distribute-lft-neg-in_binary64 (neg.f64 (*.f64 y (/.f64 x 2)))) (*.f64 y 1)) (/.f64 1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (-.f64 (/.f64 (neg.f64 (Rewrite<= *-commutative_binary64 (*.f64 (/.f64 x 2) y))) (*.f64 y 1)) (/.f64 1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (-.f64 (/.f64 (neg.f64 (Rewrite<= associate-/r/_binary64 (/.f64 x (/.f64 2 y)))) (*.f64 y 1)) (/.f64 1 y)))): 5 points increase in error, 1 points decrease in error
(+.f64 x (/.f64 1 (-.f64 (/.f64 (Rewrite<= distribute-frac-neg_binary64 (/.f64 (neg.f64 x) (/.f64 2 y))) (*.f64 y 1)) (/.f64 1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (-.f64 (/.f64 (/.f64 (neg.f64 x) (/.f64 2 y)) (Rewrite=> *-rgt-identity_binary64 y)) (/.f64 1 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 1 (Rewrite<= div-sub_binary64 (/.f64 (-.f64 (/.f64 (neg.f64 x) (/.f64 2 y)) 1) y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 1 y) (-.f64 (/.f64 (neg.f64 x) (/.f64 2 y)) 1)))): 7 points increase in error, 9 points decrease in error
(+.f64 x (/.f64 (Rewrite=> *-lft-identity_binary64 y) (-.f64 (/.f64 (neg.f64 x) (/.f64 2 y)) 1))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 y (Rewrite=> sub-neg_binary64 (+.f64 (/.f64 (neg.f64 x) (/.f64 2 y)) (neg.f64 1))))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 y (+.f64 (Rewrite=> distribute-frac-neg_binary64 (neg.f64 (/.f64 x (/.f64 2 y)))) (neg.f64 1)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 y (+.f64 (neg.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 x y) 2))) (neg.f64 1)))): 3 points increase in error, 4 points decrease in error
(+.f64 x (/.f64 y (Rewrite<= distribute-neg-in_binary64 (neg.f64 (+.f64 (/.f64 (*.f64 x y) 2) 1))))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 y (neg.f64 (Rewrite<= +-commutative_binary64 (+.f64 1 (/.f64 (*.f64 x y) 2)))))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 y (Rewrite=> neg-mul-1_binary64 (*.f64 -1 (+.f64 1 (/.f64 (*.f64 x y) 2)))))): 0 points increase in error, 0 points decrease in error
(+.f64 x (Rewrite<= associate-/l/_binary64 (/.f64 (/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2))) -1))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 (/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2))) (Rewrite<= metadata-eval (/.f64 1 -1)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 (/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2))) -1) 1))): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 -1 (/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2))))) 1)): 0 points increase in error, 0 points decrease in error
(+.f64 x (/.f64 (Rewrite<= neg-mul-1_binary64 (neg.f64 (/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2))))) 1)): 0 points increase in error, 0 points decrease in error
(+.f64 x (Rewrite=> /-rgt-identity_binary64 (neg.f64 (/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2)))))): 0 points increase in error, 0 points decrease in error
(+.f64 x (Rewrite=> neg-mul-1_binary64 (*.f64 -1 (/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2)))))): 0 points increase in error, 0 points decrease in error
(+.f64 x (Rewrite=> *-commutative_binary64 (*.f64 (/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2))) -1))): 0 points increase in error, 0 points decrease in error
(+.f64 x (Rewrite<= *-commutative_binary64 (*.f64 -1 (/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2)))))): 0 points increase in error, 0 points decrease in error
(+.f64 x (Rewrite<= neg-mul-1_binary64 (neg.f64 (/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2)))))): 0 points increase in error, 0 points decrease in error
(Rewrite<= sub-neg_binary64 (-.f64 x (/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2))))): 0 points increase in error, 0 points decrease in error