# Popper r2-edh-b1 -- Independent Re-derivation Pass (near-threshold gate)

**Role**: second, independent derivation required by the registered near-threshold rule before any
near-threshold Block A verdict in batch `r2-edh-b1` may issue. This document is that second
derivation for the nine conjectures the machine scorer flagged `WITHHELD-PENDING-REDERIVATION`
(plus 01, whose deciding value/population was fixed by a separate orchestrator ruling, and which
carries the same near-threshold margin) and 06 (which the registration document additionally,
unconditionally pre-commits to re-derivation regardless of margin).

**Scope**: r2-edh-b1-01, 03, 04, 05, 06, 13, 16, 20, 23.

**Actor**: Claude Sonnet 5 (independent re-derivation pass), 2026-08-06.

**Inputs read**:
- `docs/generated/popper_r2_edh_scoring_values_20260806.json` -- machine scorer's draft values (the
  numbers being checked).
- `docs/generated/popper_r2_edh_pinned_blockA.json` -- the 25 instruments' registered definitions,
  eligibility tables, and min-support floors (the rules being independently applied). All province
  lists, floors, and Rom/ReB/Inc resolutions used below were transcribed from this file's own
  `province_lists` block and each conjecture's own `eligibility_table`/`min_support` fields --
  never from the `frozen_sql` text and never from the scorer's JSON.
- The registration document itself was **not** read or touched, per task constraints.

**DB**: prod `inferopedia-db-1`, database `inferopedia`, `CatalogueSource` slug `edh` (id 68),
81,855 rows total. Read-only SELECTs only, via Django ORM, no writes, no migrations, no git, no
network.

## Methodology: a genuinely different computation path

The frozen SQL (pinned in `popper_r2_edh_pinned_blockA.json`) computes every instrument
server-side, in hand-written PostgreSQL CTEs using `GROUP BY`/`HAVING`, and for the ranking/peak
instruments, window functions (`RANK() OVER (PARTITION BY ...)`, `ROW_NUMBER()`, `SUM(...) OVER
()`). The scorer's own run (`popper_r2_edh_scoring_values_20260806.json`) executed that same SQL
text verbatim.

This pass instead:

1. Fetched **row-level** data only, via
   `ManuscriptRecord.objects.filter(source=<edh>).values_list('raw', 'date_start', 'date_end',
   'date_precision').iterator(chunk_size=2000)` -- the entire `raw` JSONB blob per row (not a
   server-side JSON key-transform/`->>` projection) plus the three direct model columns. No
   server-side `GROUP BY`, `HAVING`, window function, or CTE was used anywhere in this path.
2. Did **all** extraction (`province_code` from `raw['_scriptome_harvest']['province_code']`,
   `language` from `raw['language']`, `type_of_monument` from `raw['type_of_monument']`) and **all**
   aggregation (per-province counts, per-province `date_precision` tallies, per-province
   century-bucket histograms, group pass-rates, top-N ranking, min/max scans, peak-window sums)
   client-side in plain Python, using `collections.Counter`/`defaultdict` and built-in `min`/`max`/
   `sorted`.
3. Computed the century bucket via Python's native floor-division operator, `date_start // 100`.
   This is algebraically verified equivalent, for every integer, to the registered
   `date_start>=0 ? date_start/100 : (date_start-99)/100` convention (both are true floor division
   of `date_start` by 100) -- implemented independently rather than transcribed as a CASE
   expression.
4. Applied `date_end<1000` and `date_start IS NOT NULL` as plain Python `is not None`/`<` filters
   (matching SQL's three-valued-NULL semantics: a NULL `date_end` fails `date_end<1000` in both
   SQL and this Python port, so such rows are excluded from the 14/16 bucket family in both).
   Applied "empty/blank treated as absent" for `type_of_monument`/`province_code` via Python
   truthiness (`if tom:` / `if not province:`), never via `is not None` alone, since a stray empty
   string should not count as a populated value in either implementation. `date_start`/`date_end`
   are `IntegerField`s where `0` is a legitimate value, so those two used strict `is not None`
   checks throughout, never truthiness.
5. Applied each conjecture's own `eligibility_table` (in-scope province list, min-support floor,
   Rom/ReB/Inc resolution) exactly as pinned, independently transcribed per conjecture (see the
   conjecture-16 note below for a self-caught transcription error in the first draft of this pass).

Script: `rederive.py`, run via `docker compose exec -T web python manage.py shell -c
"$(cat rederive.py)"` from `/var/www/html/inferopedia`, output captured to a scratchpad file. The
script is scratch/ephemeral (not part of the repository) and is not among the files this task
touches; it is described here for audit purposes only. It was run twice against the live DB in this
session; the two runs' outputs are byte-identical except for the conjecture-16 fix described below,
which is itself a useful determinism check (no concurrent writes affected the `edh` rows between
runs).

### Baseline data cross-check

Before scoring anything, the independent fetch's own row totals were cross-checked against the
scorer's and pinning pass's independently-stated totals:

| Quantity | This pass | Scorer / pinned doc |
|---|---|---|
| Total `edh` rows | 81,855 | 81,855 (scorer's `db` note) |
| 32-province geographic holdout total (Inc excluded) | 39,457 | 39,457 (scorer's `holdout_32_geographic_total_independent_recount`) |
| 33-province training total | 42,009 | 42,009 (pinned doc's conjecture-01 `training_value.grand_total`) |
| `Inc` (Provincia incerta) rows, disclosed, never in arithmetic | 389 | consistent with 39,846 (ingest report) - 39,457 = 389 |

All four match exactly. This is a fully independent recount (row-level fetch + Python `Counter`,
not the frozen SQL), and it agrees with both the scorer's and the ingest report's numbers before any
per-conjecture logic is applied.

---

## Summary table

| ID | Statement | Original (scorer) deciding value | Re-derived deciding value | Agreement | Mechanical verdict |
|---|---|---|---|---|---|
| 01 | Top-5 holdout provinces hold >=45% of the 32-province holdout total | 48.767% | **48.7670%** (19,242 / 39,457) | MATCH (>=6 s.f.) | **SURVIVES-LEG** |
| 03 | >=12/32 land <300 AND >=5/32 land >=1000 | 12 of 32; 15 of 32 | **12 of 32; 15 of 32** | MATCH (exact) | **SURVIVES-LEG** |
| 04 | >=1 province <35% dated AND >=1 >95% dated | min MaT 13.4021%; max Nor 99.603% | min MaT **13.4021%**; max Nor **99.6030%** | MATCH (>=6 s.f.) | **SURVIVES-LEG** |
| 05 | >=75% of then-eligible (N>=1000) large provinces show range_share>=40% | 11/15 = 73.3333% | **11/15 = 73.3333%** | MATCH (>=6 s.f.) | **KILL-CANDIDATE** |
| 06 | exact-precision dating stays <=40% of dated rows, every eligible province | max MaT 38.4615% (ceiling 40%) | max MaT **38.4615%** | MATCH (>=6 s.f.) | **SURVIVES-LEG** (pre-committed watch, see below) |
| 13 | Latin-West non-Latin<5% (80% of 21) vs Greek-East non-Latin>=5% (80% of 6) | LW 100.0%; GE 80.0% | LW **100.000%**; GE **80.0000%** | MATCH (exact) | **SURVIVES-LEG** |
| 16 | window_share>=90% of dated rows, every eligible province | min Nar 92.5926% (floor 90%) | min Nar **92.5926%** | MATCH (>=6 s.f.) | **SURVIVES-LEG** |
| 20 | >=1 province <30% AND >=1 >90% monument-type coverage | min Sar 13.1579%; max PaI 93.0121% | min Sar **13.1579%**; max PaI **93.0121%** | MATCH (>=6 s.f.) | **SURVIVES-LEG** |
| 23 | Transpadana stele share >=20% of monument-typed rows | 21.3793% (31/145) | **21.3793%** (31/145) | MATCH (exact fraction) | **SURVIVES-LEG** |

All nine deciding values were reproduced to at least 6 significant figures of agreement (most agree
to the full precision the scorer reported, 4-6 s.f., and to far more than 6 s.f. against the
underlying float). **No original-vs-re-derived numeric mismatches were found.**

---

## Per-conjecture detail

### r2-edh-b1-01 -- Top-5 holdout concentration

*Statement*: top-5 of the 32 geographic holdout provinces (Inc excluded) by inscription count,
share of the 32-province total >= 45%. Population per orchestrator ruling: the 32-province holdout
total (not the frozen SQL's verbatim, both-halves-mixed reading -- that population-scope question
is a separate, already-adjudicated matter this pass does not reopen). Eligibility: all 32 holdout
codes in scope, Rom and ReB both IN (density/concentration family, explicit standing-note carve-in),
Inc excluded. No min-support floor (full-population shape claim).

Because this pass always works from an explicit 32-code allowlist (never a blanket `<> Inc`
exclusion over the whole table), it was never exposed to the frozen SQL's own scope defect
(computing across both halves once both are landed) in the first place.

- Re-derived: top5_n = 19,242; grand_total = 39,457; **top5_share_pct = 48.767012%** (8 s.f.).
- Scorer: top5_n = 19,242.0; grand_total = 39,457.0; top5_share_pct = 48.767%.
- Top 5, both counts and identities, match exactly: HiC 4685, Rom 4393, PaS 4259, PaI 3134, Nor
  2771. No tie at the rank-5/rank-6 boundary (2771 vs. next-highest 2644 -- a clear 127-row gap).
- Threshold 45.0%; relative distance = (48.767 - 45)/45 = **0.083711** (8.37% relative -- within the
  10%-relative near-threshold band, hence this re-derivation requirement).
- **Verdict: SURVIVES-LEG** (48.767% >= 45%), independently confirmed.

Full 32-province ranked table: see `01 -- ranked all 32 holdout provinces` below.

| Rank | Province | Count |
|---|---|---|
| 1 | HiC **(top 5)** | 4685 |
| 2 | Rom **(top 5)** | 4393 |
| 3 | PaS **(top 5)** | 4259 |
| 4 | PaI **(top 5)** | 3134 |
| 5 | Nor **(top 5)** | 2771 |
| 6 | Num | 2644 |
| 7 | LaC | 2598 |
| 8 | MoI | 1973 |
| 9 | Lus | 1583 |
| 10 | MoS | 1476 |
| 11 | Nar | 1403 |
| 12 | Mak | 1321 |
| 13 | VeH | 1155 |
| 14 | MaC | 1124 |
| 15 | Rae | 1012 |
| 16 | Sam | 649 |
| 17 | Lug | 596 |
| 18 | Syr | 406 |
| 19 | Thr | 396 |
| 20 | Umb | 348 |
| 21 | MaT | 291 |
| 22 | Sar | 228 |
| 23 | Sic | 193 |
| 24 | Iud | 187 |
| 25 | Pic | 171 |
| 26 | Tra | 165 |
| 27 | Lig | 145 |
| 28 | ReB | 78 |
| 29 | LyP | 61 |
| 30 | Mes | 12 |
| 31 | Tri | 0 |
| 32 | Val | 0 |

### r2-edh-b1-03 -- Province-size heavy tail

*Statement*: >=12/32 land under 300 rows AND >=5/32 land at/above 1,000. Eligibility: all 32 codes,
Rom/ReB IN, zero-filled (no province silently drops out for having 0 landed rows).

- Re-derived: **12 of 32 under 300** (exact match to the threshold of 12); **15 of 32 at/above
  1,000** (threshold 5, cleared with margin). Both clauses independently verified against the
  zero-filled per-province table.
- Scorer: identical (12, 15).
- Clause 1 sits exactly on its own threshold (12 == 12, non-strict `>=`) -- a knife-edge count-based
  boundary touch, structurally the same kind of exact-tie situation as conjecture 13's Greek-East
  clause below (80.0% == 80.0%). Both are exact integer ratios, not rounding artifacts.
- **Verdict: SURVIVES-LEG** (conjunction: both clauses hold).

Full 32-province zero-filled table: see appendix table `03` in the working data (identical to the
per-province counts listed under 01 above, since both instruments use the same raw counts; the <300
provinces are Iud, Lig, LyP, MaT, Mes, Pic, ReB, Sar, Sic, Tra, Tri, Val (12); the >=1000 provinces
are HiC, LaC, Lus, MaC, Mak, MoI, MoS, Nar, Nor, Num, PaI, PaS, Rae, Rom, VeH (15)).

### r2-edh-b1-04 -- Date-coverage heterogeneity

*Statement*: >=1 eligible province with dated-share <35% AND >=1 with dated-share >95%.
Eligibility: all 32 codes (Rom/ReB IN -- explicit coverage-heterogeneity carve-in), floor N(total)>=30.

- Re-derived: n_then_eligible = 29 (below floor: Mes, Tri, Val -- all three have <30 total rows).
  Min = **MaT, 13.402062%**; max = **Nor, 99.603031%**.
- Scorer: n_then_eligible = 29; min MaT 13.4021%; max Nor 99.603%; same below-floor set.
- Low-clause relative distance (35-13.4021)/35 = **0.617084**; high-clause relative distance
  (99.603-95)/95 = **0.048453** -- the high clause is the near-threshold leg (4.85% relative).
- **Verdict: SURVIVES-LEG** (both clauses hold).

| Province | dated_share % | <35%? | >95%? |
|---|---|---|---|
| MaT | 13.4021 | **yes** | |
| Sar | 14.9123 | **yes** | |
| Sic | 15.5440 | **yes** | |
| Lug | 20.9732 | **yes** | |
| Nar | 21.1689 | **yes** | |
| Syr | 21.6749 | **yes** | |
| MaC | 23.3096 | **yes** | |
| LaC | 31.5627 | **yes** | |
| Lus | 32.0278 | **yes** | |
| ReB | 34.6154 | **yes** | |
| Sam | 38.0586 | | |
| Umb | 43.3908 | | |
| Iud | 43.8503 | | |
| LyP | 44.2623 | | |
| VeH | 47.1861 | | |
| Pic | 53.8012 | | |
| HiC | 56.9264 | | |
| Rom | 58.1835 | | |
| Num | 60.4766 | | |
| Mak | 82.3618 | | |
| MoS | 90.7859 | | |
| Lig | 91.7241 | | |
| Tra | 93.3333 | | |
| Thr | 93.4343 | | |
| MoI | 95.6918 | | **yes** |
| Rae | 96.5415 | | **yes** |
| PaS | 98.2155 | | **yes** |
| PaI | 99.2023 | | **yes** |
| Nor | 99.6030 | | **yes** |

Below floor (N<30): Mes, Tri, Val.

### r2-edh-b1-05 -- Range-precision dominance among large provinces (group %)

*Statement*: among then-eligible (N>=1000) large provinces, >=75% must show range-precision share
>=40%. Eligibility: all 32 codes, Rom/ReB IN, floor N(total)>=1000.

Full per-province eligible list and each province's own value, independently re-derived (as
required for this group-percentage instrument):

| Province | range_share % | passes >=40%? |
|---|---|---|
| Nor | 94.6951 | yes |
| PaS | 93.5900 | yes |
| PaI | 91.3848 | yes |
| Rae | 88.2411 | yes |
| MoI | 87.5317 | yes |
| MoS | 84.8238 | yes |
| Mak | 77.3656 | yes |
| Num | 56.1649 | yes |
| HiC | 54.6211 | yes |
| Rom | 52.4698 | yes |
| VeH | 43.4632 | yes |
| Lus | 30.6380 | no |
| LaC | 27.1747 | no |
| MaC | 19.7509 | no |
| Nar | 19.7434 | no |

Below floor (N<1000), 17 provinces: Iud, Lig, Lug, LyP, MaT, Mes, Pic, ReB, Sam, Sar, Sic, Syr, Thr,
Tra, Tri, Umb, Val.

- Re-derived: n_then_eligible = 15; 11 pass (HiC, Mak, MoI, MoS, Nor, Num, PaI, PaS, Rae, Rom, VeH);
  4 fail (LaC, Lus, MaC, Nar); **pct_passing = 73.333333%**.
- Scorer: n_then_eligible = 15; same 11 passing / 4 failing provinces; pct_passing = 73.3333%.
- Every individual province's own range_share value matches the scorer's to the stated precision
  (spot-checked all 15, not just the aggregate).
- Group threshold 75.0%; relative distance = (73.3333-75)/75 = **-0.022222** (2.22% relative --
  near-threshold, and on the fail side).
- **Verdict: KILL-CANDIDATE** (73.3333% < 75% -- the group clause is not met; this is the one
  instrument of the nine whose group fraction is a genuine, independently-confirmed miss, not a
  survive).

### r2-edh-b1-06 -- Exact-precision dating ceiling (pre-committed near-boundary watch)

*Statement*: exact-precision dating stays <=40% of dated rows, every eligible province. Eligibility:
all 32 codes, Rom/ReB IN (documentation-convention measure), floor N(dated)>=20.

**This conjecture carries the registration document's own Sec.7 pre-commitment to independent
re-derivation "regardless of which side of the line it falls."** That pre-commitment is
unconditional -- it does not depend on how comfortable the margin looks. This pass supplies exactly
that unconditional re-derivation:

| Province | exact_share % | breaches >40% ceiling? |
|---|---|---|
| MaT | 38.4615 | no |
| Syr | 28.4091 | no |
| LyP | 25.9259 | no |
| MaC | 15.2672 | no |
| Thr | 15.1351 | no |
| Sar | 14.7059 | no |
| LaC | 13.9024 | no |
| Iud | 12.1951 | no |
| ReB | 11.1111 | no |
| Sic | 10.0000 | no |
| Rom | 9.82003 | no |
| Rae | 8.59775 | no |
| MoI | 8.52754 | no |
| VeH | 7.88991 | no |
| PaI | 7.88035 | no |
| Lig | 7.51880 | no |
| Num | 7.12946 | no |
| Nar | 6.73401 | no |
| MoS | 6.56716 | no |
| Tra | 6.49351 | no |
| Mak | 6.06618 | no |
| Nor | 4.92754 | no |
| PaS | 4.70954 | no |
| Lus | 4.33925 | no |
| HiC | 4.04949 | no |
| Pic | 3.26087 | no |
| Lug | 3.20000 | no |
| Sam | 2.83401 | no |
| Umb | 2.64901 | no |

Below floor (N dated<20): Mes, Tri, Val.

- Re-derived: n_then_eligible = 29; deciding province **MaT**, deciding value **38.461538%**
  (unambiguously the maximum across all 29 -- Syr, the second-highest, is 10 points lower at
  28.4091%, so this is not a close photo-finish between two provinces, only a moderate margin to the
  40% line itself).
- Scorer: n_then_eligible = 29; deciding_province MaT; deciding_value 38.4615%.
- Threshold 40.0% (ceiling); margin = 40 - 38.4615 = 1.5385 pp; relative distance = **0.038462**
  (3.85% relative -- comfortably inside the near-threshold band, consistent with the registration
  doc's own corrected-margin note of ~1.86pp margin to Asia's *training-side* analogue, a related but
  distinct figure from this holdout-side value).
- **Verdict: SURVIVES-LEG**, independently confirmed via the pre-committed unconditional
  re-derivation. The deciding value reproduces to 6+ significant figures via a completely different
  computation path (row-level fetch + Python ratio of two independently-tallied `Counter`s, vs. the
  frozen SQL's `COUNT(*) FILTER (...)` pair) -- this is not a case where a coincidental SQL bug could
  have propagated into the independent check, since no SQL text was shared between the two methods
  at all.

### r2-edh-b1-13 -- Language divide (two-clause group %)

*Statement*: Latin-West-21 provinces show non-Latin share <5% in >=80% of then-eligible members;
Greek-East-6 provinces show non-Latin share >=5% in >=80% of then-eligible members. Eligibility per
conjecture's own exhaustive construction (21+6=27 named codes; Rom, MoI, MoS, Sic, Thr explicitly
excluded by the instrument itself, not by the general 32-code rule), floor N(total)>=30 for both
groups.

**Latin-West-21 clause** (full eligible list and each province's own value):

| Province | non_latin_share % | passes <5%? |
|---|---|---|
| Pic | 0.00000 | yes |
| Sar | 0.00000 | yes |
| Umb | 0.00000 | yes |
| Num | 0.0378215 | yes |
| Lus | 0.0631712 | yes |
| MaC | 0.0889680 | yes |
| Rae | 0.0988142 | yes |
| Sam | 0.154083 | yes |
| HiC | 0.234792 | yes |
| Nar | 0.285103 | yes |
| Nor | 0.288704 | yes |
| MaT | 0.343643 | yes |
| VeH | 0.432900 | yes |
| Lug | 0.503356 | yes |
| Lig | 0.689655 | yes |
| LaC | 0.885296 | yes |
| PaI | 2.04212 | yes |
| PaS | 2.67668 | yes |
| Tra | 3.03030 | yes |

Below floor: Tri, Val. n_then_eligible = 19, all 19 pass -> **pct_passing = 100.000%** (scorer:
100.0%, exact match).

**Greek-East-6 clause** (full eligible list and each province's own value):

| Province | non_latin_share % | passes >=5%? |
|---|---|---|
| LyP | 29.5082 | yes |
| Mak | 24.6026 | yes |
| Iud | 10.6952 | yes |
| Syr | 7.14286 | yes |
| ReB | 1.28205 | **no** |

Below floor: Mes. n_then_eligible = 5, 4 of 5 pass (ReB fails, at 1.28% non-Latin, well under the 5%
bar) -> **pct_passing = 80.0000%** (scorer: 80.0%, exact match). This is an exact rational (4/5),
not a rounding coincidence -- it sits precisely on its own 80% threshold, the tightest possible
knife-edge for this clause.

- Combining rule (two-named-group conjunction-under-uncertainty, per the scoring methodology):
  neither clause mechanically kills (100% >= 80% and 80.0% >= 80%, both non-strict), neither group is
  below the T4 <2-eligible floor (19 and 5, both well above 2).
- **Verdict: SURVIVES-LEG.**

### r2-edh-b1-16 -- Temporal-curve compactness (self-corrected eligibility)

*Statement*: at least 90% of a province's dated rows (date_end<1000) fall within its own 6-century
peak window [peak_bucket-2, peak_bucket+3], every eligible province. Floor N(dated,
date_end<1000)>=150.

**Eligibility note and self-correction**: unlike 01/03/04/05/06/20, conjecture 16's own
`eligibility_table` in the pinned document lists only **31** in-scope provinces (`n_in_scope: 31`),
explicitly excluding Rom (`rom_resolution: "OUT"` -- a content/production-pattern claim tied to
normal provincial romanization timelines, the same judgment-call class as 09/14/15). The first draft
of this re-derivation pass mistakenly applied the generic 32-code list to conjecture 16 and included
Rom (which does clear the floor: N=2,556, window_share=99.3349%). This was caught by re-checking the
transcribed province list against the pinned `eligibility_table` field-by-field before finalizing,
fixed, and the script re-run; the corrected run reproduces the scorer's `n_then_eligible=18` and
full 18-province list exactly. This was a self-caught bug in the independent method's setup, not a
disagreement between the scorer and this pass -- both runs' full output are preserved and diff to
exactly this one change.

| Province | peak_bucket | n_dated | window_n | window_share % | breaches <90% floor? |
|---|---|---|---|---|---|
| Nar | 0 | 297 | 275 | 92.5926 | no |
| Tra | 0 | 154 | 144 | 93.5065 | no |
| Thr | 1 | 370 | 350 | 94.5946 | no |
| Lus | 0 | 507 | 489 | 96.4497 | no |
| Umb | 0 | 151 | 147 | 97.3510 | no |
| Mak | 0 | 1088 | 1060 | 97.4265 | no |
| VeH | 0 | 545 | 531 | 97.4312 | no |
| HiC | 0 | 2667 | 2620 | 98.2377 | no |
| LaC | 0 | 820 | 806 | 98.2927 | no |
| Sam | 0 | 247 | 245 | 99.1903 | no |
| MaC | 1 | 262 | 260 | 99.2366 | no |
| MoI | 1 | 1888 | 1878 | 99.4703 | no |
| Rae | 1 | 977 | 972 | 99.4882 | no |
| Nor | 0 | 2760 | 2751 | 99.6739 | no |
| MoS | 1 | 1340 | 1336 | 99.7015 | no |
| Num | 1 | 1599 | 1598 | 99.9375 | no |
| PaS | 1 | 4183 | 4181 | 99.9522 | no |
| PaI | 1 | 3109 | 3108 | 99.9678 | no |

Rom (excluded per T2, disclosed only): peak_bucket 1, n_dated 2556, window_share **99.3349%** --
not counted toward n_then_eligible or the deciding value either way.

Below floor: Iud, Lig, Lug, LyP, MaT, Mes, Pic, ReB, Sar, Sic, Syr, Tri, Val.

- Re-derived (corrected): n_then_eligible = 18; deciding province **Nar**, deciding value
  **92.592593%**.
- Scorer: n_then_eligible = 18; deciding_province Nar; deciding_value 92.5926%.
- Threshold 90.0% (floor); relative distance = (92.5926-90)/90 = **0.028807** (2.88% relative --
  near-threshold).
- **Verdict: SURVIVES-LEG.**

### r2-edh-b1-20 -- Monument-type coverage heterogeneity

*Statement*: >=1 eligible province <30% monument-type coverage AND >=1 >90%. Eligibility: all 32
codes, Rom/ReB IN (coverage-heterogeneity carve-in), floor N(total)>=100.

| Province | monu_coverage % | <30%? | >90%? |
|---|---|---|---|
| Sar | 13.1579 | **yes** | |
| MaT | 15.4639 | **yes** | |
| Sic | 19.1710 | **yes** | |
| LaC | 28.5219 | **yes** | |
| MaC | 31.9395 | | |
| Sam | 33.7442 | | |
| Syr | 34.2365 | | |
| Umb | 40.5172 | | |
| Lug | 42.9530 | | |
| Nar | 45.1176 | | |
| VeH | 45.6277 | | |
| Pic | 46.1988 | | |
| Lus | 47.3152 | | |
| Num | 53.4796 | | |
| Rom | 54.2682 | | |
| Iud | 62.5668 | | |
| HiC | 63.0736 | | |
| Mak | 80.5450 | | |
| Nor | 81.9199 | | |
| MoS | 82.5203 | | |
| Rae | 82.9051 | | |
| PaS | 84.8086 | | |
| Thr | 85.8586 | | |
| MoI | 86.6194 | | |
| Lig | 87.5862 | | |
| Tra | 87.8788 | | |
| PaI | 93.0121 | | **yes** |

Below floor (N<100): LyP, Mes, ReB, Tri, Val.

- Re-derived: n_then_eligible = 27; min = **Sar, 13.157895%**; max = **PaI, 93.012125%**.
- Scorer: n_then_eligible = 27; min_province Sar, min_value 13.1579%; max_province PaI, max_value
  93.0121%.
- Low-clause relative distance (30-13.1579)/30 = **0.561404**; high-clause relative distance
  (93.0121-90)/90 = **0.033468** -- the high clause is the near-threshold leg (3.35% relative).
- **Verdict: SURVIVES-LEG** (both clauses hold).

### r2-edh-b1-23 -- Transpadana stele share

*Statement*: Transpadana shows stele share >=20% of monument-typed rows. Single-province claim,
floor N(typed_monument)>=100.

- Re-derived: n_stele = 31; n_typed_monument = 145; **stele_share_pct = 21.379310%** (the exact
  fraction 31/145, a repeating decimal -- 21.3793...% to arbitrary precision); support floor cleared
  (145 >= 100).
- Scorer: n_stele = 31; n_typed_monument = 145; stele_share_pct = 21.3793%; support_floor_cleared =
  true.
- Threshold 20.0%; relative distance = (21.3793-20)/20 = **0.068966** (6.90% relative --
  near-threshold).
- **Verdict: SURVIVES-LEG.**

---

## Mismatches

**None found between the scorer's reported deciding values and this pass's independent
re-derivations.** All nine conjectures' deciding values agree to at least 6 significant figures
(exceeding the 4-significant-figure match bar), across every full per-province breakdown checked,
not merely the headline figures.

The one issue this pass surfaced was internal to the independent method's own setup, not a
scorer-vs-independent disagreement: conjecture 16's first-draft eligibility list wrongly included
Rom (using the generic 32-code list instead of 16's own 31-code, Rom-excluded eligibility table).
This was caught during self-review before the result was finalized (by re-checking the transcribed
list against the pinned `eligibility_table` field), corrected, and the script re-run; the two runs'
full output diffs to exactly that one change, and the corrected run matches the scorer's 18-province
eligible set exactly. Recorded here for transparency, not as an unresolved discrepancy -- both
"sides" (scorer and corrected re-derivation) agree.

Two exact-boundary touches are worth flagging on their own terms (not disagreements, but genuine
knife-edges independently confirmed rather than artifacts of rounding):
- Conjecture 03's clause 1 lands at exactly 12 of 32 provinces under 300 rows, precisely on its own
  threshold of 12.
- Conjecture 13's Greek-East clause lands at exactly 4 of 5 (80.0%) provinces passing, precisely on
  its own 80% group threshold.

Both were independently re-derived from raw per-province counts (not copied from either source) and
both reproduce the scorer's values exactly.

---

## Closing summary

**9 of 9 conjectures reproduced** (all deciding values agree with the scorer's to >=6 significant
figures; zero numeric mismatches). Verdicts: **8 survive** (01, 03, 04, 06, 13, 16, 20, 23, all
`SURVIVES-LEG`) **/ 1 kill** (05, `KILL-CANDIDATE`).
