Suppose there exists a Haskel-function realizing the halt-problem:
halt :: Integer->Bool
that evaluates to True if x is defined and to False otherwise.
Let's assume we are calling this function in Haskell in another function as
fHalt x = halt (x+1)
I'm wondering what would happen in this situation and if fHalt is monotone. 2 possible answers arise for me:
Haskell uses strict-evaluation for pre-defined operators - i.e. also for (+). If fHalt is now evaluated with BOT, my guess is that BOT+1 has to be evaluated first (resulting in BOT) and thus the overall evaluation does not terminate and also results in BOT.
If somehow Haskell would determine that the inner (x+1) does not terminate (which is impossible due to the halt-problem) the result would be False and fHalt would violate monotonicity.
At this point, I'm irritated since my question already implied a non-realizable halt-function defined in Haskell. Though I would suppose that answer 1. is correct.