PCCG-2 · Open weights · September 12, 2026

The answer stayed fixed.
Permission changed.

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

What is 2 + 2?

The answer score stays at 53.0 in every arm. Only the native EOS score moves.

All five arms keep token 4 at 53.0. EOS scores are -124.0, 94.5, 136.0, -82.0 and 94.5. Outcomes are answer, stop, stop, answer and stop.
First-token logits. Native EOS above the answer line terminates generation; below it, the unchanged answer is emitted. This chart presents saved model outputs, not a live simulation.
0 non-EOS logits changed.The complete non-EOS first-token vector is byte-identical across all five arms.

LicensedCONDITION: EQ(485487,485487)

UnlicensedCONDITION: EQ(485487,485489)

Exact recorded sequences and first-token scores
ArmGenerated tokensVisible output4 scoreEOS score
licensed baseline[19,151645]453.0-124.0
unlicensed baseline[151645]empty53.094.5
licensed reversed[151645]empty53.0136.0
unlicensed reversed[19,151645]453.0-82.0
unlicensed sham[151645]empty53.094.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.

Vector identity and raw evidence

151,935 BF16 values in ascending token-ID order, with EOS omitted. 303,870 bytes per vector.

Non-EOS vector SHA-256, all five arms
5f42fcb08c73af4914a711b524ae7130d671ec9504ecdfa699e8f478094713ec

Frozen evaluation

The measured result.

Combined FINAL
2,048/2,048
Answer → native EOS
40/40
Native EOS → correct answer
40/40

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.

Recorded evaluations, separate from the domain certificate
EvaluationExact result
Condition qualification65,536 / 65,536
Condition FINAL65,536 / 65,536
Combined development512 / 512
Combined qualification1,024 / 1,024
Combined FINAL2,048 / 2,048
Question-only controls188 / 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

Two inputs. One restricted control surface.

Content path

  1. Question only
  2. Frozen Qwen3-4B computation
  3. Unchanged non-EOS logits

Permission path

  1. Six-digit equality condition only
  2. Learned 101-parameter gate
  3. First-token EOS adjustment only

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 = −1

The 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

Every accepted six-digit condition.

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

Download. Verify. Replay.

The public repository contains the frozen content weights, gate, source, cases, raw records, and witness vectors.

Download the pinned release and verify saved evidence

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.py

Run fresh inference

CUDA 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-causal

These commands load the frozen release and compare new outputs with saved evidence. They do not train or select parameters.

Recompute the domain certificate without a GPU

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.json

The checker uses the released gate and saved bank computations. It does not run 810 billion inferences.

Immutable release and file identities
Hugging Face release commit
a3b952458a46b5547ba3cec7d03a37b395bed03a
Release SHA256SUMS file
9ac9e796f291c3db9852e242744c8c097c9faaba9ce4b4281c7ecbe07252e726
Content-weight identity
c80f237dabe667110fcc8357a5218fe9fa3392ff1db5b4b8b6253cc0f26d85da
Gate SHA-256
17f2c83502ab96b3ee43c51c5c221df528f73bd378c02598c2cfbfdacd61cc26
Paper PDF SHA-256
82359d991539292f3d6084c0bc4490201d96735a4c53b2c785fa1bc9bb9d681c
Manuscript supplement ZIP SHA-256
6c1985c50be6e7104008e41c61251e65fb62d84df70f903a712304e5975e1646

The 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

Separating Capability from Permission in a Language Model: Prerequisite-Conditioned Native Continuation Control with Frozen Content