1 | initial version |

I think you have found a bug.

Here is a simpler example showing the bug.

```
sage: s, z = var('s z')
sage: f = s^2 + s + 1/s + 1/s^2 + 1.
sage: g = f.subs(s=(z-1)/(z+1))
sage: g.full_simplify()
(5.0*z^6 + 5.0*z^4 - 9.0*z^2 - 1.0)/(z^6 - 3.0*z^4 + 3.0*z^2 - 1.0)
```

By contrast:

```
sage: s, z = var('s z')
sage: f = s^2 + s + 1/s + 1/s^2 + 1
sage: g = f.subs(s=(z-1)/(z+1))
sage: g = f.subs(s=(z-1)/(z+1))
sage: g.full_simplify()
(5*z^4 + 10*z^2 + 1)/(z^4 - 2*z^2 + 1)
```

So in the buggy case, `simplify_full`

introduced an extra factor (z^2-1) in the numerator and denominator.

2 | No.2 Revision |

I think you have found a bug.

Here is a simpler example showing the ~~bug.~~problem (which comes from using floating-point entries).

```
sage: s, z = var('s z')
sage: f = s^2 + s + 1/s + 1/s^2 + 1.
sage: g = f.subs(s=(z-1)/(z+1))
sage: g.full_simplify()
(5.0*z^6 + 5.0*z^4 - 9.0*z^2 - 1.0)/(z^6 - 3.0*z^4 + 3.0*z^2 - 1.0)
```

By ~~contrast:~~contrast, with integer entries:

```
sage: s, z = var('s z')
sage: f = s^2 + s + 1/s + 1/s^2 + 1
sage: g = f.subs(s=(z-1)/(z+1))
sage: g = f.subs(s=(z-1)/(z+1))
sage: g.full_simplify()
(5*z^4 + 10*z^2 + 1)/(z^4 - 2*z^2 + 1)
```

So ~~in the buggy case, ~~applying `simplify_full`

~~introduced ~~in the first seems to introduce an extra factor (z^2-1) in the numerator and denominator.

Exercise: find out what simplify_full does, follow each step and figure out where things go wrong.

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.