# Basic expression manipulation with Symbolics.jl

**URL:** <https://discourse.julialang.org/t/basic-expression-manipulation-with-symbolics-jl/77799>\
**Category:** General Usage\
**Tags:** symbolics\
**Created:** [March 12, 2022, 4:44pm UTC](https://discourse.julialang.org/t/basic-expression-manipulation-with-symbolics-jl/77799 "2022-03-12T16:44:26Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![Gravlax](https://avatars.discourse-cdn.com/v4/letter/g/dbc845/32.png) [@Gravlax](https://discourse.julialang.org/u/Gravlax)\
**Post date:** [April 2, 2022, 4:50pm UTC](https://discourse.julialang.org/t/basic-expression-manipulation-with-symbolics-jl/77799/2 "2022-04-02T16:50:18Z")

</div>

Hi all,  
In relation to the initial post, would someone know how to further simplify expression:  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/f/2/f2d5ccec5628bf10f79c9b19c84f5b07c7924855.png)

There is likely a way to cancel the minus sign and to simplify T/T in term on the right, but I haven’t managed so far.

Here’s the code:

```julia
using Symbolics, Latexify
@variables t x  
@variables s(t,x) u(t,x) c(t,x) μ(t,x) ρ(t,x)
@variables qs(t,x) qu(t,x) qc(t,x)
@variables Qs
@variables T(t,x)   
@variables λ Dc
Dt, dx = Differential(t), Differential(x)
solve = Symbolics.solve_for 
subs = Symbolics.substitute;

# Define balances and axioms
fu = ρ*Dt(u) ~ - dx(qu) 
fc = ρ*Dt(c) ~ - dx(qc) 
fs = ρ*Dt(s) ~ - dx(qs) + Qs
LTE = Dt(u) ~ T*Dt(s) + μ*Dt(c)
latexify([fu; fc; fs; LTE])

# Evaluate entropy production
Qs1 = solve( fs, Qs )
Qs1 = subs(Qs1, Dt(s)=>solve(LTE,Dt(s)))
Qs1 = subs(Qs1, Dt(u)=>solve(fu,Dt(u)))
Qs1 = subs(Qs1, Dt(c)=>solve(fc,Dt(c)))
Qs1 = subs(Qs1, qu=>T*qs + μ*qc)
Qs1 = simplify_fractions(simplify(expand_derivatives(Qs1)))
TQs1 = T*simplify(subs(Qs1, [qs=>-λ/T*dx(T), qc=>-Dc*dx(μ)]), expand=true) 

```

---

_[View the full topic](https://discourse.julialang.org/t/basic-expression-manipulation-with-symbolics-jl/77799)._
