aboutsummaryrefslogtreecommitdiff
path: root/lib/rites/rite_ef
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rites/rite_ef')
-rw-r--r--lib/rites/rite_ef/precedence_ef.ml108
-rw-r--r--lib/rites/rite_ef/precedence_ef.mli17
2 files changed, 118 insertions, 7 deletions
diff --git a/lib/rites/rite_ef/precedence_ef.ml b/lib/rites/rite_ef/precedence_ef.ml
index 750da8b..87cdeeb 100644
--- a/lib/rites/rite_ef/precedence_ef.ml
+++ b/lib/rites/rite_ef/precedence_ef.ml
@@ -48,6 +48,34 @@ let universal_layer = "ef-universal"
let indult_prefix = "indult:"
let unclassified = max_int
+(* Not an RG citation -- an ordering device for RG 91 entry 14's own text
+ (scan-verified, docs/research/rules-register.md §4): "14. Festa Domini II
+ classis, PRIMUM MOBILIA, DEINDE FIXA" -- feasts of the Lord, II class,
+ MOVABLE FIRST, then fixed. Both halves are the SAME numbered table row,
+ but the primary text states a real priority between them, not merely two
+ disjoint categories -- [band]'s own entry-14 branches below must not
+ literally TIE at the shared integer 14, because a tie would fall to
+ {!Precedence.resolve}'s own kernel-level fallback ([compare_by],
+ Slug.compare), which is deliberately NOT rubric-authoritative (the exact
+ anti-pattern RG 113's own fix already corrected once for commemoration
+ ordering, this file's own header) and would in fact pick the WRONG side
+ here: "commemoration-of-the-baptism-of-the-lord" sorts before
+ "ef-time-after-epiphany-sunday-1" alphabetically, backwards from "primum
+ mobilia". Negative, so it can never collide with any real table position
+ (1..28) or [unclassified] (positive [max_int]) by construction -- not a
+ citation to some entry "13.5" that does not exist in the primary text,
+ just an ordering fact this integer has to carry because RG 91's own two
+ half-rows must compare unequal here. The one real witness today: Holy
+ Family (RG 17(b), temporal_ef.ml's own [holy_family_sunday]) against the
+ fixed Commemoration of the Baptism of the Lord (13 January) -- the only
+ date they can ever coincide, since Holy Family only ever falls 7-13
+ January and no OTHER fixed Class2-Lord sanctoral entry shares that
+ window (register §6.0's own subject audit: Transfiguration 6 Aug,
+ Exaltation of the Cross 14 Sep, Dedication of the Archbasilica 9 Nov,
+ the Purification 2 Feb, the Baptism 13 Jan -- the Baptism alone falls in
+ Holy Family's own window). *)
+let entry_14_movable_band = -14
+
let is_indult layer = String.starts_with ~prefix:indult_prefix layer
let is_universal layer = String.equal layer universal_layer
@@ -223,13 +251,28 @@ let band (ctx : Vocab_ef.season Precedence.context) (c : Vocab_ef.rank Precedenc
not the universal layer (11), and marked as an indult overlay (12's
"not indult" test having just failed). *)
else if (not is_temporal) && (not is_vigil) && rank = Class1 then 13
- (* 14: Feasts of the Lord, II class -- RG 91 entry 14, deliberately
- UNQUALIFIED (contrast entry 16, which explicitly says "not
- of the Lord"; RG 37c (§4, "Sundays") speaks of "II-class feasts of
- the Lord" replacing an occurring II-class Sunday with no universal
- qualifier either). No layer test here, unlike 11/12/13 and 16/19/20:
- the register does not split this entry into universal/proper/indult,
- so a proper or indult feast of the Lord still bands 14, not 19/20. *)
+ (* 14, MOVABLE half -- RG 91 entry 14's own "primum mobilia, deinde
+ fixa" ({!entry_14_movable_band}'s own comment has the full citation
+ and reasoning). Checked before the FIXED half immediately below,
+ matching the primary text's own order, though [is_temporal] already
+ makes the two branches structurally disjoint on any one candidate
+ regardless of which is checked first -- the ordering here is for a
+ reader following RG 91's own prose, not for correctness. The only
+ witness this codebase currently constructs is Holy Family
+ (temporal_ef.ml's own [holy_family_sunday] branch, the one place
+ [subject] is ever [Lord] on a temporal-origin candidate); a
+ hypothetical movable Holy-Name-of-Jesus office (RG 17(a), still
+ unbuilt as its own named day, register §6) would reach this same
+ branch too, once built, since nothing here is keyed to Holy Family's
+ own slug. *)
+ else if is_temporal && rank = Class2 && subject = Subject.Lord then entry_14_movable_band
+ (* 14, FIXED half -- RG 91 entry 14, deliberately UNQUALIFIED (contrast
+ entry 16, which explicitly says "not of the Lord"; RG 37c (§4,
+ "Sundays") speaks of "II-class feasts of the Lord" replacing an
+ occurring II-class Sunday with no universal qualifier either). No
+ layer test here, unlike 11/12/13 and 16/19/20: the register does not
+ split this entry into universal/proper/indult, so a proper or
+ indult feast of the Lord still bands 14, not 19/20. *)
else if (not is_temporal) && (not is_vigil) && rank = Class2 && subject = Subject.Lord then 14
(* 15: Sundays, II class (every Sunday not already named at 6). *)
else if is_temporal && rank = Class2 && is_sunday then entry_15_band
@@ -732,6 +775,57 @@ let disposition ~(winner : Vocab_ef.rank Precedence.candidate)
the RG26 branch above gives its own [not is_vigil] guard, rather than
relying on that absence silently. *)
Precedence.Omit
+ else if winner.Precedence.cel.Celebration.subject = Subject.Lord && cel.Celebration.subject = Subject.Lord
+ then
+ (* RG 112(a) (docs/research/rules-register.md §4/§6.0, primary text,
+ verified against BOTH photographic scans -- missale-romanum-1962.pdf
+ and "Missale Romanum 1962_text.pdf" -- the electronic transcription,
+ 1962-06-23,_SS_Ioannes_XXIII,_Missale_Romanum,_LT.pdf, carries
+ NEITHER this paragraph's own worked example NOR its own more
+ specific Mass-proper rubric below, exactly the transcription's
+ documented defect, this project's own methodology note): "112. Ad
+ commemorationes et orationes quod attinet, haec insuper serventur:
+ a) Officium, Missa aut commemoratio de aliquo festo vel mysterio
+ UNIUS DIVINAE PERSONAE excludit commemorationem aut orationem de
+ alio festo vel mysterio EIUSDEM DIVINAE PERSONAE" -- the Office,
+ Mass, or commemoration of some feast or MYSTERY of ONE Divine Person
+ excludes a commemoration or oration of ANOTHER feast or mystery of
+ the SAME Divine Person.
+
+ {!Subject.t} has no finer split within [Lord] than "a mystery
+ touching the Divine Person of the Son" -- every real [subject =
+ Lord] entry this codebase's own data carries concerns Christ
+ specifically (register §6.0's subject audit: the Precious Blood, the
+ Transfiguration, the Exaltation of the Cross, the Dedication of the
+ Archbasilica, the Purification, the Baptism, and now Holy Family),
+ so reading "same Divine Person" as simply "both [Lord]" is safe at
+ today's data's own granularity -- a rite that ever needed to
+ distinguish, say, a Trinity-specific mystery from a Son-specific one
+ by Person would need a finer [Subject.t] first, not a special case
+ added here.
+
+ The one live witness -- confirmed DIRECTLY, not only by this general
+ paragraph: the Holy Family Mass propers' own note, immediately
+ following the Postcommunion, word for word on BOTH photographic
+ scans: "Si festum S. Familiae occurrerit die 13 ianuarii, Missa
+ dicitur de festo S. Familiae, SINE COMMEMORATIONE BAPTISMATIS
+ D.N.I.C., et sine commemoratione dominicae" -- if the feast of the
+ Holy Family occurs on 13 January, the Mass is said of the Holy
+ Family, WITHOUT commemoration of the Baptism of Our Lord Jesus
+ Christ, and without commemoration of the Sunday (RG 17(b)'s own
+ general rule, restated for this specific date). Independently
+ confirmed against missalemeum (register §6.0): title "The Holy
+ Family: Jesus, Mary & Joseph", commemorations [], the Baptism
+ listed only under "displaced", never commemorated.
+
+ Checked after RG 16(a) above (so a genuine RG 16(a) Sunday-
+ suppression is never re-explained under this citation instead) and
+ before the final ordinary-commemoration catch-all below, since
+ without it a [Feast]-status loser of this shape would otherwise
+ reach RG 95's ordinary "commemorated or omitted" branch and be
+ admitted as an ordinary Class2 commemoration under RG 111(b) --
+ confirmed wrong against both primary sources above. *)
+ Precedence.Omit
else
(* RG 95's other branch: "aut commemorantur aut penitus omittuntur" --
commemorated or wholly omitted. Reached by every SANCTORAL loser
diff --git a/lib/rites/rite_ef/precedence_ef.mli b/lib/rites/rite_ef/precedence_ef.mli
index b283a17..86a0ead 100644
--- a/lib/rites/rite_ef/precedence_ef.mli
+++ b/lib/rites/rite_ef/precedence_ef.mli
@@ -62,6 +62,15 @@ val ember_prefixes : string list
new rule, not a silently wrong one. *)
val unclassified : int
+(** RG 91 entry 14's own text (§4): "Festa Domini II classis, primum
+ mobilia, deinde fixa" -- feasts of the Lord, II class, MOVABLE first,
+ then fixed. {!band}'s value for the movable half (Holy Family, RG
+ 17(b)) -- strictly better than the fixed half's own literal [14],
+ negative so it can never collide with a real table position or
+ {!unclassified}. See precedence_ef.ml's own comment for the full
+ citation and why the two halves must not literally tie. *)
+val entry_14_movable_band : int
+
(** [band ctx c]: RG 91's Table of Precedence. Returns the table's own entry
number -- I class 1-13, II class 14-21, III class 22-26, IV class 27-28;
lower wins (see {!Precedence.rules.band}) -- EXCEPT where the table's own
@@ -134,6 +143,14 @@ val sunday_marker : string
weekday, never a saint's day, and RG 111(c)/(d) admit an "ordinary"
commemoration of a losing SAINT freely, with no such class-keyed
gate);
+ - a loser whose [subject] is [Lord] AND whose WINNER's [subject] is also
+ [Lord] is [Omit] (RG 112(a) -- a feast or mystery of one Divine Person
+ excludes a commemoration of another feast or mystery of the SAME
+ Divine Person; live witness: Holy Family, RG 17(b), excluding the
+ fixed Commemoration of the Baptism of the Lord on the years 13
+ January is itself Holy Family's own date -- see the .ml's own comment
+ for the primary text, including the Holy Family Mass propers' own
+ more specific 13-January rubric, on both photographic scans);
- everything else -- including an impeded I-class Sunday, and a
SANCTORAL loser of any rank below I class -- is [Commemorate],
carrying its real RG 109 privilege (see {!admit} below); RG 109(a)