lean4-htt/src/Std/Do
Paul Reichert 2980155f5c
refactor: simplify ToIterator (#11242)
This PR significantly changes the signature of the `ToIterator` type
class. The obtained iterators' state is no longer dependently typed and
is an `outParam` instead of being bundled inside the class. Among other
benefits, `simp` can now rewrite inside of `Slice.toList` and
`Slice.toArray`. The downside is that we lose flexibility. For example,
the former combinator-based implementation of `Subarray`'s iterators is
no longer feasible because the states are dependently typed. Therefore,
this PR provides a hand-written iterator for `Subarray`, which does not
require a dependently typed state and is faster than the previous one.

Converting a family of dependently typed iterators into a simply typed
one using a `Sigma`-state iterator generates forbiddingly bad code, so
that we do provide such a combinator. This PR adds a benchmark for this
problem.
2025-11-22 12:37:18 +00:00
..
SPred chore: remove duplicate lemmas in Std.Do.SPred (#11006) 2025-10-29 07:26:24 +00:00
Triple refactor: simplify ToIterator (#11242) 2025-11-22 12:37:18 +00:00
WP feat: zero cost BaseIO (#10625) 2025-10-22 10:55:12 +02:00
PostCond.lean feat: implement Std.Do.Triple.mp (#9931) 2025-08-15 17:44:15 +00:00
PredTrans.lean chore: fix the docstring of PredTrans.conjunctive (#10691) 2025-10-07 08:56:13 +00:00
SPred.lean chore: remove public section from end of files (#10684) 2025-10-06 13:30:48 +00:00
Triple.lean chore: remove public section from end of files (#10684) 2025-10-06 13:30:48 +00:00
WP.lean feat: zero cost BaseIO (#10625) 2025-10-22 10:55:12 +02:00