OAI/Combinatorics/LowSpaceSubsetSum/Representation/RepresentationReaderWork.lean
27 declarations, 0 contain sorry, 0 declared as axioms
Counted primitive structure operations of the representation reader
Replacement follows a single root-to-leaf path. Copying a snapshot instead visits every mutable tree node. The immutable occurrence arrays are shared. Counters below distinguish structural work from the cost of evaluating an arbitrary supplied key; concrete indexed-mask key evaluation is charged by the caller.
- def
OAI.LowSpaceSubsetSum.Tournament.countedReplaceline 22Source documentation
Rebuild one path, counting touched nodes.
def countedReplace (key : α → ℤ) : {d : ℕ} → Tree α d → (Fin d → Bool) → Option α → Tree α d × ℕ | 0, .leaf _, _, v => (.leaf v, 1) | _d + 1, .node _ l r, path, v => if path 0 then let s := countedReplace key r (fun i => path i.succ) v …Mentions: OAI.LowSpaceSubsetSum.Tournament.Tree, OAI.LowSpaceSubsetSum.Tournament.node
- theorem
OAI.LowSpaceSubsetSum.Tournament.countedReplace_valueline 33 - theorem
OAI.LowSpaceSubsetSum.Tournament.countedReplace_nodesline 42 - def
OAI.LowSpaceSubsetSum.Tournament.countedCopyline 52Source documentation
A full snapshot copy, charged by the size of one node record.
def countedCopy (recordCells : ℕ) : {d : ℕ} → Tree α d → Tree α d × ℕ | 0, .leaf v => (.leaf v, recordCells) | _d + 1, .node w l r => let a := countedCopy recordCells l …Mentions: OAI.LowSpaceSubsetSum.Tournament.Tree, OAI.LowSpaceSubsetSum.Tournament.node
- theorem
OAI.LowSpaceSubsetSum.Tournament.countedCopy_valueline 59 - theorem
OAI.LowSpaceSubsetSum.Tournament.countedCopy_cellsline 65 - def
OAI.LowSpaceSubsetSum.SliceCursor.countedNextline 81Source documentation
The three reader branches use no traversal of the backing array. The nonempty branch performs one indexed load and one cyclic cursor update.
def countedNext (xs : Array α) (s : State xs.size) : Option (α × State xs.size) × ℕ := …Mentions: OAI.LowSpaceSubsetSum.SliceCursor.State
- theorem
OAI.LowSpaceSubsetSum.SliceCursor.countedNext_valueline 91 - theorem
OAI.LowSpaceSubsetSum.SliceCursor.countedNext_workline 97 - def
OAI.LowSpaceSubsetSum.PairCursor.countedNextline 110 - theorem
OAI.LowSpaceSubsetSum.PairCursor.countedNext_valueline 115 - theorem
OAI.LowSpaceSubsetSum.PairCursor.countedNext_workline 119 - def
OAI.LowSpaceSubsetSum.FilteredStream.countedReadline 131 - theorem
OAI.LowSpaceSubsetSum.FilteredStream.countedRead_valueline 138 - theorem
OAI.LowSpaceSubsetSum.FilteredStream.countedRead_workline 142 - def
OAI.LowSpaceSubsetSum.RowMerge.countedAdvanceline 160Source documentation
The same winning-row advance, with one counted row call and a counted root path replacement. Eight units per visited node cover field access, path tests, rebuilding and a cached comparison; key evaluation is separate.
def countedAdvance (key : α → ℤ) (read : σ → Option (α × σ) × ℕ) (t : Tournament.Tree (Front d α σ) d) : Option (α × Tournament.Tree (Front d α σ) d) × ℕ := …Mentions: OAI.LowSpaceSubsetSum.Tournament.Tree, OAI.LowSpaceSubsetSum.RowMerge.Front
- theorem
OAI.LowSpaceSubsetSum.RowMerge.countedAdvance_valueline 171 - theorem
OAI.LowSpaceSubsetSum.RowMerge.countedAdvance_workline 180 - def
OAI.LowSpaceSubsetSum.MergedReader.countedNextline 197 - theorem
OAI.LowSpaceSubsetSum.MergedReader.countedNext_valueline 211 - theorem
OAI.LowSpaceSubsetSum.MergedReader.countedNext_workline 226 - def
OAI.LowSpaceSubsetSum.RepresentationPairData.countedReadline 242 - theorem
OAI.LowSpaceSubsetSum.RepresentationPairData.countedRead_valueline 250 - theorem
OAI.LowSpaceSubsetSum.RepresentationPairData.countedRead_workline 253 - def
OAI.LowSpaceSubsetSum.RepresentationPairData.countedSnapshotline 267Source documentation
Deep-copy the mutable reader tree while retaining the immutable array parameters. The extra record allowance in
snapshotCellscovers the root.def countedSnapshot (s : D.State) : D.State × ℕ := …
- theorem
OAI.LowSpaceSubsetSum.RepresentationPairData.countedSnapshot_valueline 272 - theorem
OAI.LowSpaceSubsetSum.RepresentationPairData.countedSnapshot_cellsline 276