-
Notifications
You must be signed in to change notification settings - Fork 276
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
Expand things like (x+y)^2 #45
Comments
I think there should be an extra condition: the expansion should lead to a "simpler version". It seems this would be quite hard to model because the simplification might happen "10 steps ahead". For example, you might have some expression with a term like Maybe if we could get some measure of the simplicity of an expression (and that's a big if), we could then have a system where the program could backtrack if it cannot find a "simpler" expression than whatever steps it has already reached. It's alright to go a bit uphill but only if you go downhill later :p |
On the following website is a file named moses-simp.pdf that contains a paper titled "Algebraic Simplification a Guide for the Perplexed": https://groups.csail.mit.edu/mac/users/gjs/6.945/readings/simplification/ It describes the various ways simplification is typically used in a CAS, which may be helpful for this discussion. |
We should probably also take into consider the context of the expression
Having some way to detect and perform steps that apply to equations will help with this situation and others to produce steps that are more like what a human would do. |
agreed @kevinbarabash - I think we're gonna have to revamp the way equations work, to be a lot more smart about things. I wonder what the steps towards that are... read some papers? have a meeting on gitter where we brainstorm stuff? |
@evykassirer, I think it would be useful to brainstorm about various ways mathsteps might be used in the future before determining how equations should work. |
I'll be adding a timeline and doing a better job organizing over the next few days as part of the wiki effort and that will give us something we can discuss around |
I think this should be done within the context of the problem. So in simplifications, it should expand, and in the case of solving an equation, and the variable being solved for is in the root, then we square both sides. Seems like a decent first approach at this problem. |
This would happen if:
x + y
in this example) can't be simplified furthernote that issue #36 discusses the opposite of this
(x + x) * (x + x) => (x+x)^2
but contrastingly is a simplification we try early on and only happens if the "base" can be simplified further (e.g. x + x can be simplified to 2x)The text was updated successfully, but these errors were encountered: