# Symbolics.symplify must be invoked twice 2cos(x) - sin(2x)/sin(x)

**URL:** <https://discourse.julialang.org/t/symbolics-symplify-must-be-invoked-twice-2cos-x-sin-2x-sin-x/126944>\
**Category:** General Usage\
**Tags:** question, symbolics\
**Created:** [March 14, 2025, 10:05am UTC](https://discourse.julialang.org/t/symbolics-symplify-must-be-invoked-twice-2cos-x-sin-2x-sin-x/126944 "2025-03-14T10:05:45Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![fp4code](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fp4code/32/3083_2.png) [@fp4code](https://discourse.julialang.org/u/fp4code)\
**Post date:** [March 14, 2025, 10:05am UTC](https://discourse.julialang.org/t/symbolics-symplify-must-be-invoked-twice-2cos-x-sin-2x-sin-x/126944/1 "2025-03-14T10:05:45Z")

</div>

Dear all, why do I have to invoke `symplify` twice?

```julia
using Symbolics # v6.29.2, julia 1.11.4
@variables x
v = 2cos(x) - sin(2x)/sin(x)
va = simplify(v) # not simplified
vb = simplify(va) # 0

```

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [March 14, 2025, 9:57pm UTC](https://discourse.julialang.org/t/symbolics-symplify-must-be-invoked-twice-2cos-x-sin-2x-sin-x/126944/2 "2025-03-14T21:57:58Z")

</div>

This is similar to Mathematica’s Simplify vs FullSimplify. A rule-based simplifier just runs through its set of rules. If you want to run it to convergence we could put a fixed point iteration on it with a separate `full_simplify` function, though it’s not guaranteed to converge.

---

<div class="post-metadata">

**Author:** ![bertschi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bertschi/32/33462_2.png) [@bertschi](https://discourse.julialang.org/u/bertschi)\
**Post date:** [March 15, 2025, 12:22am UTC](https://discourse.julialang.org/t/symbolics-symplify-must-be-invoked-twice-2cos-x-sin-2x-sin-x/126944/3 "2025-03-15T00:22:20Z")

</div>

Here is a simple fixed point combinator

```julia
fix(f, eq) = x -> let y = f(x)
                      while !eq(x, y)
                          x, y = y, f(y)
                      end
                      y
                  end

```

and it’s application:

```julia-repl
julia> v |> fix(simplify, isequal)
0

```
