One executable Gaussian stage of the hiding prefix scan #
The stage queries the next register and its matrix, solves for the claimed component, checks the solution by matrix multiplication, and replaces exactly that register in the seed witness. The returned prefix is the old prefix plus the claimed new component. Every operation has an ambient polynomial bound.
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
Instances For
Equations
Instances For
noncomputable def
MIPRE.Introspection.AuxiliaryScan.stageMask
(f : Cost.PolyTimeFun AuxiliarySource.Context Cost.BitStr)
:
Equations
Instances For
noncomputable def
MIPRE.Introspection.AuxiliaryScan.stageMatrix
(m : Cost.PolyTimeFun AuxiliarySource.Context (List Cost.BitStr))
:
Equations
Instances For
noncomputable def
MIPRE.Introspection.AuxiliaryScan.target
(f : Cost.PolyTimeFun AuxiliarySource.Context Cost.BitStr)
:
Equations
Instances For
noncomputable def
MIPRE.Introspection.AuxiliaryScan.solution
(f : Cost.PolyTimeFun AuxiliarySource.Context Cost.BitStr)
(m : Cost.PolyTimeFun AuxiliarySource.Context (List Cost.BitStr))
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
MIPRE.Introspection.AuxiliaryScan.stage
(f : Cost.PolyTimeFun AuxiliarySource.Context Cost.BitStr)
(m : Cost.PolyTimeFun AuxiliarySource.Context (List Cost.BitStr))
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.Introspection.AuxiliaryScan.stage_correct
(f : Cost.PolyTimeFun AuxiliarySource.Context Cost.BitStr)
(m : Cost.PolyTimeFun AuxiliarySource.Context (List Cost.BitStr))
(ctx : AuxiliarySource.Context)
{n : ℕ}
(S : Finset (Fin n))
(L : (Fin n → CL.𝔽₂) →ₗ[CL.𝔽₂] Fin n → CL.𝔽₂)
(u y x : Fin n → CL.𝔽₂)
(hu : AuxiliarySource.inputPrefix.toFun ctx = CL.toBits u)
(hS : f.toFun ctx = CL.indicatorBits S)
(hL : m.toFun ctx = LowDegree.BinaryLinear.matrixBits (LinearMap.toMatrix' L))
: