Polynomial-time pairing and unpairing #
The pairing codec pair of Complexitylib.Encoding.Pairing is the library's
canonical way to hand a machine two strings at once. This file records that the
codec is polynomial-time in both directions: pairing two polynomial-time values
is polynomial-time, and so are the projections pairFst / pairSnd, whose
scanners are the block machines of Cobham's algebra.
Main results #
pairFst_mem_FP,pairSnd_mem_FP— the projections are polynomial-timemem_FP_pair— pairing two polynomial-time functions is polynomial-timemem_FP_pair_right— pairing a polynomial-time value with the input itselfmem_P_preimage_pairFst,mem_P_preimage_pairSnd— deciding a language of one component of a pair is polynomial-time