OAI/Computability/Logspace/RecursivePrograms.lean
211 declarations, 0 contain sorry, 0 declared as axioms
Measured stack encodings and the realization of recursive programs with simultaneous space bounds.
From OpenAI, Exact Derandomization of Logarithmic Space: L = RL = BPL.
- def
OAI.ExactDerandomization.Relay.lbline 20 - lemma
OAI.ExactDerandomization.Relay.lb_posline 22 - lemma
OAI.ExactDerandomization.Relay.lb_zeroline 23 - lemma
OAI.ExactDerandomization.Relay.lb_oneline 24 - lemma
OAI.ExactDerandomization.Relay.belowline 25 - lemma
OAI.ExactDerandomization.Relay.aboveline 26 - lemma
OAI.ExactDerandomization.Relay.modestline 30 - lemma
OAI.ExactDerandomization.Relay.growingline 38 - lemma
OAI.ExactDerandomization.Relay.lb_le_incline 42 - lemma
OAI.ExactDerandomization.Relay.lb_monoline 44 - lemma
OAI.ExactDerandomization.Relay.lb_succline 46 - lemma
OAI.ExactDerandomization.Relay.lb_plusline 48 - lemma
OAI.ExactDerandomization.Relay.lb_timesline 53 - lemma
OAI.ExactDerandomization.Relay.lb_shiftline 56 - def
OAI.ExactDerandomization.Relay.cordline 64 - lemma
OAI.ExactDerandomization.Relay.cord_boundsline 66 - lemma
OAI.ExactDerandomization.Relay.lb_cordline 86 - lemma
OAI.ExactDerandomization.Relay.cord_fineline 97 - def
OAI.ExactDerandomization.Relay.discoverline 105 - def
OAI.ExactDerandomization.Relay.pierceline 108 - def
OAI.ExactDerandomization.Relay.wingline 109 - def
OAI.ExactDerandomization.Relay.middleline 110 - def
OAI.ExactDerandomization.Relay.foreline 111 - def
OAI.ExactDerandomization.Relay.aftline 112 - lemma
OAI.ExactDerandomization.Relay.pierce_ruleline 114 - lemma
OAI.ExactDerandomization.Relay.wing_cordline 152 - lemma
OAI.ExactDerandomization.Relay.middle_cordline 158 - lemma
OAI.ExactDerandomization.Relay.fore_cordline 165 - lemma
OAI.ExactDerandomization.Relay.aft_cordline 166 - def
OAI.ExactDerandomization.Relay.beadline 170 - def
OAI.ExactDerandomization.Relay.heedline 171 - def
OAI.ExactDerandomization.Relay.readtline 172 - lemma
OAI.ExactDerandomization.Relay.heed_eqline 174 - lemma
OAI.ExactDerandomization.Relay.read_eqline 175 - lemma
OAI.ExactDerandomization.Relay.bead_smallline 177 - def
OAI.ExactDerandomization.Relay.huntline 190 - lemma
OAI.ExactDerandomization.Relay.under_powline 192 - lemma
OAI.ExactDerandomization.Relay.foundline 210 - lemma
OAI.ExactDerandomization.Relay.run_huntEline 224Source documentation
E calculation of a "current or small index" loop
lemma run_huntE (f : NE) (p : ℕ→ℕ→Prop) [(x y : ℕ) → Decidable (p x y)] (hp : ∀ {g j:NE}, E g → E j → Counter.Pick (fun x a => decide (p (g x a) (j x a)))) (h : E f) : E (fun x a => forNat (fun j v=> if p (f x a) j then j+1 else v) 0 (f x a)) := by …Mentions: OAI.ExactDerandomization.Counter.Pick
- lemma
OAI.ExactDerandomization.Relay.log2Eline 243 - lemma
OAI.ExactDerandomization.Relay.lbEline 256 - lemma
OAI.ExactDerandomization.Relay.digitsEline 257 - lemma
OAI.ExactDerandomization.Relay.cordEline 265 - lemma
OAI.ExactDerandomization.Relay.pierceEline 269 - lemma
OAI.ExactDerandomization.Relay.wingEline 273 - lemma
OAI.ExactDerandomization.Relay.middleEline 275 - lemma
OAI.ExactDerandomization.Relay.foreEline 276 - lemma
OAI.ExactDerandomization.Relay.aftEline 277 - def
OAI.ExactDerandomization.Relay.Uniline 279 - class
OAI.ExactDerandomization.Relay.Wireline 281 - abbrev
OAI.ExactDerandomization.Relay.measureline 289 - instance
OAI.ExactDerandomization.Relay.(instance at line 291)line 291 - lemma
OAI.ExactDerandomization.Relay.enc_natline 292 - instance
OAI.ExactDerandomization.Relay.(instance at line 294)line 294 - instance
OAI.ExactDerandomization.Relay.(instance at line 304)line 304 - lemma
OAI.ExactDerandomization.Relay.dec_roundline 313 - lemma
OAI.ExactDerandomization.Relay.measure_pairline 314 - abbrev
OAI.ExactDerandomization.Relay.PTline 318Source documentation
Pointwise semantic LF functions requiring only wire encodings.
abbrev PT (α β : Type) := Word→α→β
Mentions: OAI.ExactDerandomization.Word
- def
OAI.ExactDerandomization.Relay.Knline 320 - lemma
OAI.ExactDerandomization.Relay.Kn.identityline 325 - lemma
OAI.ExactDerandomization.Relay.Kn.compline 327 - lemma
OAI.ExactDerandomization.Relay.Kn.tupleline 331 - lemma
OAI.ExactDerandomization.Relay.Kn.firstline 335 - lemma
OAI.ExactDerandomization.Relay.Kn.nextline 338 - lemma
OAI.ExactDerandomization.Relay.Kn.leftline 341 - lemma
OAI.ExactDerandomization.Relay.Kn.rightline 342 - lemma
OAI.ExactDerandomization.Relay.Kn.washline 343 - lemma
OAI.ExactDerandomization.Relay.Kn.unpackline 344 - lemma
OAI.ExactDerandomization.Relay.Kn.fixline 345 - lemma
OAI.ExactDerandomization.Relay.Kn.wordline 346 - lemma
OAI.ExactDerandomization.Relay.Kn.addline 351 - lemma
OAI.ExactDerandomization.Relay.Kn.subline 352 - lemma
OAI.ExactDerandomization.Relay.Kn.timesline 353 - lemma
OAI.ExactDerandomization.Relay.Kn.divline 354 - lemma
OAI.ExactDerandomization.Relay.Kn.modline 355 - lemma
OAI.ExactDerandomization.Relay.Kn.powerline 356 - lemma
OAI.ExactDerandomization.Relay.Kn.succline 357 - lemma
OAI.ExactDerandomization.Relay.Kn.predline 358 - lemma
OAI.ExactDerandomization.Relay.Kn.condline 360 - lemma
OAI.ExactDerandomization.Relay.Kn.leline 366 - lemma
OAI.ExactDerandomization.Relay.Kn.ltline 370 - lemma
OAI.ExactDerandomization.Relay.Kn.eqline 372 - lemma
OAI.ExactDerandomization.Relay.Kn.cond_leline 376 - lemma
OAI.ExactDerandomization.Relay.Kn.cond_ltline 379 - lemma
OAI.ExactDerandomization.Relay.Kn.cond_eqline 382 - lemma
OAI.ExactDerandomization.Relay.Kn.capline 385 - lemma
OAI.ExactDerandomization.Relay.Kn.smallline 388 - lemma
OAI.ExactDerandomization.Relay.Kn.blline 390 - lemma
OAI.ExactDerandomization.Relay.Kn.pushline 392 - lemma
OAI.ExactDerandomization.Relay.Kn.topline 394 - lemma
OAI.ExactDerandomization.Relay.Kn.tailline 396 - lemma
OAI.ExactDerandomization.Relay.Kn.strollline 400Source documentation
LF state loops with a uniform numeric ceiling given by another LF expression
lemma stroll (step : PT (α×ℕ×ℕ) ℕ) (n z limit : PT α ℕ) (h : Kn step) (hn:Kn n) (hz:Kn z) (he:Kn limit) (hp : ∀ x a,∀ j≤ n x a, forNat (fun k v=>step x (a,k,v)) (z x a) j ≤ limit x a) : Kn (fun x a=> forNat (fun k v=> step x (a,k,v)) (z x a) (n x a)) := by …Mentions: OAI.ExactDerandomization.Relay.PT, OAI.ExactDerandomization.Relay.Kn
- lemma
OAI.ExactDerandomization.Relay.cord_monoline 428 - lemma
OAI.ExactDerandomization.Relay.bead_monoline 431 - lemma
OAI.ExactDerandomization.Relay.pair_monoline 432 - lemma
OAI.ExactDerandomization.Relay.Kn.foldline 434 - def
OAI.ExactDerandomization.Relay.meshline 449 - lemma
OAI.ExactDerandomization.Relay.mesh_lengthline 452 - lemma
OAI.ExactDerandomization.Relay.mesh_posline 456 - lemma
OAI.ExactDerandomization.Relay.measure_meshline 457 - lemma
OAI.ExactDerandomization.Relay.mesh_appendline 460 - lemma
OAI.ExactDerandomization.Relay.mesh_reverseline 466 - def
OAI.ExactDerandomization.Relay.ebbline 475 - def
OAI.ExactDerandomization.Relay.sweepline 477 - lemma
OAI.ExactDerandomization.Relay.Kn.sweepKline 482 - inductive
OAI.ExactDerandomization.Relay.Scanline 506 - lemma
OAI.ExactDerandomization.Relay.Scan.startline 509 - lemma
OAI.ExactDerandomization.Relay.forNat_consline 511 - lemma
OAI.ExactDerandomization.Relay.exact_ebbline 519 - lemma
OAI.ExactDerandomization.Relay.exact_sweepline 544 - def
OAI.ExactDerandomization.Relay.caplenline 551 - def
OAI.ExactDerandomization.Relay.windbackline 552 - lemma
OAI.ExactDerandomization.Relay.Kn.caplenKline 556 - lemma
OAI.ExactDerandomization.Relay.Kn.windbackKline 557 - lemma
OAI.ExactDerandomization.Relay.backscanline 560 - lemma
OAI.ExactDerandomization.Relay.windback_meshline 582 - structure
OAI.ExactDerandomization.Relay.Cubline 602 - abbrev
OAI.ExactDerandomization.Relay.Siteline 606 - abbrev
OAI.ExactDerandomization.Relay.Plotline 607 - abbrev
OAI.ExactDerandomization.Relay.Slipline 608 - abbrev
OAI.ExactDerandomization.Relay.Drainline 609 - abbrev
OAI.ExactDerandomization.Relay.Flagline 610 - inductive
OAI.ExactDerandomization.Relay.Cogline 612 - structure
OAI.ExactDerandomization.Relay.Fareline 619 - def
OAI.ExactDerandomization.Relay.Fare.atmline 622 - def
OAI.ExactDerandomization.Relay.Fare.pullline 625 - inductive
OAI.ExactDerandomization.Relay.Bootsline 627 - lemma
OAI.ExactDerandomization.Relay.Boots.fitsline 648 - inductive
OAI.ExactDerandomization.Relay.Actline 651 - structure
OAI.ExactDerandomization.Relay.Gridline 657 - inductive
OAI.ExactDerandomization.Relay.Grid.Routeline 670Source documentation
routes represent synchronous, hence restoring-program-frame execution. (They need not be cursor-restoring.)
inductive Route (r:Grid) (x:Word) (F:Fare) : ℕ→ℕ→Site→ℕ→Site→Prop | edit {q i a j b f} : r.prog i=.edit f j → f.f x (q,a)=b → i≤r.slot → j≤r.slot → F.atm q a → F.atm q b → Route r x F q i a j b | toss {q i a j b q' a' p e} : r.prog i=.toss p e j → p.f x (q,a.1)=q' → e.f x ((q,a.1),a')=b → i≤r.slot → j≤r.slot → F.atm q a → F.atm q b → F.pull q a.1 q' → Route r x F q' r.entry (0,a.2) 0 a' → Route r x F q i a j b | fork {q i a j f s t} : r.prog i=.fork f s t → (if f.f x (q,a) then s else t)=j → i≤r.slot → j≤r.slot → F.atm q a → Route r x F q i a j a | seq {q i a j b l c} : Route r x F q i a j b → Route r x F q j b l c → Route r x F q i a l cMentions: OAI.ExactDerandomization.Relay.Grid, OAI.ExactDerandomization.Word, OAI.ExactDerandomization.Relay.Fare, OAI.ExactDerandomization.Relay.Site
- lemma
OAI.ExactDerandomization.Relay.Grid.Route.fitsline 681 - def
OAI.ExactDerandomization.Relay.Cog.Bodyline 688 - instance
OAI.ExactDerandomization.Relay.Cog.(instance at line 693)line 693 - def
OAI.ExactDerandomization.Relay.Cog.firstline 696 - def
OAI.ExactDerandomization.Relay.Cog.codeline 701 - lemma
OAI.ExactDerandomization.Relay.Cog.laysline 712 - lemma
OAI.ExactDerandomization.Relay.Cog.roomline 738 - abbrev
OAI.ExactDerandomization.Relay.Grid.Motorline 769 - abbrev
OAI.ExactDerandomization.Relay.Grid.Hoodline 770 - abbrev
OAI.ExactDerandomization.Relay.Grid.Carrierline 771 - def
OAI.ExactDerandomization.Relay.Grid.fameline 774Source documentation
which query was invoked from this instruction
def fame (x:Word) (a q:ℕ) : ℕ := …
Mentions: OAI.ExactDerandomization.Word
- def
OAI.ExactDerandomization.Relay.Grid.replayline 780 - lemma
OAI.ExactDerandomization.Relay.Grid.numerousline 786Source documentation
finite branch selection
lemma numerous {α β : Type} [Wire α] [Wire β] (f: Act→ PT α β) (h:∀ p,Kn (f p)) (n:PT α ℕ) (hn:Kn n) : Kn (fun x a=> f (r.prog (n x a)) x a) := by …Mentions: OAI.ExactDerandomization.Relay.Wire, OAI.ExactDerandomization.Relay.Act, OAI.ExactDerandomization.Relay.PT, OAI.ExactDerandomization.Relay.Kn
- lemma
OAI.ExactDerandomization.Relay.Grid.fameKline 804 - lemma
OAI.ExactDerandomization.Relay.Grid.replayKline 813 - def
OAI.ExactDerandomization.Relay.Grid.advanceline 817 - def
OAI.ExactDerandomization.Relay.Grid.recedeline 826 - def
OAI.ExactDerandomization.Relay.Grid.rollline 832 - lemma
OAI.ExactDerandomization.Relay.Grid.rollKline 838 - lemma
OAI.ExactDerandomization.Relay.Grid.Scan.snatchline 866 - lemma
OAI.ExactDerandomization.Relay.Grid.replay_sline 872 - lemma
OAI.ExactDerandomization.Relay.Grid.parkedline 876 - inductive
OAI.ExactDerandomization.Relay.WPathline 888Source documentation
bounded transitive closure
inductive WPath {α} (safe:α→Prop) (g:α→α) : α→α→Prop | start {x} (h:safe x) : WPath safe g x x | next {x y z} : safe x → g x=y → WPath safe g y z → WPath safe g x z - lemma
OAI.ExactDerandomization.Relay.WPath.seqline 891 - def
OAI.ExactDerandomization.Relay.Grid.elbowline 897 - lemma
OAI.ExactDerandomization.Relay.Grid.elbow_hiline 898 - def
OAI.ExactDerandomization.Relay.Grid.roomsline 899 - abbrev
OAI.ExactDerandomization.Relay.Grid.fitsMline 900 - lemma
OAI.ExactDerandomization.Relay.Grid.seatsline 902 - lemma
OAI.ExactDerandomization.Relay.Grid.extends_byline 929 - theorem
OAI.ExactDerandomization.Relay.Grid.journeyline 941 - abbrev
OAI.ExactDerandomization.Relay.hitloopline 983 - lemma
OAI.ExactDerandomization.Relay.conserveline 985 - lemma
OAI.ExactDerandomization.Relay.foreverline 989 - lemma
OAI.ExactDerandomization.Relay.quickline 992 - lemma
OAI.ExactDerandomization.Relay.WPath.clipIterline 1022 - abbrev
OAI.ExactDerandomization.Relay.Grid.Jobline 1033 - def
OAI.ExactDerandomization.Relay.Grid.runline 1034 - lemma
OAI.ExactDerandomization.Relay.Grid.runKline 1041 - lemma
OAI.ExactDerandomization.Relay.Grid.actualline 1054 - theorem
OAI.ExactDerandomization.Relay.realizationline 1075Source documentation
Compilation of simultaneous stack certificates. Partial logspace function extension on all certified executions.
theorem realization (main:Cog) : ∃ f : PT Grid.Job Site, Kn f ∧ ∀ {x U F q a b}, 2^(F.meter q) ≤ U → F.limit ≤ U → Boots x F main q main a b → f x ((U,q),a)=b := by …Mentions: OAI.ExactDerandomization.Relay.Cog, OAI.ExactDerandomization.Relay.PT, OAI.ExactDerandomization.Relay.Grid.Job, OAI.ExactDerandomization.Relay.Site, OAI.ExactDerandomization.Relay.Kn, OAI.ExactDerandomization.Relay.Boots
- lemma
OAI.ExactDerandomization.Relay.Boots.sameline 1081 - abbrev
OAI.ExactDerandomization.Relay.spanline 1100 - abbrev
OAI.ExactDerandomization.Relay.chargeline 1101 - lemma
OAI.ExactDerandomization.Relay.movespanline 1102 - lemma
OAI.ExactDerandomization.Relay.leanerline 1105 - lemma
OAI.ExactDerandomization.Relay.acockline 1108 - lemma
OAI.ExactDerandomization.Relay.laxline 1112 - lemma
OAI.ExactDerandomization.Relay.span_monoline 1122 - structure
OAI.ExactDerandomization.Relay.Levelline 1127 - structure
OAI.ExactDerandomization.Relay.Lotline 1132Source documentation
fixed syntactic play, prices ignored until the enclosing layer is ready.
structure Lot where …
- def
OAI.ExactDerandomization.Relay.Lot.stateline 1140 - def
OAI.ExactDerandomization.Relay.Lot.jumpline 1142 - inductive
OAI.ExactDerandomization.Relay.Lot.Maneline 1148Source documentation
The clock argument is in b. q is the immutable tuple seen by the inline recipe (may be virtual, i.e. regenerated via an inline frame).
inductive Mane (l:Lot) (c : ℕ) (b : Level) (d : ℕ) (q : ℕ) : Cog→Site→Site→Prop | edit {p h j} : p.f l.x (q,h)=j → l.state c b h → l.state c b j → Mane l c b d q (.edit p) h j | toss {p e a a' u q'} : p.f l.x (q,a.1)=q' → e.f l.x ((q,a.1),a')=u → l.state c b a → l.state c b u → l.jump c b d a.1 q' → Boots l.x l.F l.P q' l.P (0,a.2) a' → Mane l c b d q (.toss p e) a u | seq {p s a y u} : Mane l c b d q p a y → Mane l c b d q s y u → Mane l c b d q (.seq p s) a u | yes {s u p a y} : s.f l.x (q,a)=true → Mane l c b d q p a y → Mane l c b d q (.bif s p u) a y …Mentions: OAI.ExactDerandomization.Relay.Lot, OAI.ExactDerandomization.Relay.Level, OAI.ExactDerandomization.Relay.Cog, OAI.ExactDerandomization.Relay.Site, OAI.ExactDerandomization.Relay.Boots
- lemma
OAI.ExactDerandomization.Relay.Lot.Mane.spotsline 1166 - lemma
OAI.ExactDerandomization.Relay.Lot.Mane.monoline 1169 - theorem
OAI.ExactDerandomization.Relay.Lot.Mane.issueline 1184 - def
OAI.ExactDerandomization.Relay.holdline 1208 - def
OAI.ExactDerandomization.Relay.markline 1209 - def
OAI.ExactDerandomization.Relay.unseatline 1210 - lemma
OAI.ExactDerandomization.Relay.markedline 1212 - lemma
OAI.ExactDerandomization.Relay.unseats0line 1213 - lemma
OAI.ExactDerandomization.Relay.holdcapline 1214 - def
OAI.ExactDerandomization.Relay.Cog.locateline 1227 - lemma
OAI.ExactDerandomization.Relay.Cog.locationline 1229 - lemma
OAI.ExactDerandomization.Relay.Cog.bindsline 1234 - theorem
OAI.ExactDerandomization.Relay.Cog.markKline 1237 - theorem
OAI.ExactDerandomization.Relay.Cog.unseatKline 1239 - def
OAI.ExactDerandomization.Relay.Cog.guard0line 1242 - def
OAI.ExactDerandomization.Relay.Cog.focusline 1245Source documentation
Inlining carries an inner tuple regenerated from q and the piece o.
def focus (v:Cog) : Cog := …
Mentions: OAI.ExactDerandomization.Relay.Cog
- lemma
OAI.ExactDerandomization.Relay.Cog.hitmarkline 1260 - lemma
OAI.ExactDerandomization.Relay.Cog.focus_wordline 1263 - abbrev
OAI.ExactDerandomization.Relay.Loreline 1299 - abbrev
OAI.ExactDerandomization.Relay.Pauseline 1300 - def
OAI.ExactDerandomization.Relay.topNoteline 1302 - def
OAI.ExactDerandomization.Relay.etchline 1305 - def
OAI.ExactDerandomization.Relay.gearline 1306 - lemma
OAI.ExactDerandomization.Relay.gear_atline 1309 - lemma
OAI.ExactDerandomization.Relay.etchesline 1311 - lemma
OAI.ExactDerandomization.Relay.Kn.bnegline 1316