Post's theorem for recursive languages #
Post's theorem: a predicate whose positive and negative instances are both
recursively enumerable is computable; in language terms, a language that is RE and
co-RE is recursive. We package it both at the computability level
(ComputablePred) and at the recursive-language level (is_Recursive).
The bridge to is_Recursive goes through the tape-output decider construction
(is_Recursive_of_computable_decide): a ComputablePred membership yields a total
computable decider, which yields an always-halting TM0 decider.
Main results #
REPred_mem_of_is_RE— membership in an RE language is anREPred.computablePred_of_isRE_of_isRE_compl— RE ∩ co-RE ⟹ computable membership.is_Recursive_of_isRE_of_isRE_compl— RE ∩ co-RE ⟹ recursive.
For any recursively enumerable language over a Primcodable alphabet,
membership is a recursively enumerable predicate. This is the search over
derivation sequences made uniform via grammarTest.
Post's theorem (RE ∩ co-RE = recursive), computability form. A language that is recursively enumerable and whose complement is recursively enumerable has computable membership.
Post's theorem, recursive form. A language that is recursively enumerable and whose complement is recursively enumerable is recursive (decided by an always-halting TM0).