Documentation

Complexity.Computability.Circuit.Boolean.Iteration.CounterChart.Basic

Linear intervals between edited counter edges #

Cut the ordinary linear order after each edited successor, and also at its two endpoints. There are at most r+1 intervals. Inside each interval the trajectory is ordinary increment, without circular wraparound. This is the semantic chart used by the sparse live-time circuit.

Main definitions #

Main results #

References #

A covering by ordinary intervals on which iteration is translation. No permutation hypothesis is needed for this local trajectory certificate.

Instances For
    theorem Cslib.Circuits.Boolean.Iteration.CounterIntervalChart.point_eq {n R : ℕ} {f : BitVec n → BitVec n} (chart : CounterIntervalChart f R) (j : Fin R) (x : BitVec n) (hlo : chart.start j ≤ x.toNat) (hhi : x.toNat < chart.stop j) :
    f^[x.toNat - chart.start j] (BitVec.ofNat n (chart.start j)) = x

    A nonrepeating interval cannot be longer than its permutation cycle.

    Starts of the linear pieces; the last counter edge creates no additional piece.

    Instances For

      The next start, or the upper endpoint of the whole universe.

      Instances For
        theorem Cslib.Circuits.Boolean.Iteration.nextBoundary_le_of_mem (S : Finset ℕ) (N a b : ℕ) (hb : b ∈ S) (hab : a < b) :
        theorem Cslib.Circuits.Boolean.Iteration.exists_covering_interval (S : Finset ℕ) {N x : ℕ} (hzero : 0 ∈ S) (hx : x < N) :
        ∃ a ∈ S, a ≤ x ∧ x < nextBoundary S N a

        A finite set of starts containing zero covers the whole linear universe.

        theorem Cslib.Circuits.Boolean.Iteration.counterInterval_step {n : ℕ} (f : BitVec n → BitVec n) {a i : ℕ} (hai : a ≤ i) (hi : i + 1 < nextBoundary (counterIntervalStarts f) (2 ^ n) a) :
        f (BitVec.ofNat n i) = BitVec.ofNat n (i + 1)

        Before the next cut, the actual update agrees with numerical increment.

        Every sparse counter modification has a chart of at most r+1 intervals. This existence theorem does not charge a preprocessing algorithm.