Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pynac is buggy inside a hold context #31597

Open
DaveWitteMorris opened this issue Apr 3, 2021 · 0 comments
Open

Pynac is buggy inside a hold context #31597

DaveWitteMorris opened this issue Apr 3, 2021 · 0 comments

Comments

@DaveWitteMorris
Copy link
Member

The ginac documentation says "GiNaC performs some automatic transformations on expressions, to simplify them and put them into a canonical form. ... This behavior is usually referred to as automatic or anonymous evaluation. ... The general rule is that when you construct expressions, GiNaC automatically creates them in canonical form, ... All GiNaC methods that transform expressions, like subs() or normal(), automatically re-evaluate their results."

It seems that some (many?) pynac methods assume that their inputs have been sanitized in this way. Since applying a hold context disables this automatic evaluation, these methods may silently produce incorrect results inside a hold context. Examples of this can be seen in #31554.

Component: symbolics

Keywords: pynac, hold

Issue created by migration from https://trac.sagemath.org/ticket/31597

@DaveWitteMorris DaveWitteMorris added this to the sage-9.4 milestone Apr 3, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Aug 22, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.5, sage-9.6 Dec 18, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.6, sage-9.7 May 3, 2022
@mkoeppe mkoeppe modified the milestones: sage-9.7, sage-9.8 Sep 19, 2022
@mkoeppe mkoeppe removed this from the sage-9.8 milestone Jan 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants