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.start_lt {n R : ℕ} {f : BitVec n → BitVec n} (chart : CounterIntervalChart f R) (j : Fin R) :
    chart.start j < 2 ^ n

    Every interval start chart.start j is strictly below 2 ^ n.

    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 word x inside interval j is reached from chart.start j after x.toNat - chart.start j steps of f.

    A nonrepeating interval cannot be longer than its permutation cycle.

    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) :

      Every element b ∈ S strictly above a is an upper bound on nextBoundary S N a.

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