Documentation

Linglib.Phenomena.Modality.Studies.AghaJeretic2022

Weak Necessity Modals as Homogeneous Pluralities of Worlds #

@cite{agha-jeretic-2022}

Proceedings of SALT 32: 831–851.

Core Proposal #

Weak necessity modals like should are not quantificational. They denote definite pluralities of worlds, paralleling the relationship between plural definite nominals (the) and universal quantifiers (all/every):

This gives weak necessity modals homogeneity as an intrinsic feature: they yield a truth-value gap (neither true nor false) when some but not all worlds in the domain satisfy the prejacent — exactly paralleling the behavior of plural definite DPs under negation.

Key Claims Formalized #

  1. Homogeneity (§3.1): Weak necessity modals take obligatory apparent wide scope over negation, unlike strong necessity modals which allow narrow scope.

  2. Trivalent semantics (§4.2): should_D := ⊕D — evaluation is trivalent with symmetric negation (homogeneity gap preserved under ¬).

  3. Homogeneity removal (§3.2): The adverb necessarily removes homogeneity from should, just as all removes it for plural definites.

  4. QUD-sensitive exception tolerance (§3.3): Weak necessity modals tolerate exceptions when irrelevant to the QUD.

  5. X operator (§5.1): Derives should from must compositionally via minimal witness sets. X only applies to universals (unique witness), explaining Javanese NE's restriction to necessity modals.

  6. Critique of domain restriction (§6.1): The vFI 2008 analysis (Directive.weakNecessity) is bivalent — it cannot produce the truth-value gap that the empirical data require.

Independent Support #

@cite{tieu-kriz-chemla-2019} find that children acquire homogeneity independently of scalar implicatures (HOM/−SI group), supporting the claim that homogeneity is intrinsic to plural predication rather than derived via exhaustification (@cite{magri-2014}).

Connection to @cite{agha-jeretic-2026} #

The 2026 handbook chapter surveys this analysis as one of three competing accounts of weak necessity (alongside domain restriction and comparative semantics), and extends it to explain the neg-raising asymmetry between should and must.

Trivalent evaluation #

should gets trivalent semantics via plural predication over worlds, while must remains bivalent (standard ∀ quantification).

We model the modal domain as a List World and use Core.Duality.Truth3 for the three-valued output.

def AghaJeretic2022.mustEval {World : Type} (domain : List World) (p : WorldBool) :

Strong necessity: standard ∀ quantification over the modal domain. Bivalent — always true or false, never indeterminate. must_D := λp. ∀w ∈ D. p(w)

Equations
Instances For
    def AghaJeretic2022.shouldEval {World : Type} (domain : List World) (p : WorldBool) :

    Weak necessity: trivalent plural predication over the modal domain. Returns tt if all worlds satisfy p, ff if none do, unk otherwise. should_D := ⊕D — the prejacent is predicated of the plurality of worlds, yielding homogeneity.

    Body uses an explicit 4-way if-chain to support split-based proofs in this file. The bridge theorem shouldEval_eq_distList (below) formalizes the equivalence with Core.Duality.distList for nonempty domains. Refactoring the body to call distList directly requires rewriting ~3 dense proof scripts; tracked as future work.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      must is always bivalent #

      theorem AghaJeretic2022.must_bivalent {World : Type} (domain : List World) (p : WorldBool) :

      must never returns the indeterminate value.

      should is homogeneous: it can return ★ #

      In a mixed domain, should returns ★ (indeterminate).

      In a uniform-true domain, should returns tt.

      In a uniform-false domain, should returns ff.

      must returns ff in the mixed case (no gap).

      theorem AghaJeretic2022.should_must_agree_positive {World : Type} (domain : List World) (p : WorldBool) (h : domain.all p = true) (hne : domain.isEmpty = false) :
      shouldEval domain p = mustEval domain p

      When positive, should and must agree.

      Negation symmetry #

      The paper's central formal claim: shouldEval produces symmetric truth conditions under negation. Affirming p of the plurality and denying ¬p are non-complementary — both can be indeterminate simultaneously. This is the formal content of homogeneity.

      Contrast: must has NO gap — it's always bivalent.

      theorem AghaJeretic2022.shouldEval_tt_neg_ff {World : Type} (domain : List World) (p : WorldBool) (h : shouldEval domain p = Core.Duality.Truth3.true) :
      (shouldEval domain fun (w : World) => !p w) = Core.Duality.Truth3.false

      If shouldEval D p = tt, then shouldEval D (¬p) = ff. No overlap between positive and negative extensions of the plurality.

      theorem AghaJeretic2022.shouldEval_ff_neg_tt {World : Type} (domain : List World) (p : WorldBool) (h : shouldEval domain p = Core.Duality.Truth3.false) (hne : domain.isEmpty = false) :
      (shouldEval domain fun (w : World) => !p w) = Core.Duality.Truth3.true

      If shouldEval D p = ff (non-empty D), then shouldEval D (¬p) = tt. Symmetric: universal denial of p means universal affirmation of ¬p.

      theorem AghaJeretic2022.shouldEval_unk_symmetric {World : Type} (domain : List World) (p : WorldBool) (h : shouldEval domain p = Core.Duality.Truth3.indet) :
      (shouldEval domain fun (w : World) => !p w) = Core.Duality.Truth3.indet

      If shouldEval D p = unk, then shouldEval D (¬p) = unk. The gap is symmetric under negation — the core homogeneity property.

      The paper demonstrates that weak necessity modals pattern exactly like plural definites with respect to negation. We encode the key data points using the HomogeneityDatum type from Plurals.Homogeneity.

      Should displays homogeneity: under negation, "shouldn't go" is incompatible with an existential followup "but you can" — just like "The guests aren't here" is incompatible with "but some of them are."

      Paper examples (8)–(9).

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        Have to does NOT display homogeneity: "don't have to go" is compatible with "but you are allowed to go" — narrow scope reading (¬□ = ◇¬) available, unlike should which only allows wide scope (□¬).

        Paper example (9b).

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          Homogeneity removal by "necessarily" #

          Inserting necessarily into a weak necessity modal sentence removes the homogeneity gap, just as all removes it from plural definites.

          Paper examples (14)–(15):

          This parallels:

          Necessarily removes homogeneity from should, paralleling how all removes homogeneity from plural definites.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def AghaJeretic2022.shouldWithRemoval {World : Type} (domain : List World) (p : WorldBool) :

            shouldEval with homogeneity removal (= explicit quantifier insertion) reduces to mustEval — the gap disappears.

            Equations
            Instances For

              QUD-sensitive exception tolerance #

              Plural predication tolerates exceptions when they are irrelevant to the QUD. The paper shows the same pattern for weak necessity modals.

              Paper example (17): Context: One can get a perfect grade by doing most exercises correctly; doing all gives extra credit. QUD1: What is a way to get a perfect grade? QUD2: What are the minimal requirements?

              (a) "You should do every exercise." → QUD1: ✓; QUD2: # (b) "You have to do every exercise." → QUD1: #; QUD2: #

              • modal : String
              • sentence : String
              • context : String
              • qud1 : String
              • qud2 : String
              • acceptableUnderQUD1 : Bool
              • acceptableUnderQUD2 : Bool
              Instances For
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For

                      Well-responses in borderline cases #

                      In borderline cases (★), outright denial is infelicitous; well-responses are preferred. This parallels plural definites (@cite{kriz-2016}).

                      Paper example (19).

                      • sentence : String
                      • context : String
                      • noResponseFelicitous : Bool
                      • wellResponseFelicitous : Bool
                      Instances For
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For

                              Compositional derivation via the X operator #

                              X picks out the unique smallest set that makes a quantifier true and returns the mereological sum of its elements:

                              X := λM. ⊕ ιW[W ∈ WIT(M)]

                              Applied to must_D: the unique minimal witness set of ∀ over D is D itself (no proper subset suffices). So X(must_D) = ⊕D = should_D.

                              Applied to can_D: each singleton {w} for w ∈ D is a minimal witness of ∃. Multiple minimal witnesses → ι is undefined → X is undefined. This explains why Javanese NE (= X) only combines with necessity modals.

                              def AghaJeretic2022.isWitness {World : Type} (q : List WorldBool) (w : List World) :
                              Bool

                              A witness set for a quantifier Q is a set W such that Q(W) holds.

                              Equations
                              Instances For
                                def AghaJeretic2022.isMinimalWitness {World : Type} [BEq World] (q : List WorldBool) (w : List World) :
                                Bool

                                A minimal witness: a witness with no proper sub-witness. Removing any element makes it no longer a witness.

                                Equations
                                Instances For
                                  def AghaJeretic2022.universalQ {World : Type} [BEq World] (domain : List World) :
                                  List WorldBool

                                  Universal quantifier as GQ: W witnesses ∀ over D iff D ⊆ W. This is the Barwise & Cooper (1981) witness set notion — the quantifier EVERY(D) = {P | D ⊆ P}, so W ∈ EVERY(D) iff D ⊆ W.

                                  Equations
                                  Instances For
                                    def AghaJeretic2022.existentialQ {World : Type} [BEq World] (domain : List World) :
                                    List WorldBool

                                    Existential quantifier as GQ: W witnesses ∃ over D iff D ∩ W ≠ ∅. SOME(D) = {P | D ∩ P ≠ ∅}, so W ∈ SOME(D) iff some element of D is in W.

                                    Equations
                                    Instances For
                                      theorem AghaJeretic2022.universal_unique_minimal_witness :
                                      isMinimalWitness (universalQ [0, 1]) [0, 1] = true isMinimalWitness (universalQ [0, 1]) [0] = false isMinimalWitness (universalQ [0, 1]) [1] = false

                                      The full domain is the UNIQUE minimal witness for ∀. Since EVERY(D) = {P | D ⊆ P}, the only W ⊆ D with D ⊆ W is W = D. Removing any element breaks the subset condition. This is why X (requiring a unique minimal witness) applies to universals.

                                      Each singleton is a minimal witness for ∃, and the full domain is NOT minimal (proper subsets suffice). This is why X is undefined for ∃ — multiple minimal witnesses means ι (the uniqueness presupposition) fails. This explains Javanese NE's restriction to necessity modals.

                                      def AghaJeretic2022.applyX {World : Type} (domain : List World) (p : WorldBool) :

                                      X applied to must yields the domain itself (= should's denotation). The resulting plurality is then subject to plural predication semantics.

                                      Equations
                                      Instances For
                                        theorem AghaJeretic2022.x_must_eq_should {World : Type} (domain : List World) (p : WorldBool) :
                                        applyX domain p = shouldEval domain p

                                        X(must) = should.

                                        Morphological composition of weak necessity #

                                        Cross-linguistically, weak necessity is expressed in two ways:

                                        1. Primitive lexical items (English should, ought): non-decomposable.
                                        2. Morphological derivation from strong necessity: a. French: devoir+CF → weak necessity. CF picks a witness set without requiring uniqueness, so it applies to both ∀ (devrais) and ∃ (pourrais). b. Javanese: mesthi+NE → weak necessity. NE = X (requires unique minimal witness), so it only applies to ∀ (mesthi-ne), not ∃ (iso-ne is ungrammatical).
                                        @[implicit_reducible]
                                        Equations
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          Instances For
                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For
                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For
                                                          theorem AghaJeretic2022.three_strategies :
                                                          (List.map (fun (x : WeakNecessityMorphDatum) => x.strategy) weakNecessityMorphData).eraseDups.length = 3
                                                          theorem AghaJeretic2022.javanese_necessity_only :
                                                          javanese_mesthi.appliesTo = "necessity only (*iso-ne is ungrammatical)"

                                                          Javanese NE only applies to necessity; French CF applies to both. This follows from X requiring unique minimal witnesses (∀ only) vs CF accepting any witness (∀ and ∃).

                                                          theorem AghaJeretic2022.french_both_forces :
                                                          french_devrais.appliesTo = "necessity + possibility (devrais/pourrais)"

                                                          Why domain restriction doesn't capture homogeneity #

                                                          The @cite{von-fintel-iatridou-2008} analysis (formalized in Directive.lean) treats should as ∀ over a refined set of best worlds. Directive.weakNecessity returns Bool — it is bivalent by construction. A bivalent semantics cannot produce the truth-value gap that the empirical data require.

                                                          We make this critique computational by contrasting Directive.weakNecessity (always tt or ff) with shouldEval (can return unk).

                                                          @[reducible, inline]

                                                          Local 4-world type for the bivalence demonstration.

                                                          Equations
                                                          Instances For

                                                            Directive.weakNecessity is bivalent: as a Prop, it is classically true or false — never indeterminate. This contrasts with shouldEval, which can return Truth3.indet.

                                                            theorem AghaJeretic2022.shouldEval_can_gap :
                                                            ∃ (D : List Bool) (p : BoolBool), shouldEval D p = Core.Duality.Truth3.indet

                                                            shouldEval CAN return unk — the gap that domain restriction misses.

                                                            The mismatch: domain restriction predicts existential followups are felicitous after negated should, but empirically they are not.

                                                            • sentence : String
                                                            • existentialFollowup : String
                                                            • domainRestrictionPredicts : Bool
                                                            • empiricallyObserved : Bool
                                                            Instances For
                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For

                                                                  English modal lexicon verification #

                                                                  Verify that the English fragment classifies should/ought as weak necessity and must as strong necessity, matching the paper's §2.1.

                                                                  should is classified as weak necessity in the English fragment.

                                                                  Scopelessness persists under higher negation #

                                                                  The apparent wide scope of should persists when negation is in a higher clause, paralleling plural definites:

                                                                  This is analyzed as scopelessness: the "wide scope" effect is a consequence of homogeneity, not syntactic movement.

                                                                  • modal : String
                                                                  • sentence : String
                                                                  • existentialFollowup : String
                                                                  • followupFelicitous : Bool
                                                                  Instances For
                                                                    Equations
                                                                    • One or more equations did not get rendered due to their size.
                                                                    Instances For
                                                                      Equations
                                                                      • One or more equations did not get rendered due to their size.
                                                                      Instances For
                                                                        Equations
                                                                        • One or more equations did not get rendered due to their size.
                                                                        Instances For

                                                                          Weak necessity and its friends #

                                                                          The paper argues (§6.4) that the homogeneity pattern observed with weak necessity modals is part of a general phenomenon shared with bare conditionals, generics, and habituals — all analyzable as involving plural predication over different semantic domains.

                                                                          Plurals.Homogeneity.conditionalExample already captures the conditional case: "They play soccer if the sun shines" displays the same gap as "The switches are on" and "You should go."

                                                                          Examples (38)–(42): future conditionals, bare past conditionals, generics, and habituals all show homogeneity effects and homogeneity removal by explicit quantifiers (necessarily, always, all).

                                                                          The existing conditionalExample from Homogeneity.lean shows the same gap pattern as shouldHomogeneity — both have ★ in the gap scenario. This structural parallel supports the unified plural predication analysis.

                                                                          The Determiner–Modal Parallel #

                                                                          Nominal domainModal domain
                                                                          the N (plural def.)should (weak necessity)
                                                                          all/every N (∀)must/have to (strong)
                                                                          homogeneoushomogeneous
                                                                          scopelessscopeless
                                                                          exception-tolerantexception-tolerant
                                                                          all removes gapnecessarily removes gap
                                                                          ★ → "well" response★ → "well" response

                                                                          The proposal: weak necessity is to strong necessity what the is to all.

                                                                          • property : String
                                                                          • pluralDefiniteExample : String
                                                                          • weakNecessityExample : String
                                                                          • sharedBehavior : Bool
                                                                          Instances For
                                                                            Equations
                                                                            • One or more equations did not get rendered due to their size.
                                                                            Instances For
                                                                              Equations
                                                                              • One or more equations did not get rendered due to their size.
                                                                              Instances For

                                                                                Local vs Global Aggregation #

                                                                                The should/must contrast is an instance of the local/global aggregation distinction in Core.Duality. When modal sentences are embedded under quantifiers ("Every student should/must pass"):

                                                                                theorem AghaJeretic2022.shouldEval_indet {World : Type} (domain : List World) (p : WorldBool) (hne : domain.isEmpty = false) (h_not_all : domain.all p = false) (h_not_none : (domain.all fun (w : World) => !p w) = false) :

                                                                                shouldEval for a mixed nonempty domain produces .indet.

                                                                                should erases strength under embedding: when n individuals each have mixed modal domains, all produce .indet. Any quantifier aggregating these gaps returns .indet — strength is invisible.

                                                                                must produces the strength effect under embedding: when n individuals each have their modal domain evaluated by mustEval (producing ofBool), mixed Bool results distinguish strong from weak quantifiers.

                                                                                must is always determinate under embedding: aggregation over ofBool values never produces a gap, regardless of duality type.

                                                                                The Core Identity: should = DIST over worlds #

                                                                                The paper's central formal claim is that weak necessity IS plural predication. We prove this by showing shouldEval equals dist (the distributive operator for plural predication from Core.Duality) applied to the evaluation of each world in the domain.

                                                                                dist results returns:

                                                                                This is exactly what shouldEval computes, with results = domain.map p.

                                                                                theorem AghaJeretic2022.shouldEval_eq_distList {World : Type} (domain : List World) (p : WorldBool) (hne : domain []) :
                                                                                shouldEval domain p = Core.Duality.distList domain fun (w : World) => p w = true

                                                                                shouldEval = DIST over worlds.

                                                                                shouldEval D p = distList D p for nonempty D — the canonical Core.Duality.distList (Fine super-truth specialized to a List domain with a Boolean predicate) IS what weak necessity computes.

                                                                                This is the formal proof that weak necessity IS plural predication: the trivalent truth value of "should p" is determined by the DIST operator applied to the pointwise evaluation of p across the modal domain — exactly as "the Xs are P" is determined by DIST applied to the pointwise evaluation of P across the individuals.

                                                                                The the/all : should/must parallel is not merely an analogy; it is a mathematical identity at the level of truth-value computation.

                                                                                Hypothesis hne is required because shouldEval [] p = .false (Agha & Jeretič's empty-domain convention) while distList [] p = .true (vacuous super-truth, mathlib's empty-fold convention).

                                                                                theorem AghaJeretic2022.mustEval_eq_ofBool {World : Type} (domain : List World) (p : WorldBool) :
                                                                                mustEval domain p = Core.Duality.Truth3.ofBool (domain.all p)

                                                                                mustEval is ofBool ∘ List.all, confirming must stays bivalent.

                                                                                Sufficient Truth (@cite{kriz-2016}, A&J Appendix 1) #

                                                                                Formalizes the mechanism by which indeterminate (★) sentences are rescued to "true enough" relative to an Question (= QUD). A sentence S is sufficiently true at w w.r.t. issue I iff:

                                                                                1. S is not false at w: ⟦S⟧(w) ≠ 0
                                                                                2. There exists an I-equivalent world u where S is true: ⟦S⟧(u) = 1

                                                                                Condition 2 means the exceptions are in the same Question cell as a satisfying world — they are "irrelevant" to the QUD.

                                                                                Addressing an Question (def 46): S cannot address issue I if any cell of I contains both worlds where S is true and worlds where S is false. In other words, S must not split any Question cell.

                                                                                def AghaJeretic2022.sufficientTruth {W : Type} (S : WCore.Duality.Truth3) (sameCell : WWBool) (w : W) (worlds : List W) :
                                                                                Bool

                                                                                Sufficient Truth (Križ 2016, A&J def 44). S is true enough at w w.r.t. issue I iff (i) S is not false at w, and (ii) some I-equivalent world makes S true.

                                                                                Equations
                                                                                Instances For
                                                                                  theorem AghaJeretic2022.sufficient_truth_rescues_gap :
                                                                                  sufficientTruth (fun (w : Fin 3) => if (w == 0) = true then Core.Duality.Truth3.true else if (w == 1) = true then Core.Duality.Truth3.indet else Core.Duality.Truth3.false) (fun (w u : Fin 3) => w != 2 && u != 2) 1 [0, 1, 2] = true

                                                                                  Sufficient truth rescues an indeterminate sentence when the exceptions are QUD-irrelevant. Example: "You should do every exercise" is ★ when doing most but not all suffices. Under QUD1 ("how to get a perfect grade?"), the exception-worlds (where you skip one exercise but still pass) are equivalent to the satisfying-worlds → rescued to "true enough." Under QUD2 ("what are the minimal requirements?"), they are in different cells → NOT rescued.

                                                                                  theorem AghaJeretic2022.strict_qud_blocks_rescue :
                                                                                  sufficientTruth (fun (w : Fin 3) => if (w == 0) = true then Core.Duality.Truth3.true else if (w == 1) = true then Core.Duality.Truth3.indet else Core.Duality.Truth3.false) (fun (w u : Fin 3) => w == u) 1 [0, 1, 2] = false

                                                                                  The CF operator for French-type languages #

                                                                                  The X operator (§5.1) requires a UNIQUE minimal witness set (via ι). This explains Javanese NE: ∀ has one minimal witness (the full domain), ∃ has many (each singleton), so NE only applies to necessity.

                                                                                  French counterfactual morphology is less restrictive: CF picks SOME witness set (not necessarily unique), so it applies to both necessity and possibility modals: devrais (necessity+CF) and pourrais (possibility+CF).

                                                                                  The difference: X = λM. ⊕ ιW[W ∈ WIT(M)] (unique, partial) CF = λM. ⊕ W for some W ∈ WIT(M) (existential, total)

                                                                                  def AghaJeretic2022.hasCFWitness {World : Type} [BEq World] (q : List WorldBool) (candidates : List (List World)) :
                                                                                  Bool

                                                                                  CF operator: checks whether SOME minimal witness set exists. Unlike X (which requires uniqueness), CF is defined whenever at least one minimal witness exists — which is always, for any non-empty quantifier domain.

                                                                                  Equations
                                                                                  Instances For
                                                                                    theorem AghaJeretic2022.cf_defined_for_universal :
                                                                                    hasCFWitness (universalQ [0, 1]) [[0], [1], [0, 1]] = true

                                                                                    CF is defined for both ∀ and ∃ (both have minimal witnesses).

                                                                                    def AghaJeretic2022.hasUniqueWitness {World : Type} [BEq World] (q : List WorldBool) (candidates : List (List World)) :
                                                                                    Bool

                                                                                    X (unique minimal witness) is defined for ∀ but not ∃. Here "unique" means exactly one candidate is a minimal witness.

                                                                                    Equations
                                                                                    Instances For
                                                                                      theorem AghaJeretic2022.typological_prediction :
                                                                                      hasUniqueWitness (universalQ [0, 1]) [[0], [1], [0, 1]] = true hasUniqueWitness (existentialQ [0, 1]) [[0], [1], [0, 1]] = false hasCFWitness (universalQ [0, 1]) [[0], [1], [0, 1]] = true hasCFWitness (existentialQ [0, 1]) [[0], [1], [0, 1]] = true

                                                                                      The typological prediction: X (Javanese NE) restricts to necessity; CF (French counterfactual) applies to both.

                                                                                      Cross-linguistic fragment verification #

                                                                                      Bridge theorems connecting the morphological data (§9) to the actual fragment entries, verifying that the linguistic analysis is reflected in the formal lexical entries.

                                                                                      iso (possibility) has NO -ne form: *iso-ne is ungrammatical. Verified by checking that no weak-possibility expression exists.

                                                                                      Devrais preserves devoir's flavor polysemy: both are epistemic/deontic/circumstantial.