Two-way complementation: main #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Combinatorics/TwoWayAutomata/Main.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical arguments are retained.
theorem
Complexity.FiniteAutomaton.Complementation.Internal.complementation_lower_bound
(n : ℕ)
(hn : 4 ≤ n)
:
An n-state source language requires exponentially many states for any 2NFA complement.
theorem
Complexity.FiniteAutomaton.Complementation.Internal.complementation_lower_bound_finite
(n : ℕ)
(hn : 4 ≤ n)
:
The real-valued lower bound for arbitrary finite target state sets.
theorem
Complexity.FiniteAutomaton.Complementation.Internal.polynomial_not_bound_two_pow
(p : Polynomial ℝ)
:
¬∀ (n : ℕ), 2 ^ n ≤ Polynomial.eval (↑n) p
No real polynomial bounds the powers of two at all natural inputs.
There is no polynomial state bound for complementation over all finite alphabets.