Rational hitting lists: stack simulation #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/RationalHitting/StackSimulation.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical arguments are retained.
Number of stack-access operations in a compiled statement.
Equations
- One or more equations did not get rendered due to their size.
- Complexity.RationalHitting.TMTime.StackToOne.stackWeight (Turing.TM2.Stmt.push k a q) = Complexity.RationalHitting.TMTime.StackToOne.stackWeight q + 1
- Complexity.RationalHitting.TMTime.StackToOne.stackWeight (Turing.TM2.Stmt.peek k a q) = Complexity.RationalHitting.TMTime.StackToOne.stackWeight q + 1
- Complexity.RationalHitting.TMTime.StackToOne.stackWeight (Turing.TM2.Stmt.pop k a q) = Complexity.RationalHitting.TMTime.StackToOne.stackWeight q + 1
- Complexity.RationalHitting.TMTime.StackToOne.stackWeight (Turing.TM2.Stmt.load a q) = Complexity.RationalHitting.TMTime.StackToOne.stackWeight q
- Complexity.RationalHitting.TMTime.StackToOne.stackWeight (Turing.TM2.Stmt.goto a) = 0
- Complexity.RationalHitting.TMTime.StackToOne.stackWeight Turing.TM2.Stmt.halt = 0
Instances For
Real TM1 transition count for the compiled continuation of a TM2 statement. The multipliers count sweeps to and from actual stack tops.
A bounded TM2 run on stacks of initial length <=L is simulated by Mathlib's single tape TM1 interpreter in at most Ct(2*(L+C*t)+4) macro-transitions. C is a fixed syntactic maximum over the finite program, not input advice.
Number the supported states, reserving zero for the default state.
Equations
Instances For
Decode a numbered state, with zero denoting the default state.
Equations
- Complexity.RationalHitting.TMTime.FiniteStates.stateDecode S i = Fin.cases default (fun (i : Fin (Fintype.card ↥S)) => ↑((Fintype.equivFin ↥S).symm i)) i
Instances For
Restrict a supported machine to an explicitly finite numbered state space.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Map a supported configuration to its numbered state representation.
Equations
- Complexity.RationalHitting.TMTime.FiniteStates.cfg S a = { q := Complexity.RationalHitting.TMTime.FiniteStates.stateEncode S a.q, Tape := a.Tape }
Instances For
Finite-support compression has no transition or tape overhead.