diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-25 19:47:52 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-25 19:47:52 +0200 |
| commit | ebbf88dae0110e9cb00935861fae1857107260cc (patch) | |
| tree | 42066cd9009f0ae486322e474389ff26c1edcbed /lib/rites | |
| parent | fc88c6de225592d8700fe1eb40d870ec8863b57d (diff) | |
| download | colitur-ebbf88dae0110e9cb00935861fae1857107260cc.tar.gz colitur-ebbf88dae0110e9cb00935861fae1857107260cc.zip | |
feat(of): disposition per Normae n. 60
An impeded solemnity transfers; every other loser is omitted for that year
('Reliquae celebrationes eo anno omittuntur').
Commemorate is never returned, and that is the rule rather than a gap: the OF
has no commemoration of a losing celebration in the EF's sense, and an
optional memorial is an election rather than a commemoration. A property over
every rank pairing asserts it, so a later edit cannot quietly introduce one.
Diffstat (limited to 'lib/rites')
| -rw-r--r-- | lib/rites/rite_of/precedence_of.ml | 32 | ||||
| -rw-r--r-- | lib/rites/rite_of/precedence_of.mli | 18 |
2 files changed, 50 insertions, 0 deletions
diff --git a/lib/rites/rite_of/precedence_of.ml b/lib/rites/rite_of/precedence_of.ml index cb15d68..5ceaa11 100644 --- a/lib/rites/rite_of/precedence_of.ml +++ b/lib/rites/rite_of/precedence_of.ml @@ -168,3 +168,35 @@ let band (ctx : Vocab_of.season Precedence.context) arithmetic. *) 130 else unclassified + +(* Normae n. 60: "Attamen sollemnitas, quae impeditur a die liturgico, qui + praecedentia gaudeat, ad proximiorem diem transferatur... Reliquae + celebrationes eo anno omittuntur." An impeded SOLEMNITY is transferred; + every other losing celebration is simply omitted for that year. + + [Commemorate] IS NEVER RETURNED, AND THAT IS THE RULE, NOT A GAP. The OF + has no commemoration of a losing celebration in the EF's sense at all -- + contrast RG 108-111, which the EF module implements at length. An optional + memorial (Tabula III.12) is an ELECTION the celebrant may make, not a + commemoration attached to another day's office, and must not be modelled as + one: doing so would put a celebration in Liturgical_day.commemorations that + no rubric ever puts there. Design 2026-08-24 ยง3 ("What will not survive + contact") predicted exactly this; this function is where the prediction is + kept. + + [Repose] is likewise never returned. It is EF vocabulary that the EF module + itself emits from nothing. + + [winner] is deliberately unread. n. 60 keys the loser's fate on the LOSER's + own grade alone -- unlike the EF's RG 92-95, where the winner's class + decides whether a commemoration survives. Kept in the signature because + Precedence.rules.disposition requires it, and a future proper-calendar rule + might read it. *) +let disposition ~(winner : Vocab_of.rank Precedence.candidate) + ~(loser : Vocab_of.rank Precedence.candidate) : Precedence.disposition = + ignore winner; + match loser.cel.rank with + | Vocab_of.Sollemnitas -> Precedence.Transfer + | Vocab_of.Festum | Vocab_of.Memoria_obligatoria | Vocab_of.Memoria_ad_libitum + | Vocab_of.Feria -> + Precedence.Omit diff --git a/lib/rites/rite_of/precedence_of.mli b/lib/rites/rite_of/precedence_of.mli index dfee504..be4713d 100644 --- a/lib/rites/rite_of/precedence_of.mli +++ b/lib/rites/rite_of/precedence_of.mli @@ -38,3 +38,21 @@ val proper_prefix : string same reason: a future sub-rank fits between neighbours without rescaling the table. *) val band : Vocab_of.season Precedence.context -> Vocab_of.rank Precedence.candidate -> int + +(** [disposition ~winner ~loser]: Normae n. 60. An impeded SOLEMNITY is + {!Colitur_kernel.Precedence.Transfer}red; every other losing celebration is + {!Colitur_kernel.Precedence.Omit}ted -- "Reliquae celebrationes eo anno + omittuntur". + + NEVER RETURNS [Commemorate], AND THAT IS THE RULE RATHER THAN A GAP: the OF + has no commemoration of a losing celebration in the EF's sense. An optional + memorial is an election, not a commemoration. Consequently + {!Colitur_kernel.Liturgical_day.t.commemorations} is permanently empty for + this rite, and {!Colitur_kernel.Precedence.privilege} is meaningless here. + + [winner] is unread: n. 60 keys the outcome on the loser's own grade alone, + unlike the EF's RG 92-95. *) +val disposition : + winner:Vocab_of.rank Precedence.candidate -> + loser:Vocab_of.rank Precedence.candidate -> + Precedence.disposition |
