Documentation

Complexitylib.Algebraic.LowerBound.Fusion.Arithmetic.Progress

Reverse-substitution progress measures for constant-free arithmetic circuits #

This module preserves the original constant-free API as a compatibility layer over Progress.General. The generic module contains the circuit-DAG telescoping argument; here the named-constant alphabet is specialized to PEmpty.

Keeping the specialization separate lets existing lower bounds continue to construct the four-field constant-free Measure, while new developments may use General.Measure and supply a local law for named constants.

The unique interpretation of an empty constant alphabet.

Equations
Instances For

    Expanding a wire-variable recovers the polynomial on that wire.

    Reverse substitution agrees with ordinary circuit evaluation.

    The constant-free progress-measure interface retained for compatibility.

    Instances For

      Extend a constant-free measure across the empty constant alphabet.

      Equations
      • measure.toGeneral = { value := measure.value, variable_zero := ⋯, add_substitution_le := ⋯, mul_substitution_le := ⋯, constant_substitution_le := ⋯ }
      Instances For
        theorem Algebraic.Fusion.Arithmetic.Progress.Measure.reverseSubstitution_le {n g : ℕ} {operationCost : OperationCost (Arithmetic.signature PEmpty.{u_1 + 1})} (measure : Measure operationCost) (line : Line (Arithmetic.signature PEmpty.{u_1 + 1}) n g) (polynomial : MvPolynomial (Fin (n + g + 1)) ℕ) :
        measure.value (n + g) ((lineReverseSubstitution line) polynomial) ≤ measure.value (n + g + 1) polynomial + operationCost line.op

        One reverse gate substitution obeys the local progress estimate.

        theorem Algebraic.Fusion.Arithmetic.Progress.Measure.expansionHom_le_cost {n g : ℕ} {operationCost : OperationCost (Arithmetic.signature PEmpty.{u_1 + 1})} (measure : Measure operationCost) (program : Program (Arithmetic.signature PEmpty.{u_1 + 1}) n g) (polynomial : MvPolynomial (Fin (n + g)) ℕ) :
        measure.value n ((programExpansionHom program) polynomial) ≤ measure.value (n + g) polynomial + Program.cost operationCost program

        Local estimates telescope across the circuit DAG.

        The expanded output's measure is bounded by circuit cost.

        theorem Algebraic.Fusion.Arithmetic.Progress.Measure.circuit_lowerBound {n : ℕ} {operationCost : OperationCost (Arithmetic.signature PEmpty.{u_1 + 1})} (measure : Measure operationCost) (target : MvPolynomial (Fin n) ℕ) (circuit : Circuit (Arithmetic.signature PEmpty.{u_1 + 1}) n 1) (constructs : { inputCount := n, inputs := MvPolynomial.X, target := target }.Constructs circuit (polynomialInterpretation (Fin n))) :
        measure.value n target ≤ circuit.cost operationCost

        Every constant-free arithmetic circuit computing target pays its progress measure.