diff options
| -rw-r--r-- | data/ef/expected-divergences.sexp | 2 | ||||
| -rw-r--r-- | lib/rites/rite_ef/precedence_ef.ml | 41 | ||||
| -rw-r--r-- | lib/rites/rite_ef/temporal_ef.ml | 8 |
3 files changed, 44 insertions, 7 deletions
diff --git a/data/ef/expected-divergences.sexp b/data/ef/expected-divergences.sexp index 444f55e..f5d5381 100644 --- a/data/ef/expected-divergences.sexp +++ b/data/ef/expected-divergences.sexp @@ -75,5 +75,5 @@ ((id C17) (citation "RG 91 entry 27 (\"Officium sanctae Mariae in sabbato\") + RG 78 (Caput IX, \"De sancta Maria in sabbato\", both photographic scans and the electronic transcription word for word): \"In sabbatis, in quibus occurrit Officium de feria IV classis, fit de sancta Maria in sabbato\" -- on Saturdays on which the Office of a IV-class feria occurs, [the Office] is made of Holy Mary on Saturday instead + RG 120(b) (\"Adhibetur color albus in Officio et Missa de festis: ... b) B. Mariae Virg.\") for the white colour, unconditional regardless of season") (verdict colitur) - (note "ef-bvm-saturday task: colitur now builds RG 91 entry 27's votive Office of the BVM on every otherwise-unoccupied IV-class Saturday (Rite_ef.Temporal_ef's own [bvm_saturday_names] citation has the full argument) -- white (RG 120(b)), unconditionally, overriding the season's own colour (violet in Septuagesima, green in Time after Epiphany/Time after Pentecost; Christmastide and ordinary Paschaltide already happened to be white). lectio builds no equivalent office at all -- checked directly against its own tridentine-calendar.ini/generator, no comparable rule exists there, the same genuine upstream gap C15/C16 above document for their own gaps, not a colitur bootstrap miss -- so it keeps showing the plain season colour on every one of these Saturdays. Season, slug and rank all still agree: temporal_ef.ml's own [bvm_saturday_names] citation (\"Slug\" paragraph) deliberately REUSES the ordinary <season>-<week>-saturday ferial slug rather than minting a new one (partly BECAUSE a bespoke uniform slug would itself have broken Colitur_kernel.Validate's own slug-uniqueness invariant, sighted on every otherwise-unoccupied Saturday in a year), so [Colour_f] alone is the complete diff set every one of these rows carries -- never [Slug_f] too. Gated on colitur's own [rank]=class-4, [weekday]=saturday and [colour]=white (test_differential.ml's own [is_bvm_saturday_row]) rather than a date list, unlike C14/C15/C16 above: RG 78's own condition (\"otherwise unoccupied IV-class Saturday\") reduces exactly to this triple, and the population is large (a substantial fraction of all Saturdays in the 2005-2050 window) and entirely formulaic, not a short, individually-interesting list. Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after.") + (note "ef-bvm-saturday task: colitur now builds RG 91 entry 27's votive Office of the BVM on every otherwise-unoccupied IV-class Saturday (Rite_ef.Temporal_ef's own [bvm_saturday_names] citation has the full argument) -- white (RG 431(e) -> RG 121(a) -> RG 120(b); RG 120(b) alone reads \"de festis\" and this Office is not a festum), unconditionally, overriding the season's own colour (violet in Septuagesima, green in Time after Epiphany/Time after Pentecost; Christmastide and ordinary Paschaltide already happened to be white). lectio builds no equivalent office at all -- checked directly against its own tridentine-calendar.ini/generator, no comparable rule exists there, the same genuine upstream gap C15/C16 above document for their own gaps, not a colitur bootstrap miss -- so it keeps showing the plain season colour on every one of these Saturdays. Season, slug and rank all still agree: temporal_ef.ml's own [bvm_saturday_names] citation (\"Slug\" paragraph) deliberately REUSES the ordinary <season>-<week>-saturday ferial slug rather than minting a new one (partly BECAUSE a bespoke uniform slug would itself have broken Colitur_kernel.Validate's own slug-uniqueness invariant, sighted on every otherwise-unoccupied Saturday in a year), so [Colour_f] alone is the complete diff set every one of these rows carries -- never [Slug_f] too. Gated on colitur's own [rank]=class-4, [weekday]=saturday and [colour]=white (test_differential.ml's own [is_bvm_saturday_row]) rather than a date list, unlike C14/C15/C16 above: RG 78's own condition (\"otherwise unoccupied IV-class Saturday\") reduces exactly to this triple, and the population is large (a substantial fraction of all Saturdays in the 2005-2050 window) and entirely formulaic, not a short, individually-interesting list. Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after.") (expected_rows 416)) diff --git a/lib/rites/rite_ef/precedence_ef.ml b/lib/rites/rite_ef/precedence_ef.ml index 302df98..7b64b83 100644 --- a/lib/rites/rite_ef/precedence_ef.ml +++ b/lib/rites/rite_ef/precedence_ef.ml @@ -458,9 +458,18 @@ let band (ctx : Vocab_ef.season Precedence.context) (c : Vocab_ef.rank Precedenc "eiusdem Divinae Personae" (read as simply "both [subject = Lord]", that branch's own comment: "safe at today's data's own granularity") -- here read as "titled a feast of the BVM", not verified oration-by- - oration, and said so explicitly rather than overclaimed. TWO entries - found and deliberately EXCLUDED after individual consideration, not - merely omitted: "dedication-of-the-basilica-of-st-mary-major" (5 + oration, and said so explicitly rather than overclaimed. THREE entries found + and considered individually rather than merely omitted -- the third, + "vigil-of-the-assumption" (14 August, Class2, Feast), was MISSED by the + original enumeration and is recorded here by the fix-round re-review: it + is unambiguously de B. Maria Virg. and its collect implores her + protection ("sua nos defensione munitos"), so it BELONGS on the list on + the same reasoning as the rest. It is behaviourally inert either way -- + measured domain-wide, it wins 7196 times, always with the non-Marian + [eusebius-confessor] as its only commemoration, and never loses, since + no Class1 Marian falls on 14 August -- but a closed list's whole value is + its enumeration claim, and that claim was false as first written. The + other two were genuinely excluded after consideration: "dedication-of-the-basilica-of-st-mary-major" (5 August, Class3, Feast) -- a DEDICATION feast (of the building, "In Dedicatione S. Mariae ad Nives"), whose own oration could not be found in either scan under this exact heading to confirm it invokes her @@ -517,6 +526,11 @@ let marian_slugs = "most-holy-name-of-mary"; "nativity-of-the-blessed-virgin-mary"; "our-lady-of-lourdes"; + (* Added by the fix-round re-review: missed by the original enumeration, + behaviourally inert (it never loses; no Class1 Marian falls 14 Aug), + but it is de B. Maria Virg. and its collect implores her protection, + so it belongs on the list by the same test as every other member. *) + "vigil-of-the-assumption"; "our-lady-of-mt-carmel"; "our-lady-of-ransom"; "our-lady-of-the-rosary"; @@ -753,7 +767,26 @@ let disposition ~(winner : Vocab_ef.rank Precedence.candidate) let is_temporal = loser.Precedence.origin = Precedence.Temporal in if is_bvm_office winner && is_bvm_office loser then (* RG 112(d) -- see [marian_slugs]'s own citation above for the full - argument. Checked FIRST, even ahead of the [Commemoration_only] + argument. + + ON THIS BRANCH'S POSITION (fix-round re-review, finding 5): it sits + ahead of RG 33's vigil branch and RG 95's Class1 Transfer branch as + well as ahead of [Commemoration_only], and only the last of those + three is a position it NEEDS. RG 112(d) governs commemorations, not + translations, so if a Class1 Marian celebration ever lost to a Marian + winner it would be silently [Omit]ed here instead of reaching RG 95 + and transferring. That is unreachable on shipped data -- the + re-review swept the whole domain and found ZERO Marian-winner / + Marian-loser pairs other than the 16 July case this branch exists + for, which is [Commemoration_only] and so could never transfer + anyway -- and it is left in place rather than moved, because + reordering a disposition branch is a behavioural change that deserves + its own measurement and review rather than a late edit. Recorded here + and in the register so the next task that touches this chain knows + the constraint: if a Class1 Marian entry is ever added, this branch + must move BELOW the Transfer branch. + + Checked FIRST, then, ahead of the [Commemoration_only] branch immediately below, because the one live witness (Mt Carmel, 16 July) IS [Commemoration_only] -- that branch's own "always Commemorate, nothing overrides it" previously had no diff --git a/lib/rites/rite_ef/temporal_ef.ml b/lib/rites/rite_ef/temporal_ef.ml index cf0d22c..4add824 100644 --- a/lib/rites/rite_ef/temporal_ef.ml +++ b/lib/rites/rite_ef/temporal_ef.ml @@ -631,8 +631,12 @@ let weekday_word d = Date.weekday_to_string (Date.weekday d) citation -- its own text reads "in Officio et Missa DE FESTIS" (of FEASTS), and this Office is not itself a festum (RG 91's own table position, entry 27, sits outside the Festa rows 11-13/16/19/20/23/24 - entirely). The tighter chain, found on the same scan: RG 431(e) (Caput - XX, "De hymno Gloria in excelsis") is the Missal's OWN classification of + entirely). The tighter chain, found on the same scan: RG 431(e) ("VIII -- De diversis + Missae partibus", subsection "C) De hymno Gloria in excelsis" -- NOT + "Caput XX", which does not exist: the Rubricae Generales' Caput series + ends at XIX. Corrected by the fix-round re-review; the paragraph number, + letter and subsection title were right, only the containing division was + invented) is the Missal's OWN classification of this exact Mass, word for word: "431. Hymnus Gloria in excelsis dicitur: ... e) in Missis votivis IV classis de Angelis, quocumque die, et de B. Maria Virg. QUAE IN SABBATO CELEBRANTUR" -- the Gloria is said |
