(** RG 475-476 (docs/research/LT.txt, grep "dicitur symbolum") -- whether the Creed is said at Mass. The first rubric in this phase governing a PART OF MASS rather than occurrence/precedence, hence its own module: see the .ml's own header for the rubric quoted in full and every branch's citation. *) open Colitur_kernel (** RG 475(e)'s "festis nataliciis Apostolorum et Evangelistarum, necnon in festis Cathedrae S. Petri et S. Barnabae Ap." -- see the .ml's own citation for how each entry was derived from and verified against data/ef/sanctoral.sexp, and for what was deliberately excluded. Exposed so the test suite can assert completeness against the shipped data the same way {!Precedence_ef.vigil_feast_table} already lets it. *) val creed_apostle_slugs : string list (** Whether the Creed is said, post-Gospel/homily, at the Mass this day resolves to. [temporal] is read for exactly one fact -- RG 475(a)'s own "in qualibet dominica, ETSI EIUS OFFICIUM ALICUI FESTO LOCUM CEDAT" ("on any Sunday, EVEN WHEN a feast displaces its own Office"): a Sunday impeded by a Feast of the Lord (RG 16(a)) still says the Creed, so this reads the TEMPORAL cycle's own weekday, never [observed]'s. Every other clause reads [observed] -- the celebration whose Mass is actually said -- and [date], read once against the rite's own (Gregorian) Easter for the two Easter-relative window questions (RG 475(d)'s three octaves, RG 23's Ash-Wednesday-and-Holy-Week feriae). [creed] never reads {!Liturgical_day.t.commemorations}: RG 476(e), "ratione alicuius commemorationis in Missa occurrentis" [never say the Creed merely because of a commemoration], holds by construction rather than by a checked branch. RG 476(f) ("in Missis defunctorum") reads [observed]'s [colour]: see the .ml's own header for why [Colour.Black] is a sound proxy for "this Mass is a Requiem" on the shipped data, and what would have to be re-checked if that ever stops being true. *) val creed : temporal:(Vocab_ef.season, Vocab_ef.rank) Temporal.t -> observed:Vocab_ef.rank Celebration.t -> date:Date.t -> bool (** Whether the Te Deum was said at Matins (Breviary 1961 Codex Rubricarum nn. 237-238) -- NOT the Divine Office arriving in scope, but a single Breviary fact {!gloria}'s own RG 431(a) defers a Mass question to. See the .ml's own header for the rubric quoted in full, every branch's own citation, and this source's own stated weakness (a single, not yet scan-verified, web transcription -- docs/research/breviary/PROVENANCE.md). Same three parameters as {!creed}, for the same reasons: [temporal] for the day's own weekday/season, [observed] for the celebration whose Office is actually kept, [date] for the Easter-relative window questions. *) val te_deum : temporal:(Vocab_ef.season, Vocab_ef.rank) Temporal.t -> observed:Vocab_ef.rank Celebration.t -> date:Date.t -> bool (** Whether the Gloria in excelsis is said at this day's Mass (RG 431-432). 431(a)/432(a) defer to {!te_deum}; 431(c) (Holy Thursday, the Easter Vigil Mass) and 432(b)/(d) (violet vestments; a Requiem) are independent overrides, checked ahead of the Te Deum-derived answer -- see the .ml's own header for the full account, including which of 431/432's own clauses this engine has no votive-Mass-class dimension to implement and are therefore marked not-applicable rather than silently skipped. *) val gloria : temporal:(Vocab_ef.season, Vocab_ef.rank) Temporal.t -> observed:Vocab_ef.rank Celebration.t -> date:Date.t -> bool