Circuits returning complete visit schedules #
For any finite map f : BitString n → BitString n and state pair (x, y), the set of times t at
which f^[t] x = y is either empty or an arithmetic progression d + k * p where d < 2 ^ n is
the first hitting time and p = Function.minimalPeriod f y is the minimal return period of y
(with p = 0 when y is transient, encoding the singleton {d}).
Combining navigation_circuit (which computes the reachability bit and the (n + 1)-bit first
hitting time d) with minimal_period_circuit (which computes the (n + 1)-bit minimal period p
of y from cycle_label_circuit and periodicPts_circuit) yields a circuit of size
O(powerBudget n c.size (2 ^ n) L) returning the complete visit schedule record
(visit_schedule_circuit), and O(optimizedBudget n c.size (2 ^ n)) at the balanced checkpoint
spacing (visit_schedule_optimized).
Main definitions #
Cslib.Circuits.Boolean.Iteration.visitScheduleWidth: bit width(1 + (n + 1)) + (n + 1)of a visit-schedule record.Cslib.Circuits.Boolean.Iteration.visitScheduleFirst: unpacks the(n + 1)-bit first visit time.Cslib.Circuits.Boolean.Iteration.visitSchedulePeriod: unpacks the(n + 1)-bit return period.Cslib.Circuits.Boolean.Iteration.visitScheduleContains: membership of a timetin the schedule encoded by a record.Cslib.Circuits.Boolean.Iteration.visitScheduleCount: number of visits up to a deadlineTencoded by a record.
Main results #
Cslib.Circuits.Boolean.Iteration.minimal_period_circuit: computesFunction.minimalPeriod f xinn + 1bits within110000 * powerBudget n c.size (2 ^ n) Lgates.Cslib.Circuits.Boolean.Iteration.visitScheduleCount_spec:visitScheduleCount v Tequals the cardinality of{t ≤ T | visitScheduleContains v t}.Cslib.Circuits.Boolean.Iteration.visit_schedule_circuit: computes the complete visit-schedule record within5000000 * powerBudget n c.size (2 ^ n) Lgates.Cslib.Circuits.Boolean.Iteration.visit_schedule_optimized: square-root-size circuit returning complete visit schedules and bounded visit counts.
References #
- Adapted from lean/Proofs/VisitScheduleCircuits.lean in S. Schlesinger, Square-root circuit bounds for iterated functions.
Minimal return period, with zero denoting a transient state.
One reachability bit, an (n + 1)-bit first visit time, and an (n + 1)-bit return period.
Instances For
The (n + 1)-bit first hitting time field of a visit-schedule record.
Instances For
The (n + 1)-bit return period field of a visit-schedule record.
Instances For
Whether time t belongs to the arithmetic progression encoded by v.
Instances For
An arithmetic interpretation of a schedule; no additional-input gate bound is asserted.
Instances For
Visit-schedule circuit at spacing L. The returned record describes every visit time, with
period zero encoding a singleton visit to a transient target.
Square-root visit-schedule circuit. Optimizing L gives a circuit of size at most
15000000 * optimizedBudget n c.size (2 ^ n) whose output record characterizes all visit times and
determines the exact visit count up to any deadline T.