OAI/MathematicalPhysics/NavierStokes/ForcedComputation/Programs/BalancedRules.lean
32 declarations, 0 contain sorry, 0 declared as axioms
The balanced three-stack table in paper 379-09, balanced.tex.
Every row preserves total prefix length, and its record identifies the
individual work-step row. The table acts on arbitrary independent tails.
- inductive
OAI.ForcedComputation.Balanced.Recordline 16 - inductive
OAI.ForcedComputation.Balanced.Symbolline 23 - inductive
OAI.ForcedComputation.Balanced.Controlline 30 - inductive
OAI.ForcedComputation.Balanced.Rowline 37 - def
OAI.ForcedComputation.Balanced.Row.Allowedline 51 - def
OAI.ForcedComputation.Balanced.Row.sourceControlline 59 - def
OAI.ForcedComputation.Balanced.Row.targetControlline 65 - def
OAI.ForcedComputation.Balanced.Row.sourcePrefixesline 71 - def
OAI.ForcedComputation.Balanced.Row.targetPrefixesline 82 - theorem
OAI.ForcedComputation.Balanced.Row.balancedline 95Source documentation
Balance is an identity for the complete table, without assumptions on tails.
theorem Row.balanced (M : Recorder.Machine Q A) (blank : A) (r : Row Q A) : (∑ j : Fin 3, (r.sourcePrefixes blank j).length) = ∑ j : Fin 3, (r.targetPrefixes M blank j).length := by …Mentions: OAI.ForcedComputation.Recorder.Machine, OAI.ForcedComputation.Balanced.Row
- abbrev
OAI.ForcedComputation.Balanced.Stackline 100 - abbrev
OAI.ForcedComputation.Balanced.Tailsline 101 - structure
OAI.ForcedComputation.Balanced.Configurationline 103 - def
OAI.ForcedComputation.Balanced.prefixConfigurationline 107 - def
OAI.ForcedComputation.Balanced.Row.sourceline 111 - def
OAI.ForcedComputation.Balanced.Row.targetline 114 - def
OAI.ForcedComputation.Balanced.Stepline 119Source documentation
A row replaces exactly its three specified prefixes and preserves every tail.
def Step (M : Recorder.Machine Q A) (blank : A) (x y : Configuration Q A) : Prop := …Mentions: OAI.ForcedComputation.Recorder.Machine, OAI.ForcedComputation.Balanced.Configuration
- theorem
OAI.ForcedComputation.Balanced.Row.stepline 123 - theorem
OAI.ForcedComputation.Balanced.prependWord_injectiveline 129Source documentation
Finite words followed by an independent infinite tail decompose uniquely.
theorem prependWord_injective (w : List (Symbol Q A)) : Function.Injective (Radix.prependWord w) := by …Mentions: OAI.ForcedComputation.Balanced.Symbol, OAI.ForcedComputation.Radix.prependWord
- theorem
OAI.ForcedComputation.Balanced.Row.source_tails_injectiveline 139 - theorem
OAI.ForcedComputation.Balanced.Row.target_tails_injectiveline 146 - def
OAI.ForcedComputation.Balanced.targetKeyline 154Source documentation
Every target control specifies the stack whose top identifies the incoming row.
def targetKey (c : Configuration Q A) : Control Q × Symbol Q A := …
Mentions: OAI.ForcedComputation.Balanced.Configuration, OAI.ForcedComputation.Balanced.Control, OAI.ForcedComputation.Balanced.Symbol
- def
OAI.ForcedComputation.Balanced.Row.targetKeyline 161 - theorem
OAI.ForcedComputation.Balanced.Row.targetKey_eqline 172 - theorem
OAI.ForcedComputation.Balanced.Row.targetKey_injectiveline 178 - theorem
OAI.ForcedComputation.Balanced.Row.target_rows_eqline 184Source documentation
Incoming branches are disjoint for arbitrary independent stack tails.
theorem Row.target_rows_eq (M : Recorder.Machine Q A) (blank : A) {r s : Row Q A} {u v : Tails Q A} (h : r.target M blank u = s.target M blank v) : r = s := by …Mentions: OAI.ForcedComputation.Recorder.Machine, OAI.ForcedComputation.Balanced.Row, OAI.ForcedComputation.Balanced.Tails
- theorem
OAI.ForcedComputation.Balanced.Row.target_uniqueline 191Source documentation
The complete target state recovers both the row and all three original tails.
theorem Row.target_unique (M : Recorder.Machine Q A) (blank : A) {r s : Row Q A} {u v : Tails Q A} (h : r.target M blank u = s.target M blank v) : r = s ∧ u = v := by …Mentions: OAI.ForcedComputation.Recorder.Machine, OAI.ForcedComputation.Balanced.Row, OAI.ForcedComputation.Balanced.Tails
- def
OAI.ForcedComputation.Balanced.decodeSourceline 200Source documentation
A finite source decoder. It need not accept malformed configurations; on each guarded source cylinder it recovers the unique table row.
def decodeSource (M : Recorder.Machine Q A) (c : Configuration Q A) : Option (Row Q A) := …
Mentions: OAI.ForcedComputation.Recorder.Machine, OAI.ForcedComputation.Balanced.Configuration, OAI.ForcedComputation.Balanced.Row
- theorem
OAI.ForcedComputation.Balanced.Row.decode_sourceline 226 - theorem
OAI.ForcedComputation.Balanced.Row.source_rows_eqline 233Source documentation
Outgoing guarded branches are disjoint on the complete tail domains.
theorem Row.source_rows_eq {M : Recorder.Machine Q A} {blank : A} {r s : Row Q A} (hr : r.Allowed M) (hs : s.Allowed M) {u v : Tails Q A} (h : r.source blank u = s.source blank v) : r = s := by …Mentions: OAI.ForcedComputation.Recorder.Machine, OAI.ForcedComputation.Balanced.Row, OAI.ForcedComputation.Balanced.Tails
- theorem
OAI.ForcedComputation.Balanced.Step.deterministicline 240 - theorem
OAI.ForcedComputation.Balanced.Step.predecessor_uniqueline 249