# Conditioning versus scoring zero

**C02 · Advanced · Scoped component**

## Question and scope

Compare “reroll a 1 once,” “keep rolling until not 1,” and “a 1 scores zero.” They sound similar. Predict which can still end at 1, which removes it, and which adds a zero outcome.

Source sections are linked under Rules below; primary-source review is recorded in the release dossier. Independent human and browser/usability review are separate gates.

## Inputs and model limits

One d6 and matching face 1. Compare the once-only replacement policy, conditioning on not 1, and converting 1 to zero. Removing every face is an error.

## Complete runnable model

`.remove(1)` removes the face and renormalises the rest: the conditional distribution given not 1. `.keep([2,3,4,5,6])` is equivalent. `.ignore(1)` keeps the probability mass but changes its score to zero. Neither is the once-only policy from L26.

```dice
def once(faces):
    if faces[0] == 1:
        return faces[1]
    return faces[0]
output("Reroll once", pool_map(dice_pool(2, 6), once))
output("Conditioned on not one", d(6).remove(1))
output("One scores zero", d(6).ignore(1))
```

## Reading the report and independent checks

The respective means are 47/12, 4, and 10/3. Conditioning leaves 2–6 each at 1/5. Scoring zero keeps outcomes 0,2,3,4,5,6 each at 1/6. An unlimited independent reroll-until-not-1 procedure has the same final-face distribution as conditioning, but its number of rolls and resource costs are not represented.

## Safe changes

Ignore 1 and 2 instead: zero has probability 1/3. Removing them instead leaves 3–6 each at 1/4. Keeping no possible faces is an error, not an empty successful model.

## Composition and boundary checks

Choose the operation for “given that the die was at least 5.” Answer: `.keep([5,6])`, making both outcomes 1/2. The chance of that evidence on the original d6 remains 1/3, queried with `.p_ge(5)`; conditioning is not that chance.

Do not combine separate marginal reports and assume they preserve the same
rolled faces. When an event depends on several properties of one roll, keep
those properties together inside a single classifier or pool callback.

## Rules

Generic probability transformations, not a certified game rule. No random process length, stopping cost, or dependent replacement dice are implied.

## Related learning

[Lesson L27](../tutorial/27-conditioning.html) explains the modelling idea step by step.
[Cookbook index](index.html) offers both game and mechanic views of these same recipes.
