Recursive Languages

2 min read Updated Wed May 06 2026 17:34:33 GMT+0000 (Coordinated Universal Time)

Procedure

A finite sequence of instructions that can be mechanically carried out, given any input.

Algorithm

A procedure that terminates after a finite number of steps for any input.

Recursively-enumerable

Enumerable means, all elements of a set or a language can be list in an order.

A set XX is recursively-enumerable iff there exists a procedure to determine whether an element xx belongs to the set or not.

A language LL is recursively-enumerable (aka. Turing-acceptable) iff there exists a Turing machine that accepts LL.

A kk-tape Turing machine TT is said to enumerate a language LΣL \subseteq \Sigma^* iff:

  • Tape head on 1st tape:
    • never moves to left
    • no non-blank symbols on it
    • never modified layer
  • For every string xLx \in L, at some point 1st tape will contain x1#x2##xn#x#x_1\#x_2\#\dots\#x_n\#x\# for some x0x\ge 0 where the strings x1,x2,,xn,xx_1,x_2,\dots,x_n,x are distinct elements of LL
  • If LL is finite, nothing is printed after # following the last

If L1L_1 and L2L_2 are recursively-enumerable languages, then L1L2L_1 \cup L_2 and L1L2L_1 \cap L_2 are also recursively-enumerable.

Recursive

A set XX is recursive iff there exists an algorithm to determine whether a given element belongs to XX or not.

X is recursive    X is recursively-enumerableX\text{ is recursive} \implies X\text{ is recursively-enumerable}

A language LL is recursive (aka. Turing-decidable or decidable) iff there exists a Turing machine that decides LL.

L is recursive    L is recursively-enumerableL\text{ is recursive} \implies L\text{ is recursively-enumerable}

A language LL is recursive iff there exists a Turing machine that enumerates LL in canonical order (i.e. shorter strings come first and in lexicographical order).

If LL is recursive, L=ΣLL' = \Sigma^* - L is also recursive.