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.