Documentation

Complexitylib.Classes.PPoly.Advice.Reverse.Internal

Nonuniform circuits as polynomial advice — proof internals #

This module supplies a circuit family member's canonical code as advice to the verified serialized evaluator. It proves polynomial advice length, evaluator correctness on that advice, and polynomial time measured in the original input length.

Internal proof that canonical member encodings of a polynomial-size family form polynomial-length advice.

Internal correctness of the serialized evaluator when F.encodeAt is used as its length-dependent advice.

theorem Complexity.CircuitFamily.adviceEvalTime_bigO_internal (F : CircuitFamily Basis.andOr2) {d : } (hsize : BigO F.size fun (x : ) => x ^ d) :
BigO F.adviceEvalTime fun (x : ) => x ^ (4 * (d + 1))

Internal polynomial bound for evaluating the canonical member-code advice of a polynomial-size circuit family.

theorem Complexity.CircuitFamily.Decides.mem_PAdvice_internal {F : CircuitFamily Basis.andOr2} {L : Language} {d : } (hdec : F.Decides L) (hsize : BigO F.size fun (x : ) => x ^ d) :

Internal packaging of one polynomial-size deciding circuit family as a polynomial-time advised evaluator.

Internal proof that polynomial-size nonuniform circuits can be evaluated in polynomial time using their canonical member codes as advice.