\[0 < x \land x < 1 \land y < 1\]
\[\frac{\left(x - y\right) \cdot \left(x + y\right)}{x \cdot x + y \cdot y}\]
\frac{\left(x - y\right) \cdot \left(x + y\right)}{x \cdot x + y \cdot y}
(FPCore (x y) :precision binary64 (/ (* (- x y) (+ x y)) (+ (* x x) (* y y))))
double code(double x, double y) {
	return ((x - y) * (x + y)) / ((x * x) + (y * y));
}

Reproduce

Please include this information when filing a bug report:

herbie shell --seed 2021060 
(FPCore (x y)
  :name "Kahan p9 Example"
  :precision binary64
  :pre (and (< 0.0 x 1.0) (< y 1.0))

  :herbie-target
  (if (< 0.5 (fabs (/ x y)) 2.0) (/ (* (- x y) (+ x y)) (+ (* x x) (* y y))) (- 1.0 (/ 2.0 (+ 1.0 (* (/ x y) (/ x y))))))

  (/ (* (- x y) (+ x y)) (+ (* x x) (* y y))))

Backtrace

Failed to produce proof for (*.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 y)) (/.f64 (sqrt.f64 x) (sqrt.f64 y))) to (/.f64 x y)LC
for-loop/data/pavpan/nightlies/herbie/egg-generate-proof/src/core/simplify.rkt1678
(unnamed)/data/pavpan/nightlies/herbie/egg-generate-proof/src/core/simplify.rkt1496
egraph-add-exprs/data/pavpan/nightlies/herbie/egg-generate-proof/egg-herbie/main.rkt1540
with-egraph/data/pavpan/nightlies/herbie/egg-generate-proof/egg-herbie/main.rkt740
(unnamed)/data/pavpan/nightlies/herbie/egg-generate-proof/src/core/simplify.rkt790
simplify!/data/pavpan/nightlies/herbie/egg-generate-proof/src/mainloop.rkt2360
run-iter!/data/pavpan/nightlies/herbie/egg-generate-proof/src/mainloop.rkt3600
run-improve/data/pavpan/nightlies/herbie/egg-generate-proof/src/mainloop.rkt3770
(unnamed)/data/pavpan/nightlies/herbie/egg-generate-proof/src/sandbox.rkt546
run/opt/racket-7.9/share/pkgs/profile-lib/main.rkt392
profile-thunk/opt/racket-7.9/share/pkgs/profile-lib/main.rkt90
(unnamed)/opt/racket-7.9/collects/racket/engine.rkt4224