RE Closure Under Terminal Bijection #
This file proves closure of recursively enumerable languages under bijective renaming of terminals.
The key construction is bijection_grammar, which maps terminals in all rule
components via an equivalence π : T₁ ≃ T₂. The main result
bijection_grammar_language shows that this grammar generates exactly the
π-image of the original language. This is then used by the context-free and
context-sensitive bijection proofs via commutativity with their respective
embeddings.
Main declarations #
Map a symbol along a terminal equivalence, leaving nonterminals unchanged.
Equations
- map_symbol π (symbol.terminal t) = symbol.terminal (π t)
- map_symbol π (symbol.nonterminal n) = symbol.nonterminal n
Instances For
Map a symbol back along the inverse equivalence.
Equations
- map_symbol_inv π (symbol.terminal t) = symbol.terminal (π.symm t)
- map_symbol_inv π (symbol.nonterminal n) = symbol.nonterminal n
Instances For
Map terminals along an arbitrary function, leaving nonterminals unchanged.
Equations
- map_symbol_fn f (symbol.terminal t) = symbol.terminal (f t)
- map_symbol_fn f (symbol.nonterminal n) = symbol.nonterminal n
Instances For
Map an unrestricted grammar along a terminal equivalence.
Equations
- bijection_grammar g π = { nt := g.nt, initial := g.initial, rules := List.map (bijection_grule π) g.rules }
Instances For
Map an unrestricted grammar along an arbitrary terminal map.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The bijection grammar generates exactly the π-image of the original language. This is the core result from which all class-specific bijection closure theorems are derived.
If g is a left inverse of f, mapping an unrestricted grammar along f
generates exactly the Language.map f image of the original language.
RE languages are closed under injective terminal maps.
The class of RE languages is closed under bijective terminal renaming.
The converse direction.
A language is RE iff its image under a bijection of terminal alphabets is RE.