I feel like the missing probability should come from indistinguishability, but not because of programs halting. Consider a countable family of possible discrete transitions on a potentially infinite state space. Maybe a programming language is a way to enumerate that space of transitions, but the language itself enumerates in a partially redundant manner. For instance f(x)=x+x versus g(x)=2*x. So you will never be able to distinguish between those programs by watching the transition sequence [1,2,4,8,...]. In some sense the PL story of alpha, beta, gamma … equalities is a way to describe equivalence classes of extensionally equal terms, but for a Turing complete language you will never find a decision procedure to unify pairs of terms p and q iff forall x, p(x)=q(x). So in some sense this countable family of state space transitions, if enumerated by a programming language, must remain indistinguishable.
I feel like the missing probability should come from indistinguishability, but not because of programs halting. Consider a countable family of possible discrete transitions on a potentially infinite state space. Maybe a programming language is a way to enumerate that space of transitions, but the language itself enumerates in a partially redundant manner. For instance f(x)=x+x versus g(x)=2*x. So you will never be able to distinguish between those programs by watching the transition sequence [1,2,4,8,...]. In some sense the PL story of alpha, beta, gamma … equalities is a way to describe equivalence classes of extensionally equal terms, but for a Turing complete language you will never find a decision procedure to unify pairs of terms p and q iff forall x, p(x)=q(x). So in some sense this countable family of state space transitions, if enumerated by a programming language, must remain indistinguishable.
But it doesn’t come from indistinguishability, it comes from programs halting / looping. I don’t know what you’re trying to say.