← Laboratory

EXP-0003 — Counting-rule matrix: شهر (month) family vs the popular 12 claim

completed Deterministic computation

Question

How many times does 'shahr' occur, under each reasonable, explicitly declared counting rule?

Hypothesis

Falsifiable form of the popular claim: there exists a natural, non-gerrymandered counting rule under which singular 'shahr' occurs exactly 12 times. The experiment reports the count under every declared rule.

Counting policy

letters-basic-v1 for surface rules; morphology dataset quran-morphology-8f38b39 for lemma/root rules; basmalah counted only as ayah 1:1 (D-027).

Results — counting-rule matrix

Popular claim target: 12

RuleDefinitionCountAyahs
surface-bareBare surface token شهر on letters-basic-v1.43
surface-common-singular-formsSurface tokens شهر / الشهر / شهرا. One commonly-cited combination; other combinations exist.108
lemma-shahrWords whose lemma is شَهْر per the attributed morphology dataset (includes cliticized/suffixed singular forms; excludes forms tagged under a different lemma such as plurals, if the dataset tags them separately).2117
root-shrAll words with root ش-ه-ر per the attributed morphology dataset (broadest rule: includes plurals شهور/أشهر and any derived forms).2117
surface-clitic-stripped-singularToken equals شهر or شهرا after stripping at most one conjunction (و/ف), then at most one preposition (ب/ل/ك), then an optional article ال. Same declared clitic-segmentation variant as EXP-0002, committed before its output was seen; same elided-alif limitation.12 = target9

Counts depend entirely on the declared rule. A rule matching the claimed number does not validate the claim's method unless that rule is the one the claim actually used.

Reproducibility record

Corpus
quran:hafs-kufan:v1
Method version
token-count-matrix-v1
Results sha256
8aa9bc1aa69bc10d58f2819bd0848a0a…
Environment
{"platform":"Linux-6.18.5-x86_64-with-glibc2.39","python":"3.11.15"}
Ran
2026-07-31T02:31:56Z → 2026-07-31T02:31:56Z

Re-run with python3 services/research-worker/scripts/run_experiment.py data/research/specs/EXP-0003.json. Input checksums are recorded in the result file.