This is related to Martin Ender's question here, but in my opinion different enough to warrant a separate meta post.
Are programs required to provably terminate, even if an algorithm that is not proven to terminate works for the given input range?
A basic example would be having a program calculate the nth term in the sequence A006577. It is unknown whether or not all values of n eventually reach 1, and therefore it is impossible to have a program calculate the nth term of this sequence in a finite amount of time. However, it has been proven for all values up to 260, which is satisfactory for most purposes.
This question also expands to situations where there are algorithms proven to terminate. Let's assume that there is a problem A that can be solved with 2 algorithms B and C. B is mathematically proven to always solve problem A in a finite amount of time. Algorithm C is not proven as such, but despite estensive testing up to numbers vastly exceeding the maximum value of an int32, there have been no such numbers that cause it to never termimate. Would an answer using algorithm C be acceptable?