Opened 4 years ago

Last modified 4 years ago

#21862 new defect

Symbolic methods work inconsistently on relational expressions

Reported by: eviatarbach Owned by:
Priority: major Milestone: sage-7.5
Component: symbolics Keywords:
Cc: Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges


Symbolic methods on relational expressions (equalities and inequalities) work inconsistently. Some of them directly apply to both sides, some don't do anything at all, and some behave unexpectedly.

For example, collect does nothing (same with inequalities):

sage: var('y')
sage: eq = x^2 + x*y + 3*x == 0
sage: eq.collect(x)
x^2 + x*y + 3*x == 0
sage: eq.lhs().collect(x)
x^2 + x*(y + 3)

limit behaves differently with different arguments, and it's not at all clear what it's doing:

sage: eq = exp(-x) == x
sage: eq.limit(x=0)
sage: eq.limit(x=2)
e^(-2) == 2

factor takes equalities and returns a non-relational expression:

sage: (x^2 + x == 0).factor()
(x + 1)*x

and doesn't work at all with inequalities:

sage: (x^2 + x > 0).factor()
ValueError: Unable to represent as a polynomial

Even more strange:

sage: (x == 3).exp()
e^(x == 3)

Change History (1)

comment:1 Changed 4 years ago by rws

See also #7660 (EDIT: and #11651).

Last edited 4 years ago by rws (previous) (diff)
Note: See TracTickets for help on using tickets.