OAI/Computability/Superstring/Combinators.lean
39 declarations, 0 contain sorry, 0 declared as axioms
- theorem
OAI.Superstring.BitCode.bitSize_sublistline 7 - theorem
OAI.Superstring.BitCode.bitSize_appendline 14 - def
OAI.Superstring.BitCode.foldStepline 20 - theorem
OAI.Superstring.BitCode.iterate_foldStepline 25 - theorem
OAI.Superstring.BitCode.Poly.foldStepline 38 - theorem
OAI.Superstring.BitCode.Poly.foldlline 48Source documentation
A bounded list fold, with its genuine encoded-data invariant exposed. The bound concerns mathematical intermediate values, not an assumed runtime.
theorem foldl {α β : Type} [Coded α] [Coded β] {f : β → α → β} (hf : Poly (fun p : β × α => f p.1 p.2)) (R : Polynomial ℕ) (hs : ∀ (xs : List α) (a : β) (j : ℕ), bitSize ((xs.take j).foldl f a) ≤ R.eval (bitSize (xs, a))) : Poly (fun p : List α × β => p.1.foldl f p.2) := by …Mentions: OAI.Superstring.BitCode.Coded, OAI.Superstring.BitCode.Poly, OAI.Superstring.BitCode.bitSize
- theorem
OAI.Superstring.BitCode.bitSize_memline 79 - theorem
OAI.Superstring.BitCode.foldl_size_additiveline 88 - theorem
OAI.Superstring.BitCode.Poly.foldl_additiveline 104 - theorem
OAI.Superstring.BitCode.Poly.reverseline 126 - theorem
OAI.Superstring.BitCode.bitSize_reverseline 144 - theorem
OAI.Superstring.BitCode.Poly.mapline 155 - theorem
OAI.Superstring.BitCode.Poly.appendline 171 - theorem
OAI.Superstring.BitCode.Poly.lengthline 183 - theorem
OAI.Superstring.BitCode.Poly.notline 197 - theorem
OAI.Superstring.BitCode.Poly.andline 201 - theorem
OAI.Superstring.BitCode.Poly.orline 205 - theorem
OAI.Superstring.BitCode.Poly.eqBoolline 209 - theorem
OAI.Superstring.BitCode.Poly.predline 213 - theorem
OAI.Superstring.BitCode.Poly.isZeroline 220 - theorem
OAI.Superstring.BitCode.Poly.addline 227 - def
OAI.Superstring.BitCode.Block.encodeBitListline 251 - theorem
OAI.Superstring.BitCode.Block.encodeBitList_execline 254 - theorem
OAI.Superstring.BitCode.fold_encodeBitListline 275 - theorem
OAI.Superstring.BitCode.listCode_bitline 284 - theorem
OAI.Superstring.BitCode.Poly.encodingline 295Source documentation
Materialize the input encoding as an ordinary typed bit list. Each marker and bit is written by charged finite-state stack code.
theorem encoding {α : Type} [Coded α] : Poly (bits : α → List Bool) := by …Mentions: OAI.Superstring.BitCode.Coded, OAI.Superstring.BitCode.Poly, OAI.Superstring.BitCode.bits
- def
OAI.Superstring.BitCode.compareBitsStepline 324 - theorem
OAI.Superstring.BitCode.compareBits_correctline 329 - theorem
OAI.Superstring.BitCode.compareBits_sizeline 342 - theorem
OAI.Superstring.BitCode.Poly.compareBitsStepline 349 - theorem
OAI.Superstring.BitCode.Poly.eqBitsline 362 - theorem
OAI.Superstring.BitCode.Poly.eqline 371 - theorem
OAI.Superstring.BitCode.bitSize_map_leline 387 - def
OAI.Superstring.BitCode.mapWithStepline 398 - theorem
OAI.Superstring.BitCode.foldl_mapWithStepline 401 - theorem
OAI.Superstring.BitCode.Poly.mapWithline 412 - theorem
OAI.Superstring.BitCode.Poly.flattenline 449 - theorem
OAI.Superstring.BitCode.Poly.filterline 467 - theorem
OAI.Superstring.BitCode.Poly.filterWithline 479