kpeeters / cadabra2

A field-theory motivated approach to computer algebra.
https://cadabra.science/
GNU General Public License v3.0
216 stars 37 forks source link

The simplify() doesn't work correct for some expressions with tensors #135

Open mzavadil opened 5 years ago

mzavadil commented 5 years ago
Indices(Ex(r"{a,b}"), Ex(r""))
Attached property Indices(position=free) to {a, b}.

+ simplify(Ex(r"\cos(x)**2 + \sin(x)**2")) => 1
+ simplify(Ex(r"(\cos(x)**2 + \sin(x)**2) A^{a}")) => A^{a}
- simplify(Ex(r"(\cos(x)**2 + \sin(x)**2) A^{a} - A^{a}")) => ((cos(x))**2 + (sin(x))**2) A^{a}-A^{a}
+ simplify(Ex(r"\cos(x)**2 + \sin(x)**2 + A")) => A + 1
- simplify(Ex(r"\cos(x)**2 + \sin(x)**2 + A^{a} A_{a}")) => (cos(x))**2 + (sin(x))**2 + A^{a} A_{a}

+ map_sympy(Ex(r"\cos(x)**2 + \sin(x)**2"), "simplify") => 1
+ map_sympy(Ex(r"(\cos(x)**2 + \sin(x)**2) A^{a}"), "simplify") => A^{a}
+ map_sympy(Ex(r"(\cos(x)**2 + \sin(x)**2) A^{a} - A^{a}"), "simplify") => 0
+ map_sympy(Ex(r"\cos(x)**2 + \sin(x)**2 + A"), "simplify") => A + 1
- map_sympy(Ex(r"\cos(x)**2 + \sin(x)**2 + A^{a} A_{a}"), "simplify") => (cos(x))**2 + (sin(x))**2 + A^{a} A_{a}