Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There is no general algorithm to symbolically compute all integrals. All we have are partial algorithms which consist of big rulebooks for the cases we’ve already solved.

It also turns out we can’t even verify, in general, the result of integration:

Suppose you are given two functions, f(x) and G(x), and are told that G(x) is an antiderivative of f(x). So then you let g(x) = G’(x), the derivative of G(x).

Now if G(x) is truly an antiderivative of f(x) then we must have g(x) = f(x) but unfortunately the problem of determining whether two functions are equal is undecidable (a consequence of the halting problem).



> There is no general algorithm to symbolically compute all integrals

Also, implementing it likely would be a challenge. The Risch algorithm (https://en.wikipedia.org/wiki/Risch_algorithm, https://mathworld.wolfram.com/RischAlgorithm.html) ‘only’ handles “rational functions, radicals, logarithms, and exponential functions”, but may never have been fully implemented (https://mathoverflow.net/questions/374089/does-there-exist-a...)


Does the functional equality being impossible to determine thing work for math problems? I know it works for computable functions, but math functions are pure and total so it seems easier.


Math functions are not total, in general. Computable functions are a subclass of all functions, so lots of functions are not computable.

Purity doesn't apply to functions, it applies to algorithms which compute functions. In software parlance the terms are often conflated but they are not equivalent. The algorithm which computes a function is in general not unique.


The problem is that what you’re comparing are not functions, but representations of functions.


Just determining the equality of two real numbers is difficult.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: