There are some of step-by-step solvers out in the market

- Qanda <https://qanda.ai/>
- Photomath <https://photomath.com/en>
- Wolfram Alpha Pro <https://www.wolframalpha.com/>
- Microsoft Math <https://mathsolver.microsoft.com/ko>
- Integral Calculator <https://www.integral-calculator.com/>

I'd question if they can better be developed, or fund-raised by an open 
source community that practices symbolic computation 'professionally'. For 
example, we can launch a library, end user software or mobile app for them 
because there are some 'free apps' but there could be literally no apps 
from open source, and in good quality that passed some academic review.

An abstraction of 'rule-based' or 'step by step' solver should be abstract 
rewriting system <https://en.wikipedia.org/wiki/Abstract_rewriting_system> by 
the nature of reflexivity <https://en.wikipedia.org/wiki/Reflexive_relation>
 and transitivity <https://en.wikipedia.org/wiki/Transitive_relation> of 
relation generated by problem solving steps, and if such step by step 
solver is also aware of congruence 
<https://en.wikipedia.org/wiki/Congruence_relation>, they nonetheless can 
be characterized as term rewriting system 
<https://en.wikipedia.org/wiki/Rewriting#Term_rewriting_systems>.

So to summarize, I find that term rewriting system is the step-by-step 
mathematics as well as the mathematics for the step-by-step that should be 
studied for. And the only thing that makes sympy deviant from pure term 
rewriting system is its automatic evaluation.
For example, sympy has automatic evaluation capability, from flattening the 
parenthesis and doing arithmetic of integers, to complicated functional 
identities. 
However, the only problem is that such automatic evaluation is 
'irreversible' if they are done in python operational semantics, however, 
if we just begin new project with uniform treatment of terms and rewriting, 
and have deliberate control of evaluation and side effects, they are not 
difficult to implement.
Those step-by-step solutions listed above, try to respect baby steps of 
adding integers to solving polynomial equations, and try to earn some money 
by presenting them to students. 

Ultimately, we could assert that our system is complete (Noetherian 
<https://en.wikipedia.org/wiki/Abstract_rewriting_system#Termination_and_convergence>
 and Church-Rosser 
<https://mathworld.wolfram.com/Church-RosserProperty.html>) system in 
problem solving in elementary algebra and calculus, to have some advantage 
over the other projects listed above.
And could also benefit the community to have better insight for developing 
calculus of expand, simplify 
<https://docs.sympy.org/latest/tutorials/intro-tutorial/simplification.html#simplification>,
 
or RUBI <https://rulebasedintegration.org/> project we already had.

There are also some deep results of term rewriting systems that can be 
implemented as a library, focused purely uniform treatment of its 
syntactical nature.
For example, Equational Unification 
<https://en.wikipedia.org/wiki/Unification_(computer_science)#E-unification>
 or Knuth-Bendix completion 
<https://en.wikipedia.org/wiki/Knuth%E2%80%93Bendix_completion_algorithm> can 
be developed, which can bring some machine learning capability for general 
rule-based 
systems <https://en.wikipedia.org/wiki/Rule-based_system>.

I believe that my prompt can already address and solve the problem below, 
and beyond the fact that the calculus is merely Turing-complete 
(such that we can develop a library to be closed against anti-pattern 
<https://en.wikipedia.org/wiki/Anti-pattern> practices by developers for 
stability), 
it also provides pretty much well-studied and uniform representation for 
the application, without introducing some deviated object by some nerds and 
having poorly defined calculus over it.

- Abstract algebra <https://github.com/sympy/sympy/pull/19750>
- Decimal object <https://github.com/sympy/sympy/issues/17648>
- Algebra with SymPy <https://github.com/gutow/Algebra_with_Sympy>
- ...

I also believe that this is also an elaboration of ghosted attempts like 
sympy/unify or sympy/strategies, and can be seen as completing those ideas 
as well. I'd like to receive some questions from the community if there are 
some critical views about this idea, or need some elaboration, or too 
difficult to understand, or so on.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/0bf803e5-261b-408a-a7ac-d9ae0b9f82c1n%40googlegroups.com.

Reply via email to