Content path
- Question only
- Frozen Qwen3-4B computation
- Unchanged non-EOS logits
PCCG-2 · Open weights · September 12, 2026
A frozen Qwen3-4B model supplies the answer. A learned 101-parameter gate changes only the native termination score, controlling whether that answer enters generation.
Recorded evidence · Paper Figure 2
The answer score stays at 53.0 in every arm. Only the native EOS score moves.
LicensedCONDITION: EQ(485487,485487)
UnlicensedCONDITION: EQ(485487,485489)
| Arm | Generated tokens | Visible output | 4 score | EOS score |
|---|---|---|---|---|
| licensed baseline | [19,151645] | 4 | 53.0 | -124.0 |
| unlicensed baseline | [151645] | empty | 53.0 | 94.5 |
| licensed reversed | [151645] | empty | 53.0 | 136.0 |
| unlicensed reversed | [19,151645] | 4 | 53.0 | -82.0 |
| unlicensed sham | [151645] | empty | 53.0 | 94.5 |
Token 19 is 4. Token 151645 is native EOS, <|im_end|>. Empty means zero visible output bytes. The unlicensed sham matches its baseline exactly.
151,935 BF16 values in ascending token-ID order, with EOS omitted. 303,870 bytes per vector.
5f42fcb08c73af4914a711b524ae7130d671ec9504ecdfa699e8f478094713ecFrozen evaluation
75 FINAL answer identities. 40 causal answer identities. 80/80 sham controls unchanged. 188/188 question-only controls unchanged.
The 188-question bank is selected by a deterministic stock-capability rule before permission training. No case is removed or replaced after the bank is frozen. Gate training stops at the first qualifying checkpoint, update 256. Content weights remain frozen.
| Evaluation | Exact result |
|---|---|
| Condition qualification | 65,536 / 65,536 |
| Condition FINAL | 65,536 / 65,536 |
| Combined development | 512 / 512 |
| Combined qualification | 1,024 / 1,024 |
| Combined FINAL | 2,048 / 2,048 |
| Question-only controls | 188 / 188 unchanged |
The causal test reverses the learned permission state across 40 answer identities. The question, content weights, and complete non-EOS logits remain fixed. It changes answer to EOS and EOS to the corresponding correct answer.
Engineered separation
The condition never enters the content computation. The gate receives neither the question nor an externally computed truth verdict. Its learned score comes from aligned digit-pair embeddings and an offset.
For every non-EOS token t: z′[t] = z[t]
At the first token: z′[EOS] = BF16(z[EOS] − 32 × r × s(c))
Baseline and sham: r = +1 Reversed permission: r = −1The EOS adjustment is computed in FP32 and cast to BF16. Full-vocabulary greedy decoding selects the output. After the first token, the gate is bypassed. There is no output deletion or answer replacement.
All non-EOS logits, rankings, and probabilities conditional on a non-EOS token remain unchanged. The total probability of continuing changes through EOS.
Inspect the model implementation →Derived guarantee · Paper Proposition 1 and Appendix B.4
A finite-precision certificate covers 810,000,000,000 ordered condition pairs, each paired with any of the 188 frozen bank computations.
The accepted domain is EQ(a,b), with each operand an integer from 100000 through 999999. That is 900,000 × 900,000 conditions. Equal operands permit the fixed answer followed by EOS. Unequal operands select first-token EOS.
This is proof coverage, not 810 billion executed trials. The certificate assumes the recorded content logits and continuation, FP32 gate accumulation, FP32 EOS addition followed by BF16 round-to-nearest, ties-to-even, and baseline full-vocabulary greedy decoding.
Public reproduction
The public repository contains the frozen content weights, gate, source, cases, raw records, and witness vectors.
Python 3.11 or later. The complete download includes approximately 8.1 GB of content weights. Verification uses the CPU and generates no new model outputs.
python -m pip install huggingface_hub
hf download sharthokrayanpal/PCCG-2-Qwen3-4B \
--revision a3b952458a46b5547ba3cec7d03a37b395bed03a \
--local-dir PCCG-2-Qwen3-4B
cd PCCG-2-Qwen3-4B
python -m pip install numpy==2.3.5
python src/verify.pyCUDA and BF16. For byte-exact logit replay, use the recorded NVIDIA H100 80 GB environment, PyTorch 2.8.0+cu128, Transformers 4.56.2, and SDPA attention. Each output directory must be new.
python -m pip install -r requirements.txt
python src/reproduce.py witness --out ../pccg2-witness
python src/reproduce.py behavioral --out ../pccg2-behavioral
python src/reproduce.py causal --out ../pccg2-causalThese commands load the frozen release and compare new outputs with saved evidence. They do not train or select parameters.
Extract the manuscript supplement beside the downloaded model directory. From their parent directory, run:
python PCCG-2-paper-supplement/prove_domain.py \
--release ./PCCG-2-Qwen3-4B \
--out domain-certificate-recomputed.jsonThe checker uses the released gate and saved bank computations. It does not run 810 billion inferences.
a3b952458a46b5547ba3cec7d03a37b395bed03a9ac9e796f291c3db9852e242744c8c097c9faaba9ce4b4281c7ecbe07252e726c80f237dabe667110fcc8357a5218fe9fa3392ff1db5b4b8b6253cc0f26d85da17f2c83502ab96b3ee43c51c5c221df528f73bd378c02598c2cfbfdacd61cc2682359d991539292f3d6084c0bc4490201d96735a4c53b2c785fa1bc9bb9d681c6c1985c50be6e7104008e41c61251e65fb62d84df70f903a712304e5975e1646The PDF and ZIP hosted here are byte-identical mirrors of the Zenodo deposit. The supplement contains the manuscript-specific proof materials and public-replay receipt; it is separate from the pinned model release.
Published September 12, 2026