# Simplify shenanigans

I've noticed a strange (and annoying) behaviour in sage concerning symbolic substitution and simplification

```
def demonstrate_simplify_shenanigans():
sym_func = function('func',nargs=1)
my_expression = sym_func(0)+sym_func(1)+sym_func(2)
print
print 'without simplify'
print my_expression.subs(func(0)==1)
print
print 'with simplify in expression'
print my_expression.simplify().subs(func(0)==1)
print
print 'with simplify in both expression and substitution'
print my_expression.simplify().subs(func(0).simplify()==1)
demonstrate_simplify_shenanigans()
```

The output is

```
without simplify
func(1) + func(2) + 1
with simplify in expression
func(0) + func(1) + func(2)
with simplify in both expression and substitution
func(1) + func(2) + 1
```

Why is there a different behaviour depending on whether simplify was called? Even though `func(0)`

and `func(0).simplify()`

seem identical.