Documentation

Complexity.Computability.TreeEval.Reader.Cert.Regs

Register operations within linear work space #

The register operations of Cslib.TreeEval.Reader are tidily computable within work space linear in the lengths of their encoded arguments.

Main results #

@[reducible, inline]

The encoding of register indices.

Instances For

    Selecting a register, given the registers and the index within a budget.

    Replacing a register.

    theorem Cslib.TreeEval.Reader.scale_inSpace {α : Type} {encIn : α ↪ List Bool} {Bs p a : α → ℕ} {R : α → Regs} {r : α → Fin 3} (hp : Turing.MultiTapeTM.ComputableTidilyInSpace p encIn Turing.MultiTapeTM.encNat Bs) (ha : Turing.MultiTapeTM.ComputableTidilyInSpace a encIn Turing.MultiTapeTM.encNat Bs) (hR : Turing.MultiTapeTM.ComputableTidilyInSpace R encIn encRegs Bs) (hr : Turing.MultiTapeTM.ComputableTidilyInSpace r encIn encReg Bs) (hin : Turing.MultiTapeTM.BigOLe (fun (x : α) => (encIn x).length) Bs) (hB : Turing.MultiTapeTM.BigOLe (fun (x : α) => ((R x).get (r x)).length * ((Turing.MultiTapeTM.encNat (p x)).length + (Turing.MultiTapeTM.encNat (a x)).length)) Bs) :
    Turing.MultiTapeTM.ComputableTidilyInSpace (fun (x : α) => Regs.scale (p x) (r x) (a x) (R x)) encIn encRegs Bs

    Multiplying a register by a residue, within a budget that covers the register with every entry as long as the prime and the factor together.

    Subtracting c times the sums of a pass from a register, within a budget that covers the register with every entry as long as the prime.