One declet, completely enumerated

Twenty-four codes no encoder writes

Across every three-digit input from 000 through 999, the Densely Packed Decimal encoder emits 1,000 of the 1,024 possible 10-bit declets. The other 24 have no encoder preimage. They are not invalid: the decoder accepts every one.

selected declet
computing
encoder preimages among 000 through 999
The certificate
THE CLAIM
No encoder preimage exists for exactly computing 10-bit declets in the one-declet DPD codomain.
DOMAIN SWEPT
Every ordered triple 000 through 999: computing inputs. Every 10-bit target is also inspected: computing targets.
METHOD
Encode each triple once into a 1,024-cell bitmap, assert every output is distinct, then inspect every cell.
POSITIVE CONTROL
The same target-preimage search must find 999 for the published declet 0011111111.
PLANTED WITNESS
Replace input 042's output record with one empty target, re-sweep the same 1,000 input labels, then remove it.
RESULT
the empty set for every one of the 24 real-domain preimage searches. Their total real preimage count is computing.
BOUND
Exactly one 3-digit to 10-bit DPD declet. This does not count missing whole decimal32, decimal64, or decimal128 words.
Running the live census.
The instrument can succeed

Empty is only evidence after found.

Both controls use the same target-preimage function as the census. It receives a target and the 1,000 labelled input records. It has no special branch for controls.

Published positive control

Ask for 0011111111

Cowlishaw's worked examples pair this declet with 999. The live search must return that one input and no other.

not run yet
Differential planted control

Empty, inject, found, remove

The synthetic record is visibly marked. It changes no input label and adds no new input. Only its output field is replaced.

real records 1,000 · target preimages 0 · empty set
Move the boundary

Choose any declet

0
encoder preimages
Enter one 10-bit string or a base-10 integer in range.
The full codomain

Every cell is asked.

computing reached
computing empty

encoder output no encoder preimage selected
The deeper result

The misses come in eight families.

A count of 24 spare outputs follows once 1,000 inputs map injectively into 1,024 codes. Their structure does not. Decode every possible code and group the results by decimal triple: almost every fiber has one member, but the eight triples made only of 8 and 9 have four.

computingdecoder fibers of size 1
computingdecoder fibers of size 4
Ready to run decode followed by encode.
canonicalize(code) = encode(decode(code))
Every canonical code is fixed. Every non-canonical code moves to the one encoder-written member of its fiber. Applying the operation twice changes nothing further.
decoder fiber containing the selected declet
...
The complete complement

All twenty-four, generated now.

Choose any code below. The encoder side stays empty. Turn on decoder-input mode and it becomes one of 888, 889, 898, 899, 988, 989, 998, or 999.

The check

What is fixed, recomputed, and outside the claim.

RECOMPUTED IN THIS PAGEThe 1,000-row encoder image, 1,024-row decoder graph, complement, round trips, fibers, positive control, and planted differential control.
BUILD-TIME INDEPENDENT PATHThe research verifier encodes with Boolean equations rather than the page's eight-case arrangement. It checks each round trip and the exact complement.
FREE CHOICESCodes are ordered as unsigned 10-bit integers in a 32 by 32 grid. The planted input label 042 and the default empty target are display choices.
UNCERTAINTYNo uncertainty enters the finite census. Source interpretation is limited to the author-hosted mapping and encoding document. The paywalled 2002 paper was not read.
BOUNDThe unit is one DPD declet. Larger interchange encodings contain multiple fields and are not enumerated here. This page does not claim 24 entire floating-point words are absent.
NOT CALLED INVALIDEvery 10-bit string decodes. The 24 are non-canonical outputs, not rejected operands, reserved values, or malformed data.
REFUSAL PATHThe explorer refuses malformed bit strings, non-integers, and integers outside 0 through 1023. Try 1024 above. A refusal does not silently retain a new result.
RUNTIME NETWORKNone. The sources below are links for the reader; all computation and styling required by the page are local.
Primary sources

The definition behind the sweep.

Mike Cowlishaw, A Summary of Densely Packed Decimal encoding, updated 13 February 2007The complete compression and expansion definition, 24 redundant-code statement, accepted-input note, and worked vectors. Copyright IBM Corporation and Mike Cowlishaw. Linked, not redistributed.
Mike Cowlishaw, Decimal Arithmetic Encodings, version 1.01, 20 March 2009The one-declet role inside coefficient continuation and the rule that all four all-large encodings are accepted as operands while only the canonical one is generated.
M. F. Cowlishaw, Densely packed decimal encoding, IEE Proceedings, May 2002IBM's bibliographic record for the original paper, volume 149, issue 3, pages 102 to 104, DOI 10.1049/ip-cdt:20020407.
IEEE Standards Association, IEEE 754-2019The active standard identity and scope. Detailed DPD claims on this page are sourced to Cowlishaw's accessible encoding documents, not to inaccessible normative text.