# Part 4 of 4 -- r2-edh-b1 (EDH/Roman inscriptions), items 11-19 of 19

Part of the Popper Engine adversarial-rivals Grok pack. See `GROK_PACK_20260806.md` for full operator instructions. Paste each numbered block below as ONE Grok chat turn (a fresh block = a fresh, unrelated turn -- do not chain them in the same conversation, so one item's evidence never leaks into another's answer). Save each reply as raw text into the drop folder named at the end of that block.


################################################################
CONJECTURE r2-edh-b1-13  --  PASTE THIS ENTIRE BLOCK AS ONE GROK MESSAGE
################################################################

You are acting as an independent scientific referee. You will be shown ONE
empirical conjecture from a data-driven research project that catalogues
historical manuscripts and inscriptions, together with: the mechanism its
authors proposed to explain it, a summary of the training evidence that
supported it while it was being developed, and the outcome of a single
pre-registered test the authors later ran against held-out data (data that
was not consulted while the conjecture was written).

Your task is not to defend or attack the conjecture's authors. Your task is
to ask a narrower question: is there a DIFFERENT causal mechanism, distinct
from the one proposed, that would produce the same training-evidence pattern
AND the same held-out outcome equally well or better? A mechanism that is
merely "also consistent with the data" is not enough — it should be a
genuine rival explanation, one a careful skeptic would actually worry about.

## The conjecture

**Claim (as registered):** Latin-West provinces (21, named in advance) show a non-Latin (Greek or bilingual) inscribed-language share under 5%, while Greek-East provinces (6, named in advance) show a share of 5% or more.

**Proposed mechanism:** A well-documented linguistic-cultural boundary in Roman provincial epigraphy (sometimes called the Jireček line) separating a Latin-dominant West from a Greek-dominant East, expected to reproduce in a properly-classified province set regardless of alphabetical position.

**Scope:** Source: the Epigraphic Database Heidelberg (EDH), a catalogue of Roman-period inscriptions on stone/metal/etc. (physical objects, catalogued separately from a manuscript census). Training: the 33 provinces in the alphabetically first half of EDH's own province-code order (42,009 inscriptions). Holdout: the 33 provinces in the alphabetically second half, minus 'Provincia incerta' (EDH's own catch-all for uncertain findspots, not a real geographic unit, excluded from all arithmetic) -- 32 real provinces, 39,457 inscriptions -- landed in one complete fetch after the claim was fixed. EDH's own content has been fixed since 2021 (the cataloguing project's funding ended), so this holdout tests whether a pattern generalizes across an arbitrary alphabetical split of already-catalogued, unchanging material, not whether it predicts new discoveries. Two named groups (21 Latin-West provinces, 6 Greek-East provinces); minimum support 30 rows per province.

**Training-side evidence:** Latin-West training analogues range 0.0-1.89% non-Latin. Greek-East training analogues range 7.95-48.10% non-Latin, with one complication (an Arabian province) at about 9.0%, near the Greek-East group's low end.

**Holdout test and outcome:** 19 of 19 eligible Latin-West holdout provinces (100%) landed under 5% non-Latin. 4 of 5 eligible Greek-East holdout provinces (80%) landed at 5% or more.

**Status:** Survived (both named groups cleared their own 80% group-level pass threshold).

## What we need from you

For this conjecture, propose UP TO THREE rival mechanisms. For each rival,
give:

1. **mechanism** — the rival causal mechanism, stated plainly, in one or two
   sentences. It must be genuinely distinct from the stated mechanism above,
   not a rewording of it.
2. **why_it_explains_the_same_evidence** — why this rival would produce the
   same training pattern AND the same held-out outcome described above, at
   least as well as the stated mechanism does.
3. **named_confounds** — the specific confound(s) this rival mechanism turns
   on (for example: cataloguing or data-entry practice, survival or
   preservation bias, a unit-of-count or denominator effect, a harvest or
   digitization artifact, an administrative or geographic classification
   artifact, selection effects in what got catalogued at all). Name the
   actual confound(s) at work here — do not just gesture at "bias" in the
   abstract.
4. **discriminating_test** — a concrete, specific, and in-principle
   computable procedure that would produce a DIFFERENT predicted result
   under your rival mechanism than under the stated mechanism. State: what
   you would measure, and what result would come out differently. Say
   whether it could run against data of the same kind already described
   above (the same catalogue or an extension of it), or would need a
   different dataset.

**Quality over count.** If you cannot construct a genuine rival that is at
least as plausible as the stated mechanism, do not invent a weak one just to
fill the list. Declaring no viable rival is a MORE useful and MORE valued
answer than a strained one — a rival that is obviously worse than the
original actively harms this exercise, because it wastes the reader's time
checking a mechanism no one should have believed in the first place. Zero,
one, two, or three rivals are all acceptable outputs. Most conjectures will
not have three good rivals; some will have none.

## What you are not given, and should not guess at

You are not told how close to its pass/fail boundary this conjecture's
held-out test came, how any other conjecture in the same project fared, or
how this result will be used downstream. Do not speculate about any of
that. Evaluate this conjecture entirely on its own terms, using only the
evidence given above.

## Output format

Respond with STRICT JSON ONLY. No prose before or after the JSON, no
markdown code fences, no commentary outside the JSON structure itself. The
JSON must have exactly this shape:

{
  "rivals": [
    {
      "mechanism": "string",
      "why_it_explains_the_same_evidence": "string",
      "named_confounds": ["string", "..."],
      "discriminating_test": {
        "description": "string",
        "computable_on_held_data": true,
        "what_result_favors_rival": "string"
      }
    }
  ],
  "no_viable_rival": false,
  "notes": "string"
}

Rules for the JSON:
- "rivals" is an array of zero to three objects, in the shape shown above.
  Zero entries is valid and expected whenever no genuine rival exists.
- If "rivals" is empty, set "no_viable_rival" to true. If "rivals" is
  non-empty, set "no_viable_rival" to false.
- "named_confounds" is an array of short strings (one per confound named).
- "computable_on_held_data" is a boolean: true if the discriminating test
  could be run using data of the same kind described above (the same
  catalogue/source, re-queried or extended), false if it would require a
  fundamentally different dataset not described above.
- "notes" is a string for anything else worth recording; use an empty
  string if there is nothing to add. Do not use it to restate the rivals.
- Do not include any keys other than the ones shown above, at any level.
- Do not wrap the JSON in a code fence (no ``` characters). Output the JSON
  object itself and nothing else — your entire response must be valid JSON,
  parseable with no pre- or post-processing.

################################################################
END OF r2-edh-b1-13
Save Grok's reply, verbatim, as plain text, to:
  docs/generated/popper_rivals/r2-edh-b1/grok/r2-edh-b1-13.md
################################################################

################################################################
CONJECTURE r2-edh-b1-14  --  PASTE THIS ENTIRE BLOCK AS ONE GROK MESSAGE
################################################################

You are acting as an independent scientific referee. You will be shown ONE
empirical conjecture from a data-driven research project that catalogues
historical manuscripts and inscriptions, together with: the mechanism its
authors proposed to explain it, a summary of the training evidence that
supported it while it was being developed, and the outcome of a single
pre-registered test the authors later ran against held-out data (data that
was not consulted while the conjecture was written).

Your task is not to defend or attack the conjecture's authors. Your task is
to ask a narrower question: is there a DIFFERENT causal mechanism, distinct
from the one proposed, that would produce the same training-evidence pattern
AND the same held-out outcome equally well or better? A mechanism that is
merely "also consistent with the data" is not enough — it should be a
genuine rival explanation, one a careful skeptic would actually worry about.

## The conjecture

**Claim (as registered):** The single busiest century (by inscription date) falls in the 1st or 2nd century AD in every eligible province, with one named, pre-registered exception (a Mesopotamian province, exempted in advance from this specific requirement).

**Proposed mechanism:** "The epigraphic habit" -- a broadly documented pattern in Roman social history whereby the rate of erecting inscriptions rose and peaked within a bounded historical window across most of the Roman world, tracking the empire's period of greatest stability and monumentalizing culture under the early-to-mid Principate. The named exception is exempted because its Roman-controlled period was brief and late (annexed only briefly under one emperor, then re-established only from a later imperial campaign roughly a century afterward), so its own peak was independently expected to fall later than the rest of the corpus.

**Scope:** Source: the Epigraphic Database Heidelberg (EDH), a catalogue of Roman-period inscriptions on stone/metal/etc. (physical objects, catalogued separately from a manuscript census). Training: the 33 provinces in the alphabetically first half of EDH's own province-code order (42,009 inscriptions). Holdout: the 33 provinces in the alphabetically second half, minus 'Provincia incerta' (EDH's own catch-all for uncertain findspots, not a real geographic unit, excluded from all arithmetic) -- 32 real provinces, 39,457 inscriptions -- landed in one complete fetch after the claim was fixed. EDH's own content has been fixed since 2021 (the cataloguing project's funding ended), so this holdout tests whether a pattern generalizes across an arbitrary alphabetical split of already-catalogued, unchanging material, not whether it predicts new discoveries. Minimum support: at least 150 dated rows in a province; the named exception's own outcome never counts toward this claim either way.

**Training-side evidence:** 12 of 12 checked training provinces peaked in the 1st or 2nd century AD (9 in the 2nd, 3 in the 1st).

**Holdout test and outcome:** Of 18 eligible holdout provinces (excluding the named exception), all 18 (100%) peaked in the 1st or 2nd century AD.

**Status:** Survived every eligible holdout province.

## What we need from you

For this conjecture, propose UP TO THREE rival mechanisms. For each rival,
give:

1. **mechanism** — the rival causal mechanism, stated plainly, in one or two
   sentences. It must be genuinely distinct from the stated mechanism above,
   not a rewording of it.
2. **why_it_explains_the_same_evidence** — why this rival would produce the
   same training pattern AND the same held-out outcome described above, at
   least as well as the stated mechanism does.
3. **named_confounds** — the specific confound(s) this rival mechanism turns
   on (for example: cataloguing or data-entry practice, survival or
   preservation bias, a unit-of-count or denominator effect, a harvest or
   digitization artifact, an administrative or geographic classification
   artifact, selection effects in what got catalogued at all). Name the
   actual confound(s) at work here — do not just gesture at "bias" in the
   abstract.
4. **discriminating_test** — a concrete, specific, and in-principle
   computable procedure that would produce a DIFFERENT predicted result
   under your rival mechanism than under the stated mechanism. State: what
   you would measure, and what result would come out differently. Say
   whether it could run against data of the same kind already described
   above (the same catalogue or an extension of it), or would need a
   different dataset.

**Quality over count.** If you cannot construct a genuine rival that is at
least as plausible as the stated mechanism, do not invent a weak one just to
fill the list. Declaring no viable rival is a MORE useful and MORE valued
answer than a strained one — a rival that is obviously worse than the
original actively harms this exercise, because it wastes the reader's time
checking a mechanism no one should have believed in the first place. Zero,
one, two, or three rivals are all acceptable outputs. Most conjectures will
not have three good rivals; some will have none.

## What you are not given, and should not guess at

You are not told how close to its pass/fail boundary this conjecture's
held-out test came, how any other conjecture in the same project fared, or
how this result will be used downstream. Do not speculate about any of
that. Evaluate this conjecture entirely on its own terms, using only the
evidence given above.

## Output format

Respond with STRICT JSON ONLY. No prose before or after the JSON, no
markdown code fences, no commentary outside the JSON structure itself. The
JSON must have exactly this shape:

{
  "rivals": [
    {
      "mechanism": "string",
      "why_it_explains_the_same_evidence": "string",
      "named_confounds": ["string", "..."],
      "discriminating_test": {
        "description": "string",
        "computable_on_held_data": true,
        "what_result_favors_rival": "string"
      }
    }
  ],
  "no_viable_rival": false,
  "notes": "string"
}

Rules for the JSON:
- "rivals" is an array of zero to three objects, in the shape shown above.
  Zero entries is valid and expected whenever no genuine rival exists.
- If "rivals" is empty, set "no_viable_rival" to true. If "rivals" is
  non-empty, set "no_viable_rival" to false.
- "named_confounds" is an array of short strings (one per confound named).
- "computable_on_held_data" is a boolean: true if the discriminating test
  could be run using data of the same kind described above (the same
  catalogue/source, re-queried or extended), false if it would require a
  fundamentally different dataset not described above.
- "notes" is a string for anything else worth recording; use an empty
  string if there is nothing to add. Do not use it to restate the rivals.
- Do not include any keys other than the ones shown above, at any level.
- Do not wrap the JSON in a code fence (no ``` characters). Output the JSON
  object itself and nothing else — your entire response must be valid JSON,
  parseable with no pre- or post-processing.

################################################################
END OF r2-edh-b1-14
Save Grok's reply, verbatim, as plain text, to:
  docs/generated/popper_rivals/r2-edh-b1/grok/r2-edh-b1-14.md
################################################################

################################################################
CONJECTURE r2-edh-b1-16  --  PASTE THIS ENTIRE BLOCK AS ONE GROK MESSAGE
################################################################

You are acting as an independent scientific referee. You will be shown ONE
empirical conjecture from a data-driven research project that catalogues
historical manuscripts and inscriptions, together with: the mechanism its
authors proposed to explain it, a summary of the training evidence that
supported it while it was being developed, and the outcome of a single
pre-registered test the authors later ran against held-out data (data that
was not consulted while the conjecture was written).

Your task is not to defend or attack the conjecture's authors. Your task is
to ask a narrower question: is there a DIFFERENT causal mechanism, distinct
from the one proposed, that would produce the same training-evidence pattern
AND the same held-out outcome equally well or better? A mechanism that is
merely "also consistent with the data" is not enough — it should be a
genuine rival explanation, one a careful skeptic would actually worry about.

## The conjecture

**Claim (as registered):** The epigraphic-activity curve is compact, not flat: at least 90% of a province's dated rows fall within a six-century window (two centuries before to three centuries after) centred on that province's own peak century.

**Proposed mechanism:** Epigraphic production in any given province is proposed to be concentrated around a single historical era of peak activity rather than spread evenly across the whole Roman period, regardless of when that peak happens to fall for that particular province.

**Scope:** Source: the Epigraphic Database Heidelberg (EDH), a catalogue of Roman-period inscriptions on stone/metal/etc. (physical objects, catalogued separately from a manuscript census). Training: the 33 provinces in the alphabetically first half of EDH's own province-code order (42,009 inscriptions). Holdout: the 33 provinces in the alphabetically second half, minus 'Provincia incerta' (EDH's own catch-all for uncertain findspots, not a real geographic unit, excluded from all arithmetic) -- 32 real provinces, 39,457 inscriptions -- landed in one complete fetch after the claim was fixed. EDH's own content has been fixed since 2021 (the cataloguing project's funding ended), so this holdout tests whether a pattern generalizes across an arbitrary alphabetical split of already-catalogued, unchanging material, not whether it predicts new discoveries. Minimum support: at least 150 dated rows in a province (same underlying date histogram as the epigraphic-habit claim above).

**Training-side evidence:** After correcting a window-width error found in an earlier description of this training pattern, the true training-side tightest case is 91.08% (in a southern Iberian province).

**Holdout test and outcome:** Of 18 eligible holdout provinces, the closest approach to the floor was 92.59%.

**Status:** Survived every eligible holdout province.

## What we need from you

For this conjecture, propose UP TO THREE rival mechanisms. For each rival,
give:

1. **mechanism** — the rival causal mechanism, stated plainly, in one or two
   sentences. It must be genuinely distinct from the stated mechanism above,
   not a rewording of it.
2. **why_it_explains_the_same_evidence** — why this rival would produce the
   same training pattern AND the same held-out outcome described above, at
   least as well as the stated mechanism does.
3. **named_confounds** — the specific confound(s) this rival mechanism turns
   on (for example: cataloguing or data-entry practice, survival or
   preservation bias, a unit-of-count or denominator effect, a harvest or
   digitization artifact, an administrative or geographic classification
   artifact, selection effects in what got catalogued at all). Name the
   actual confound(s) at work here — do not just gesture at "bias" in the
   abstract.
4. **discriminating_test** — a concrete, specific, and in-principle
   computable procedure that would produce a DIFFERENT predicted result
   under your rival mechanism than under the stated mechanism. State: what
   you would measure, and what result would come out differently. Say
   whether it could run against data of the same kind already described
   above (the same catalogue or an extension of it), or would need a
   different dataset.

**Quality over count.** If you cannot construct a genuine rival that is at
least as plausible as the stated mechanism, do not invent a weak one just to
fill the list. Declaring no viable rival is a MORE useful and MORE valued
answer than a strained one — a rival that is obviously worse than the
original actively harms this exercise, because it wastes the reader's time
checking a mechanism no one should have believed in the first place. Zero,
one, two, or three rivals are all acceptable outputs. Most conjectures will
not have three good rivals; some will have none.

## What you are not given, and should not guess at

You are not told how close to its pass/fail boundary this conjecture's
held-out test came, how any other conjecture in the same project fared, or
how this result will be used downstream. Do not speculate about any of
that. Evaluate this conjecture entirely on its own terms, using only the
evidence given above.

## Output format

Respond with STRICT JSON ONLY. No prose before or after the JSON, no
markdown code fences, no commentary outside the JSON structure itself. The
JSON must have exactly this shape:

{
  "rivals": [
    {
      "mechanism": "string",
      "why_it_explains_the_same_evidence": "string",
      "named_confounds": ["string", "..."],
      "discriminating_test": {
        "description": "string",
        "computable_on_held_data": true,
        "what_result_favors_rival": "string"
      }
    }
  ],
  "no_viable_rival": false,
  "notes": "string"
}

Rules for the JSON:
- "rivals" is an array of zero to three objects, in the shape shown above.
  Zero entries is valid and expected whenever no genuine rival exists.
- If "rivals" is empty, set "no_viable_rival" to true. If "rivals" is
  non-empty, set "no_viable_rival" to false.
- "named_confounds" is an array of short strings (one per confound named).
- "computable_on_held_data" is a boolean: true if the discriminating test
  could be run using data of the same kind described above (the same
  catalogue/source, re-queried or extended), false if it would require a
  fundamentally different dataset not described above.
- "notes" is a string for anything else worth recording; use an empty
  string if there is nothing to add. Do not use it to restate the rivals.
- Do not include any keys other than the ones shown above, at any level.
- Do not wrap the JSON in a code fence (no ``` characters). Output the JSON
  object itself and nothing else — your entire response must be valid JSON,
  parseable with no pre- or post-processing.

################################################################
END OF r2-edh-b1-16
Save Grok's reply, verbatim, as plain text, to:
  docs/generated/popper_rivals/r2-edh-b1/grok/r2-edh-b1-16.md
################################################################

################################################################
CONJECTURE r2-edh-b1-18  --  PASTE THIS ENTIRE BLOCK AS ONE GROK MESSAGE
################################################################

You are acting as an independent scientific referee. You will be shown ONE
empirical conjecture from a data-driven research project that catalogues
historical manuscripts and inscriptions, together with: the mechanism its
authors proposed to explain it, a summary of the training evidence that
supported it while it was being developed, and the outcome of a single
pre-registered test the authors later ran against held-out data (data that
was not consulted while the conjecture was written).

Your task is not to defend or attack the conjecture's authors. Your task is
to ask a narrower question: is there a DIFFERENT causal mechanism, distinct
from the one proposed, that would produce the same training-evidence pattern
AND the same held-out outcome equally well or better? A mechanism that is
merely "also consistent with the data" is not enough — it should be a
genuine rival explanation, one a careful skeptic would actually worry about.

## The conjecture

**Claim (as registered):** Bracket-density (the share of transcriptions using the standard epigraphic convention of marking lost/restored text with square brackets) stays at or above 35% in every eligible province.

**Proposed mechanism:** Ancient inscriptions on stone and metal are routinely damaged, and the convention of bracket-marking restored or missing text is applied broadly and consistently across the discipline, so a substantial bracket-density floor is expected everywhere regardless of province.

**Scope:** Source: the Epigraphic Database Heidelberg (EDH), a catalogue of Roman-period inscriptions on stone/metal/etc. (physical objects, catalogued separately from a manuscript census). Training: the 33 provinces in the alphabetically first half of EDH's own province-code order (42,009 inscriptions). Holdout: the 33 provinces in the alphabetically second half, minus 'Provincia incerta' (EDH's own catch-all for uncertain findspots, not a real geographic unit, excluded from all arithmetic) -- 32 real provinces, 39,457 inscriptions -- landed in one complete fetch after the claim was fixed. EDH's own content has been fixed since 2021 (the cataloguing project's funding ended), so this holdout tests whether a pattern generalizes across an arbitrary alphabetical split of already-catalogued, unchanging material, not whether it predicts new discoveries. Minimum support: at least 100 rows in a province.

**Training-side evidence:** Observed training-side minimum: 50.71%.

**Holdout test and outcome:** Of 27 eligible holdout provinces, the closest approach to the floor was 39.26%.

**Status:** Survived every eligible holdout province.

## What we need from you

For this conjecture, propose UP TO THREE rival mechanisms. For each rival,
give:

1. **mechanism** — the rival causal mechanism, stated plainly, in one or two
   sentences. It must be genuinely distinct from the stated mechanism above,
   not a rewording of it.
2. **why_it_explains_the_same_evidence** — why this rival would produce the
   same training pattern AND the same held-out outcome described above, at
   least as well as the stated mechanism does.
3. **named_confounds** — the specific confound(s) this rival mechanism turns
   on (for example: cataloguing or data-entry practice, survival or
   preservation bias, a unit-of-count or denominator effect, a harvest or
   digitization artifact, an administrative or geographic classification
   artifact, selection effects in what got catalogued at all). Name the
   actual confound(s) at work here — do not just gesture at "bias" in the
   abstract.
4. **discriminating_test** — a concrete, specific, and in-principle
   computable procedure that would produce a DIFFERENT predicted result
   under your rival mechanism than under the stated mechanism. State: what
   you would measure, and what result would come out differently. Say
   whether it could run against data of the same kind already described
   above (the same catalogue or an extension of it), or would need a
   different dataset.

**Quality over count.** If you cannot construct a genuine rival that is at
least as plausible as the stated mechanism, do not invent a weak one just to
fill the list. Declaring no viable rival is a MORE useful and MORE valued
answer than a strained one — a rival that is obviously worse than the
original actively harms this exercise, because it wastes the reader's time
checking a mechanism no one should have believed in the first place. Zero,
one, two, or three rivals are all acceptable outputs. Most conjectures will
not have three good rivals; some will have none.

## What you are not given, and should not guess at

You are not told how close to its pass/fail boundary this conjecture's
held-out test came, how any other conjecture in the same project fared, or
how this result will be used downstream. Do not speculate about any of
that. Evaluate this conjecture entirely on its own terms, using only the
evidence given above.

## Output format

Respond with STRICT JSON ONLY. No prose before or after the JSON, no
markdown code fences, no commentary outside the JSON structure itself. The
JSON must have exactly this shape:

{
  "rivals": [
    {
      "mechanism": "string",
      "why_it_explains_the_same_evidence": "string",
      "named_confounds": ["string", "..."],
      "discriminating_test": {
        "description": "string",
        "computable_on_held_data": true,
        "what_result_favors_rival": "string"
      }
    }
  ],
  "no_viable_rival": false,
  "notes": "string"
}

Rules for the JSON:
- "rivals" is an array of zero to three objects, in the shape shown above.
  Zero entries is valid and expected whenever no genuine rival exists.
- If "rivals" is empty, set "no_viable_rival" to true. If "rivals" is
  non-empty, set "no_viable_rival" to false.
- "named_confounds" is an array of short strings (one per confound named).
- "computable_on_held_data" is a boolean: true if the discriminating test
  could be run using data of the same kind described above (the same
  catalogue/source, re-queried or extended), false if it would require a
  fundamentally different dataset not described above.
- "notes" is a string for anything else worth recording; use an empty
  string if there is nothing to add. Do not use it to restate the rivals.
- Do not include any keys other than the ones shown above, at any level.
- Do not wrap the JSON in a code fence (no ``` characters). Output the JSON
  object itself and nothing else — your entire response must be valid JSON,
  parseable with no pre- or post-processing.

################################################################
END OF r2-edh-b1-18
Save Grok's reply, verbatim, as plain text, to:
  docs/generated/popper_rivals/r2-edh-b1/grok/r2-edh-b1-18.md
################################################################

################################################################
CONJECTURE r2-edh-b1-19  --  PASTE THIS ENTIRE BLOCK AS ONE GROK MESSAGE
################################################################

You are acting as an independent scientific referee. You will be shown ONE
empirical conjecture from a data-driven research project that catalogues
historical manuscripts and inscriptions, together with: the mechanism its
authors proposed to explain it, a summary of the training evidence that
supported it while it was being developed, and the outcome of a single
pre-registered test the authors later ran against held-out data (data that
was not consulted while the conjecture was written).

Your task is not to defend or attack the conjecture's authors. Your task is
to ask a narrower question: is there a DIFFERENT causal mechanism, distinct
from the one proposed, that would produce the same training-evidence pattern
AND the same held-out outcome equally well or better? A mechanism that is
merely "also consistent with the data" is not enough — it should be a
genuine rival explanation, one a careful skeptic would actually worry about.

## The conjecture

**Claim (as registered):** The rate of epigrapher-flagged uncertain monument-type identifications stays under 25% of monument-typed rows in every eligible province.

**Proposed mechanism:** A ceiling on how much identification uncertainty any one province's material can show, set well above the observed training-side maximum.

**Scope:** Source: the Epigraphic Database Heidelberg (EDH), a catalogue of Roman-period inscriptions on stone/metal/etc. (physical objects, catalogued separately from a manuscript census). Training: the 33 provinces in the alphabetically first half of EDH's own province-code order (42,009 inscriptions). Holdout: the 33 provinces in the alphabetically second half, minus 'Provincia incerta' (EDH's own catch-all for uncertain findspots, not a real geographic unit, excluded from all arithmetic) -- 32 real provinces, 39,457 inscriptions -- landed in one complete fetch after the claim was fixed. EDH's own content has been fixed since 2021 (the cataloguing project's funding ended), so this holdout tests whether a pattern generalizes across an arbitrary alphabetical split of already-catalogued, unchanging material, not whether it predicts new discoveries. Minimum support: at least 100 monument-typed rows in a province.

**Training-side evidence:** Observed training-side maximum (excluding a small Alpine outlier region): 18.06%.

**Holdout test and outcome:** Of 23 eligible holdout provinces, the closest approach to the ceiling was 13.57%.

**Status:** Survived every eligible holdout province.

## What we need from you

For this conjecture, propose UP TO THREE rival mechanisms. For each rival,
give:

1. **mechanism** — the rival causal mechanism, stated plainly, in one or two
   sentences. It must be genuinely distinct from the stated mechanism above,
   not a rewording of it.
2. **why_it_explains_the_same_evidence** — why this rival would produce the
   same training pattern AND the same held-out outcome described above, at
   least as well as the stated mechanism does.
3. **named_confounds** — the specific confound(s) this rival mechanism turns
   on (for example: cataloguing or data-entry practice, survival or
   preservation bias, a unit-of-count or denominator effect, a harvest or
   digitization artifact, an administrative or geographic classification
   artifact, selection effects in what got catalogued at all). Name the
   actual confound(s) at work here — do not just gesture at "bias" in the
   abstract.
4. **discriminating_test** — a concrete, specific, and in-principle
   computable procedure that would produce a DIFFERENT predicted result
   under your rival mechanism than under the stated mechanism. State: what
   you would measure, and what result would come out differently. Say
   whether it could run against data of the same kind already described
   above (the same catalogue or an extension of it), or would need a
   different dataset.

**Quality over count.** If you cannot construct a genuine rival that is at
least as plausible as the stated mechanism, do not invent a weak one just to
fill the list. Declaring no viable rival is a MORE useful and MORE valued
answer than a strained one — a rival that is obviously worse than the
original actively harms this exercise, because it wastes the reader's time
checking a mechanism no one should have believed in the first place. Zero,
one, two, or three rivals are all acceptable outputs. Most conjectures will
not have three good rivals; some will have none.

## What you are not given, and should not guess at

You are not told how close to its pass/fail boundary this conjecture's
held-out test came, how any other conjecture in the same project fared, or
how this result will be used downstream. Do not speculate about any of
that. Evaluate this conjecture entirely on its own terms, using only the
evidence given above.

## Output format

Respond with STRICT JSON ONLY. No prose before or after the JSON, no
markdown code fences, no commentary outside the JSON structure itself. The
JSON must have exactly this shape:

{
  "rivals": [
    {
      "mechanism": "string",
      "why_it_explains_the_same_evidence": "string",
      "named_confounds": ["string", "..."],
      "discriminating_test": {
        "description": "string",
        "computable_on_held_data": true,
        "what_result_favors_rival": "string"
      }
    }
  ],
  "no_viable_rival": false,
  "notes": "string"
}

Rules for the JSON:
- "rivals" is an array of zero to three objects, in the shape shown above.
  Zero entries is valid and expected whenever no genuine rival exists.
- If "rivals" is empty, set "no_viable_rival" to true. If "rivals" is
  non-empty, set "no_viable_rival" to false.
- "named_confounds" is an array of short strings (one per confound named).
- "computable_on_held_data" is a boolean: true if the discriminating test
  could be run using data of the same kind described above (the same
  catalogue/source, re-queried or extended), false if it would require a
  fundamentally different dataset not described above.
- "notes" is a string for anything else worth recording; use an empty
  string if there is nothing to add. Do not use it to restate the rivals.
- Do not include any keys other than the ones shown above, at any level.
- Do not wrap the JSON in a code fence (no ``` characters). Output the JSON
  object itself and nothing else — your entire response must be valid JSON,
  parseable with no pre- or post-processing.

################################################################
END OF r2-edh-b1-19
Save Grok's reply, verbatim, as plain text, to:
  docs/generated/popper_rivals/r2-edh-b1/grok/r2-edh-b1-19.md
################################################################

################################################################
CONJECTURE r2-edh-b1-20  --  PASTE THIS ENTIRE BLOCK AS ONE GROK MESSAGE
################################################################

You are acting as an independent scientific referee. You will be shown ONE
empirical conjecture from a data-driven research project that catalogues
historical manuscripts and inscriptions, together with: the mechanism its
authors proposed to explain it, a summary of the training evidence that
supported it while it was being developed, and the outcome of a single
pre-registered test the authors later ran against held-out data (data that
was not consulted while the conjecture was written).

Your task is not to defend or attack the conjecture's authors. Your task is
to ask a narrower question: is there a DIFFERENT causal mechanism, distinct
from the one proposed, that would produce the same training-evidence pattern
AND the same held-out outcome equally well or better? A mechanism that is
merely "also consistent with the data" is not enough — it should be a
genuine rival explanation, one a careful skeptic would actually worry about.

## The conjecture

**Claim (as registered):** Monument-type documentation coverage (the share of rows carrying any recorded monument-type value at all) is highly heterogeneous rather than clustering: at least one eligible province lands under 30% coverage, AND at least one lands over 90%.

**Proposed mechanism:** Cataloguing depth for monument type is proposed to vary by province/collection history (a curatorial-resourcing property), not to cluster around a typical value.

**Scope:** Source: the Epigraphic Database Heidelberg (EDH), a catalogue of Roman-period inscriptions on stone/metal/etc. (physical objects, catalogued separately from a manuscript census). Training: the 33 provinces in the alphabetically first half of EDH's own province-code order (42,009 inscriptions). Holdout: the 33 provinces in the alphabetically second half, minus 'Provincia incerta' (EDH's own catch-all for uncertain findspots, not a real geographic unit, excluded from all arithmetic) -- 32 real provinces, 39,457 inscriptions -- landed in one complete fetch after the claim was fixed. EDH's own content has been fixed since 2021 (the cataloguing project's funding ended), so this holdout tests whether a pattern generalizes across an arbitrary alphabetical split of already-catalogued, unchanging material, not whether it predicts new discoveries. Minimum support: at least 100 rows in a province.

**Training-side evidence:** Low end: two training provinces under 24% coverage (23.65%, 19.92%). High end: several training provinces above 89% coverage, one reaching 97.92%.

**Holdout test and outcome:** Of 27 eligible holdout provinces: low end 13.16%, high end 93.01%.

**Status:** Survived (both extremes reproduced in the holdout).

## What we need from you

For this conjecture, propose UP TO THREE rival mechanisms. For each rival,
give:

1. **mechanism** — the rival causal mechanism, stated plainly, in one or two
   sentences. It must be genuinely distinct from the stated mechanism above,
   not a rewording of it.
2. **why_it_explains_the_same_evidence** — why this rival would produce the
   same training pattern AND the same held-out outcome described above, at
   least as well as the stated mechanism does.
3. **named_confounds** — the specific confound(s) this rival mechanism turns
   on (for example: cataloguing or data-entry practice, survival or
   preservation bias, a unit-of-count or denominator effect, a harvest or
   digitization artifact, an administrative or geographic classification
   artifact, selection effects in what got catalogued at all). Name the
   actual confound(s) at work here — do not just gesture at "bias" in the
   abstract.
4. **discriminating_test** — a concrete, specific, and in-principle
   computable procedure that would produce a DIFFERENT predicted result
   under your rival mechanism than under the stated mechanism. State: what
   you would measure, and what result would come out differently. Say
   whether it could run against data of the same kind already described
   above (the same catalogue or an extension of it), or would need a
   different dataset.

**Quality over count.** If you cannot construct a genuine rival that is at
least as plausible as the stated mechanism, do not invent a weak one just to
fill the list. Declaring no viable rival is a MORE useful and MORE valued
answer than a strained one — a rival that is obviously worse than the
original actively harms this exercise, because it wastes the reader's time
checking a mechanism no one should have believed in the first place. Zero,
one, two, or three rivals are all acceptable outputs. Most conjectures will
not have three good rivals; some will have none.

## What you are not given, and should not guess at

You are not told how close to its pass/fail boundary this conjecture's
held-out test came, how any other conjecture in the same project fared, or
how this result will be used downstream. Do not speculate about any of
that. Evaluate this conjecture entirely on its own terms, using only the
evidence given above.

## Output format

Respond with STRICT JSON ONLY. No prose before or after the JSON, no
markdown code fences, no commentary outside the JSON structure itself. The
JSON must have exactly this shape:

{
  "rivals": [
    {
      "mechanism": "string",
      "why_it_explains_the_same_evidence": "string",
      "named_confounds": ["string", "..."],
      "discriminating_test": {
        "description": "string",
        "computable_on_held_data": true,
        "what_result_favors_rival": "string"
      }
    }
  ],
  "no_viable_rival": false,
  "notes": "string"
}

Rules for the JSON:
- "rivals" is an array of zero to three objects, in the shape shown above.
  Zero entries is valid and expected whenever no genuine rival exists.
- If "rivals" is empty, set "no_viable_rival" to true. If "rivals" is
  non-empty, set "no_viable_rival" to false.
- "named_confounds" is an array of short strings (one per confound named).
- "computable_on_held_data" is a boolean: true if the discriminating test
  could be run using data of the same kind described above (the same
  catalogue/source, re-queried or extended), false if it would require a
  fundamentally different dataset not described above.
- "notes" is a string for anything else worth recording; use an empty
  string if there is nothing to add. Do not use it to restate the rivals.
- Do not include any keys other than the ones shown above, at any level.
- Do not wrap the JSON in a code fence (no ``` characters). Output the JSON
  object itself and nothing else — your entire response must be valid JSON,
  parseable with no pre- or post-processing.

################################################################
END OF r2-edh-b1-20
Save Grok's reply, verbatim, as plain text, to:
  docs/generated/popper_rivals/r2-edh-b1/grok/r2-edh-b1-20.md
################################################################

################################################################
CONJECTURE r2-edh-b1-23  --  PASTE THIS ENTIRE BLOCK AS ONE GROK MESSAGE
################################################################

You are acting as an independent scientific referee. You will be shown ONE
empirical conjecture from a data-driven research project that catalogues
historical manuscripts and inscriptions, together with: the mechanism its
authors proposed to explain it, a summary of the training evidence that
supported it while it was being developed, and the outcome of a single
pre-registered test the authors later ran against held-out data (data that
was not consulted while the conjecture was written).

Your task is not to defend or attack the conjecture's authors. Your task is
to ask a narrower question: is there a DIFFERENT causal mechanism, distinct
from the one proposed, that would produce the same training-evidence pattern
AND the same held-out outcome equally well or better? A mechanism that is
merely "also consistent with the data" is not enough — it should be a
genuine rival explanation, one a careful skeptic would actually worry about.

## The conjecture

**Claim (as registered):** One specific northern-Italian holdout province (Transpadana) shows an elevated stele share of its monument-typed rows (20% or more), matching one specific training-side province's (Aemilia's) exceptional stele share via a shared regional funerary tradition distinct from the classic Roman altar/sarcophagus repertoire.

**Proposed mechanism:** A regional funerary-monument tradition specific to Cisalpine Gaul (northern Italy), predicted to extend from one Cisalpine region to a neighboring one sharing the same substrate culture. This claim rests on a single training exemplar, disclosed as a genuine limitation.

**Scope:** Source: the Epigraphic Database Heidelberg (EDH), a catalogue of Roman-period inscriptions on stone/metal/etc. (physical objects, catalogued separately from a manuscript census). Training: the 33 provinces in the alphabetically first half of EDH's own province-code order (42,009 inscriptions). Holdout: the 33 provinces in the alphabetically second half, minus 'Provincia incerta' (EDH's own catch-all for uncertain findspots, not a real geographic unit, excluded from all arithmetic) -- 32 real provinces, 39,457 inscriptions -- landed in one complete fetch after the claim was fixed. EDH's own content has been fixed since 2021 (the cataloguing project's funding ended), so this holdout tests whether a pattern generalizes across an arbitrary alphabetical split of already-catalogued, unchanging material, not whether it predicts new discoveries. Single named holdout target: Transpadana. Minimum support: at least 100 monument-typed rows.

**Training-side evidence:** The training exemplar's true corrected stele share (after fixing a denominator error in an earlier description) is 43.81% (85 of 194 monument-typed rows).

**Holdout test and outcome:** Transpadana landed at 21.38% (31 of 145 monument-typed rows).

**Status:** Survived on the one province tested.

## What we need from you

For this conjecture, propose UP TO THREE rival mechanisms. For each rival,
give:

1. **mechanism** — the rival causal mechanism, stated plainly, in one or two
   sentences. It must be genuinely distinct from the stated mechanism above,
   not a rewording of it.
2. **why_it_explains_the_same_evidence** — why this rival would produce the
   same training pattern AND the same held-out outcome described above, at
   least as well as the stated mechanism does.
3. **named_confounds** — the specific confound(s) this rival mechanism turns
   on (for example: cataloguing or data-entry practice, survival or
   preservation bias, a unit-of-count or denominator effect, a harvest or
   digitization artifact, an administrative or geographic classification
   artifact, selection effects in what got catalogued at all). Name the
   actual confound(s) at work here — do not just gesture at "bias" in the
   abstract.
4. **discriminating_test** — a concrete, specific, and in-principle
   computable procedure that would produce a DIFFERENT predicted result
   under your rival mechanism than under the stated mechanism. State: what
   you would measure, and what result would come out differently. Say
   whether it could run against data of the same kind already described
   above (the same catalogue or an extension of it), or would need a
   different dataset.

**Quality over count.** If you cannot construct a genuine rival that is at
least as plausible as the stated mechanism, do not invent a weak one just to
fill the list. Declaring no viable rival is a MORE useful and MORE valued
answer than a strained one — a rival that is obviously worse than the
original actively harms this exercise, because it wastes the reader's time
checking a mechanism no one should have believed in the first place. Zero,
one, two, or three rivals are all acceptable outputs. Most conjectures will
not have three good rivals; some will have none.

## What you are not given, and should not guess at

You are not told how close to its pass/fail boundary this conjecture's
held-out test came, how any other conjecture in the same project fared, or
how this result will be used downstream. Do not speculate about any of
that. Evaluate this conjecture entirely on its own terms, using only the
evidence given above.

## Output format

Respond with STRICT JSON ONLY. No prose before or after the JSON, no
markdown code fences, no commentary outside the JSON structure itself. The
JSON must have exactly this shape:

{
  "rivals": [
    {
      "mechanism": "string",
      "why_it_explains_the_same_evidence": "string",
      "named_confounds": ["string", "..."],
      "discriminating_test": {
        "description": "string",
        "computable_on_held_data": true,
        "what_result_favors_rival": "string"
      }
    }
  ],
  "no_viable_rival": false,
  "notes": "string"
}

Rules for the JSON:
- "rivals" is an array of zero to three objects, in the shape shown above.
  Zero entries is valid and expected whenever no genuine rival exists.
- If "rivals" is empty, set "no_viable_rival" to true. If "rivals" is
  non-empty, set "no_viable_rival" to false.
- "named_confounds" is an array of short strings (one per confound named).
- "computable_on_held_data" is a boolean: true if the discriminating test
  could be run using data of the same kind described above (the same
  catalogue/source, re-queried or extended), false if it would require a
  fundamentally different dataset not described above.
- "notes" is a string for anything else worth recording; use an empty
  string if there is nothing to add. Do not use it to restate the rivals.
- Do not include any keys other than the ones shown above, at any level.
- Do not wrap the JSON in a code fence (no ``` characters). Output the JSON
  object itself and nothing else — your entire response must be valid JSON,
  parseable with no pre- or post-processing.

################################################################
END OF r2-edh-b1-23
Save Grok's reply, verbatim, as plain text, to:
  docs/generated/popper_rivals/r2-edh-b1/grok/r2-edh-b1-23.md
################################################################

################################################################
CONJECTURE r2-edh-b1-24  --  PASTE THIS ENTIRE BLOCK AS ONE GROK MESSAGE
################################################################

You are acting as an independent scientific referee. You will be shown ONE
empirical conjecture from a data-driven research project that catalogues
historical manuscripts and inscriptions, together with: the mechanism its
authors proposed to explain it, a summary of the training evidence that
supported it while it was being developed, and the outcome of a single
pre-registered test the authors later ran against held-out data (data that
was not consulted while the conjecture was written).

Your task is not to defend or attack the conjecture's authors. Your task is
to ask a narrower question: is there a DIFFERENT causal mechanism, distinct
from the one proposed, that would produce the same training-evidence pattern
AND the same held-out outcome equally well or better? A mechanism that is
merely "also consistent with the data" is not enough — it should be a
genuine rival explanation, one a careful skeptic would actually worry about.

## The conjecture

**Claim (as registered):** The average width of the resolved date range (for range-precision rows only; exact-precision rows are excluded, since they have a trivial zero-width range by construction) stays within 20 to 250 years in every eligible province.

**Proposed mechanism:** Epigraphic date-range resolution (when an inscription cannot be pinned to a single year, it is bracketed to a plausible span, often by a convention such as an emperor's reign) is proposed to fall within a normal, convention-driven band -- neither implausibly narrow nor implausibly wide -- regardless of province.

**Scope:** Source: the Epigraphic Database Heidelberg (EDH), a catalogue of Roman-period inscriptions on stone/metal/etc. (physical objects, catalogued separately from a manuscript census). Training: the 33 provinces in the alphabetically first half of EDH's own province-code order (42,009 inscriptions). Holdout: the 33 provinces in the alphabetically second half, minus 'Provincia incerta' (EDH's own catch-all for uncertain findspots, not a real geographic unit, excluded from all arithmetic) -- 32 real provinces, 39,457 inscriptions -- landed in one complete fetch after the claim was fixed. EDH's own content has been fixed since 2021 (the cataloguing project's funding ended), so this holdout tests whether a pattern generalizes across an arbitrary alphabetical split of already-catalogued, unchanging material, not whether it predicts new discoveries. Minimum support: at least 30 range-precision rows in a province.

**Training-side evidence:** Narrowest training-side average: 26.63 years (n=38). Widest: 231.37 years (n=457).

**Holdout test and outcome:** Of 24 eligible holdout provinces, the closest approach to the floor was 71.20 years.

**Status:** Survived every eligible holdout province.

## What we need from you

For this conjecture, propose UP TO THREE rival mechanisms. For each rival,
give:

1. **mechanism** — the rival causal mechanism, stated plainly, in one or two
   sentences. It must be genuinely distinct from the stated mechanism above,
   not a rewording of it.
2. **why_it_explains_the_same_evidence** — why this rival would produce the
   same training pattern AND the same held-out outcome described above, at
   least as well as the stated mechanism does.
3. **named_confounds** — the specific confound(s) this rival mechanism turns
   on (for example: cataloguing or data-entry practice, survival or
   preservation bias, a unit-of-count or denominator effect, a harvest or
   digitization artifact, an administrative or geographic classification
   artifact, selection effects in what got catalogued at all). Name the
   actual confound(s) at work here — do not just gesture at "bias" in the
   abstract.
4. **discriminating_test** — a concrete, specific, and in-principle
   computable procedure that would produce a DIFFERENT predicted result
   under your rival mechanism than under the stated mechanism. State: what
   you would measure, and what result would come out differently. Say
   whether it could run against data of the same kind already described
   above (the same catalogue or an extension of it), or would need a
   different dataset.

**Quality over count.** If you cannot construct a genuine rival that is at
least as plausible as the stated mechanism, do not invent a weak one just to
fill the list. Declaring no viable rival is a MORE useful and MORE valued
answer than a strained one — a rival that is obviously worse than the
original actively harms this exercise, because it wastes the reader's time
checking a mechanism no one should have believed in the first place. Zero,
one, two, or three rivals are all acceptable outputs. Most conjectures will
not have three good rivals; some will have none.

## What you are not given, and should not guess at

You are not told how close to its pass/fail boundary this conjecture's
held-out test came, how any other conjecture in the same project fared, or
how this result will be used downstream. Do not speculate about any of
that. Evaluate this conjecture entirely on its own terms, using only the
evidence given above.

## Output format

Respond with STRICT JSON ONLY. No prose before or after the JSON, no
markdown code fences, no commentary outside the JSON structure itself. The
JSON must have exactly this shape:

{
  "rivals": [
    {
      "mechanism": "string",
      "why_it_explains_the_same_evidence": "string",
      "named_confounds": ["string", "..."],
      "discriminating_test": {
        "description": "string",
        "computable_on_held_data": true,
        "what_result_favors_rival": "string"
      }
    }
  ],
  "no_viable_rival": false,
  "notes": "string"
}

Rules for the JSON:
- "rivals" is an array of zero to three objects, in the shape shown above.
  Zero entries is valid and expected whenever no genuine rival exists.
- If "rivals" is empty, set "no_viable_rival" to true. If "rivals" is
  non-empty, set "no_viable_rival" to false.
- "named_confounds" is an array of short strings (one per confound named).
- "computable_on_held_data" is a boolean: true if the discriminating test
  could be run using data of the same kind described above (the same
  catalogue/source, re-queried or extended), false if it would require a
  fundamentally different dataset not described above.
- "notes" is a string for anything else worth recording; use an empty
  string if there is nothing to add. Do not use it to restate the rivals.
- Do not include any keys other than the ones shown above, at any level.
- Do not wrap the JSON in a code fence (no ``` characters). Output the JSON
  object itself and nothing else — your entire response must be valid JSON,
  parseable with no pre- or post-processing.

################################################################
END OF r2-edh-b1-24
Save Grok's reply, verbatim, as plain text, to:
  docs/generated/popper_rivals/r2-edh-b1/grok/r2-edh-b1-24.md
################################################################

################################################################
CONJECTURE r2-edh-b1-25  --  PASTE THIS ENTIRE BLOCK AS ONE GROK MESSAGE
################################################################

You are acting as an independent scientific referee. You will be shown ONE
empirical conjecture from a data-driven research project that catalogues
historical manuscripts and inscriptions, together with: the mechanism its
authors proposed to explain it, a summary of the training evidence that
supported it while it was being developed, and the outcome of a single
pre-registered test the authors later ran against held-out data (data that
was not consulted while the conjecture was written).

Your task is not to defend or attack the conjecture's authors. Your task is
to ask a narrower question: is there a DIFFERENT causal mechanism, distinct
from the one proposed, that would produce the same training-evidence pattern
AND the same held-out outcome equally well or better? A mechanism that is
merely "also consistent with the data" is not enough — it should be a
genuine rival explanation, one a careful skeptic would actually worry about.

## The conjecture

**Claim (as registered):** Photographic-documentation coverage (the inverse of the share of rows explicitly marked as having no image) is highly heterogeneous: at least one eligible province lands with over 40% 'no image' rows, AND at least one lands under 3%.

**Proposed mechanism:** Photographic documentation effort and resourcing is proposed to vary by province/collection history (a curatorial-resourcing measure, the photographic-coverage counterpart of the monument-type-coverage heterogeneity claim above), not to cluster around a typical value.

**Scope:** Source: the Epigraphic Database Heidelberg (EDH), a catalogue of Roman-period inscriptions on stone/metal/etc. (physical objects, catalogued separately from a manuscript census). Training: the 33 provinces in the alphabetically first half of EDH's own province-code order (42,009 inscriptions). Holdout: the 33 provinces in the alphabetically second half, minus 'Provincia incerta' (EDH's own catch-all for uncertain findspots, not a real geographic unit, excluded from all arithmetic) -- 32 real provinces, 39,457 inscriptions -- landed in one complete fetch after the claim was fixed. EDH's own content has been fixed since 2021 (the cataloguing project's funding ended), so this holdout tests whether a pattern generalizes across an arbitrary alphabetical split of already-catalogued, unchanging material, not whether it predicts new discoveries. Minimum support: at least 100 rows in a province.

**Training-side evidence:** High end: two training provinces above 40% 'no image' (55.94%, 41.89%). Low end: several training provinces under 0.5%, some at exactly 0.0%.

**Holdout test and outcome:** Of 27 eligible holdout provinces: low end 0.0%, high end 51.25%.

**Status:** Survived (both extremes reproduced in the holdout).

## What we need from you

For this conjecture, propose UP TO THREE rival mechanisms. For each rival,
give:

1. **mechanism** — the rival causal mechanism, stated plainly, in one or two
   sentences. It must be genuinely distinct from the stated mechanism above,
   not a rewording of it.
2. **why_it_explains_the_same_evidence** — why this rival would produce the
   same training pattern AND the same held-out outcome described above, at
   least as well as the stated mechanism does.
3. **named_confounds** — the specific confound(s) this rival mechanism turns
   on (for example: cataloguing or data-entry practice, survival or
   preservation bias, a unit-of-count or denominator effect, a harvest or
   digitization artifact, an administrative or geographic classification
   artifact, selection effects in what got catalogued at all). Name the
   actual confound(s) at work here — do not just gesture at "bias" in the
   abstract.
4. **discriminating_test** — a concrete, specific, and in-principle
   computable procedure that would produce a DIFFERENT predicted result
   under your rival mechanism than under the stated mechanism. State: what
   you would measure, and what result would come out differently. Say
   whether it could run against data of the same kind already described
   above (the same catalogue or an extension of it), or would need a
   different dataset.

**Quality over count.** If you cannot construct a genuine rival that is at
least as plausible as the stated mechanism, do not invent a weak one just to
fill the list. Declaring no viable rival is a MORE useful and MORE valued
answer than a strained one — a rival that is obviously worse than the
original actively harms this exercise, because it wastes the reader's time
checking a mechanism no one should have believed in the first place. Zero,
one, two, or three rivals are all acceptable outputs. Most conjectures will
not have three good rivals; some will have none.

## What you are not given, and should not guess at

You are not told how close to its pass/fail boundary this conjecture's
held-out test came, how any other conjecture in the same project fared, or
how this result will be used downstream. Do not speculate about any of
that. Evaluate this conjecture entirely on its own terms, using only the
evidence given above.

## Output format

Respond with STRICT JSON ONLY. No prose before or after the JSON, no
markdown code fences, no commentary outside the JSON structure itself. The
JSON must have exactly this shape:

{
  "rivals": [
    {
      "mechanism": "string",
      "why_it_explains_the_same_evidence": "string",
      "named_confounds": ["string", "..."],
      "discriminating_test": {
        "description": "string",
        "computable_on_held_data": true,
        "what_result_favors_rival": "string"
      }
    }
  ],
  "no_viable_rival": false,
  "notes": "string"
}

Rules for the JSON:
- "rivals" is an array of zero to three objects, in the shape shown above.
  Zero entries is valid and expected whenever no genuine rival exists.
- If "rivals" is empty, set "no_viable_rival" to true. If "rivals" is
  non-empty, set "no_viable_rival" to false.
- "named_confounds" is an array of short strings (one per confound named).
- "computable_on_held_data" is a boolean: true if the discriminating test
  could be run using data of the same kind described above (the same
  catalogue/source, re-queried or extended), false if it would require a
  fundamentally different dataset not described above.
- "notes" is a string for anything else worth recording; use an empty
  string if there is nothing to add. Do not use it to restate the rivals.
- Do not include any keys other than the ones shown above, at any level.
- Do not wrap the JSON in a code fence (no ``` characters). Output the JSON
  object itself and nothing else — your entire response must be valid JSON,
  parseable with no pre- or post-processing.

################################################################
END OF r2-edh-b1-25
Save Grok's reply, verbatim, as plain text, to:
  docs/generated/popper_rivals/r2-edh-b1/grok/r2-edh-b1-25.md
################################################################
