Documentation

Complexitylib.Metacomplexity.MCSP.Magnification.AntiChecker.Counter.Encoding

Anti-checker counter encodings #

This module exposes the exact fixed-width interface between labeled sample prefixes and the approximate counter circuits used by the Anti-Checker Lemma.

@[simp]
theorem Complexity.GapMCSP.Magnification.AntiCheckerLemma.packLabeledSamples_input {count arity : } (samples : Fin countSuccinctMCSP.Sample arity) (sample : Fin count) (coordinate : Fin arity) :
packLabeledSamples samples (finProdFinEquiv (sample, coordinate.castSucc)) = (samples sample).input coordinate

Input coordinate j of packed sample i is stored at row-major position (i, j).

@[simp]
theorem Complexity.GapMCSP.Magnification.AntiCheckerLemma.packLabeledSamples_output {count arity : } (samples : Fin countSuccinctMCSP.Sample arity) (sample : Fin count) :
packLabeledSamples samples (finProdFinEquiv (sample, Fin.last arity)) = (samples sample).output

The last coordinate of each packed sample row stores its output label.

@[simp]
theorem Complexity.GapMCSP.Magnification.AntiCheckerLemma.unpackLabeledSample_packLabeledSamples {count arity : } (samples : Fin countSuccinctMCSP.Sample arity) (sample : Fin count) :
unpackLabeledSample (packLabeledSamples samples) sample = samples sample

Unpacking one row after packing recovers the original labeled sample.

@[simp]

Unpacking after packing recovers the complete labeled-sample vector.

@[simp]

Packing after unpacking recovers every fixed-width input string.

@[simp]
theorem Complexity.GapMCSP.Magnification.AntiCheckerLemma.packTargetSamples_input {count arity : } (target : BitString arityBool) (inputs : Fin countBitString arity) (sample : Fin count) (coordinate : Fin arity) :
packTargetSamples target inputs (finProdFinEquiv (sample, coordinate.castSucc)) = inputs sample coordinate

A target-labeled packed row preserves every input coordinate.

@[simp]
theorem Complexity.GapMCSP.Magnification.AntiCheckerLemma.packTargetSamples_output {count arity : } (target : BitString arityBool) (inputs : Fin countBitString arity) (sample : Fin count) :
packTargetSamples target inputs (finProdFinEquiv (sample, Fin.last arity)) = target (inputs sample)

A target-labeled packed row stores the target's value as its final bit.

A width-bit counter output always denotes a number below 2^width.