Documentation

Linglib.Semantics.Focus.Control

Focus antecedents #

The anaphoric source of the squiggle's contrast set ([Roo92]): what the preceding discourse supplies — a question, a prior assertion to correct, explicitly offered alternatives, or a parallel focus ([Uhm91]'s focus-control taxonomy, adopted by [HZ07] §1.2). Use classifies the shapes; felicity (Antecedent.Admits) is fip on the antecedent's contrast set, uniformly across uses — and use_not_factorsThrough_contrastSet shows the four-way split is invisible to the semantics.

SquiggleSet/SquiggleInd state the full presuppositions of [Roo92]'s operator (his (40), set and individual cases): Admits is only the first set-case clause, and the contrast clauses are what make anaphorically demanding — not_squiggleSet_unfeatured derives "the argument must contain a focus" from the unit focus value of focus-free phrases. Antecedent.Resolves routes each antecedent shape through the appropriate case.

Implementation notes #

Payloads are flat Hamblin sets (PropFocusValue), keeping antecedents over finite models decide-friendly; the inquisitive layer plugs in via Antecedent.ofQuestion and Question.alt, with alt_which_singleton identifying the two Hamblin constructions. The assertion payload is a raw prior proposition; the Discourse.CommonGround.HasAssertion hookup (a correction/denial move) is deferred.

inductive Focus.Use :

The four pragmatic uses of one semantic focus ([Uhm91]): the image of Antecedent.use.

  • newInfo : Use
  • corrective : Use
  • selective : Use
  • contrastive : Use
Instances For
    @[instance_reducible]
    instance Focus.instDecidableEqUse :
    DecidableEq Use
    Equations
    @[instance_reducible]
    instance Focus.instReprUse :
    Repr Use
    Equations
    def Focus.instReprUse.repr :
    UseStd.Format
    Equations
    Instances For
      @[instance_reducible]
      instance Focus.instInhabitedUse :
      Inhabited Use
      Equations
      inductive Focus.Antecedent (W : Type u_2) :
      Type u_2

      A focus antecedent: the discourse object that supplies the squiggle's antecedent — a contrast set for [Roo92]'s set case, or a single contrasting ordinary value for the individual case.

      Instances For

        The contrast set Γ an antecedent supplies to the squiggle.

        Equations
        Instances For
          @[simp]
          theorem Focus.contrastSet_assertion {W : Type u_1} (p : Set W) (alts : Interpretation.PropFocusValue W) :
          @[simp]
          @[simp]
          theorem Focus.contrastSet_phrase {W : Type u_1} (γ : Set W) :
          @[simp]
          theorem Focus.use_phrase {W : Type u_1} (γ : Set W) :
          def Focus.Use.model {W : Type u_1} (o a : Set W) :

          The canonical antecedent of each use over a designated ordinary-value/alternative pair (o, a): a question, an assertion of the alternative to be corrected, an offer, or a parallel focus — the minimal contentful model of the four controlling contexts.

          Equations
          Instances For
            @[simp]
            theorem Focus.use_model {W : Type u_1} (o a : Set W) (u : Use) :
            (Use.model o a u).use = u
            theorem Focus.use_surjective {W : Type u_1} :
            Function.Surjective Antecedent.use

            Every pragmatic use is realised by some antecedent shape.

            Roothian felicity of a focus value against an antecedent: fip on the antecedent's contrast set.

            Equations
            Instances For

              The question case is the substrate's Q-A congruence.

              theorem Focus.Antecedent.Admits.mono {W : Type u_1} {c : Antecedent W} {fv fv' : Interpretation.PropFocusValue W} (hc : c.Admits fv) (h : fvfv') :
              c.Admits fv'

              Admits is monotone in the focus value.

              theorem Focus.admits_inter_iff {W : Type u_1} {c : Antecedent W} {fv fv' : Interpretation.PropFocusValue W} :
              c.Admits (fv fv') c.Admits fv c.Admits fv'

              An intersection of focus values is admitted iff both are.

              The squiggle presupposition #

              [Roo92]'s operator introduces the presuppositions of its (40), over an ordinary value o and focus value fv of any type: in the set case the resolved antecedent Γ is a subset of fv containing o and a distinct alternative; in the individual case the antecedent is a member of fv distinct from o. Admits is the first set-case clause; the contrast clauses are what make anaphorically demanding.

              def Focus.SquiggleSet {α : Type u_2} (o : α) (fv Γ : Set α) :

              The ~ presupposition, set case: Γ ⊆ fv, o ∈ Γ, and Γ contains an alternative distinct from o ([Roo92] (40)).

              Equations
              Instances For
                def Focus.SquiggleInd {α : Type u_2} (o : α) (fv : Set α) (γ : α) :

                The ~ presupposition, individual case: the antecedent is a member of fv distinct from o ([Roo92] (40)); the contrasting-phrases rule is this with γ := ⟦β⟧ᵒ.

                Equations
                Instances For
                  theorem Focus.SquiggleSet.subset {α : Type u_2} {o : α} {fv Γ : Set α} (h : SquiggleSet o fv Γ) :
                  Γfv

                  The first set-case clause alone: the antecedent is a subset of the focus value (at the propositional level, exactly fip).

                  theorem Focus.SquiggleSet.nontrivial {α : Type u_2} {o : α} {fv Γ : Set α} (h : SquiggleSet o fv Γ) :
                  Γ.Nontrivial

                  A resolved antecedent is nontrivial: it contains the ordinary value and a distinct alternative.

                  theorem Focus.not_squiggleSet_singleton {α : Type u_2} (o : α) (Γ : Set α) :
                  ¬SquiggleSet o {o} Γ

                  A unit focus value defeats the contrast clause: nothing resolves against {o}.

                  theorem Focus.not_squiggleInd_singleton {α : Type u_2} (o γ : α) :
                  ¬SquiggleInd o {o} γ

                  "The argument must contain a focus": a focus-free phrase has a unit focus value, so no antecedent resolves against it ([Roo92] §10).

                  Full Roothian resolution of an antecedent against a two-dimensional meaning (o, fv): the set case for question / offer / parallel antecedents, the individual case for contrasting phrases — and for assertion antecedents additionally the correction clause: the resolved ordinary value replaces (differs from) the prior assertion.

                  Equations
                  Instances For
                    theorem Focus.Antecedent.Resolves.admits {W : Type u_1} {c : Antecedent W} {o : Set W} {fv : Interpretation.PropFocusValue W} (h : c.Resolves o fv) :
                    c.Admits fv

                    Full resolution entails felicity: Admits is the set case's first clause, and a resolved contrasting phrase is a member of the focus value.

                    theorem Focus.admits_factorsThrough_contrastSet {W : Type u_1} (fv : Interpretation.PropFocusValue W) :
                    Function.FactorsThrough (fun (x : Antecedent W) => x.Admits fv) Antecedent.contrastSet

                    Felicity factors through the contrast set: the semantics sees Γ, never the use label.

                    Distinct uses can supply one and the same Γ (a question and an explicit offer, say), so the four-way split is invisible to the Roothian semantics — pragmatic, not semantic.

                    Hamblin antecedents #

                    The flat Hamblin set of complete answers over a domain.

                    Equations
                    Instances For

                      The wh-question antecedent over a whole domain.

                      Equations
                      Instances For
                        theorem Focus.whAntecedent_resolves {D : Type u_2} (d d' : D) (hne : d' d) :

                        A wh-antecedent over a domain with two distinct elements fully resolves against the Hamblin focus value of any complete answer.

                        Composed answers over a pair #

                        The minimal contentful scenario: a two-point answer domain {d, d'} with d the true answer. The answer is built by the composition engine — the singleton complete-answer predicate mapped over the F-marked argument — and every canonical antecedent shape fully resolves against it.

                        def Focus.pairAnswer {W : Type u_2} (d d' : W) :

                        The composed focused answer d over the pair {d, d'}.

                        Equations
                        Instances For
                          @[simp]
                          theorem Focus.pairAnswer_oValue {W : Type u_2} (d d' : W) :
                          (pairAnswer d d').oValue = {d}
                          @[simp]
                          theorem Focus.pairAnswer_aSet {W : Type u_2} (d d' : W) :
                          (pairAnswer d d').aSet = {{d}, {d'}}
                          theorem Focus.use_model_resolves {W : Type u_2} {d d' : W} (hne : d' d) (u : Use) :
                          (Use.model {d} {d'} u).Resolves (pairAnswer d d').oValue (pairAnswer d d').aSet

                          Uniform resolution across the four uses: every canonical antecedent shape fully resolves — all squiggle clauses, including the correction clause — against the composed answer over its pair. One semantics, four pragmatic uses.

                          Strong-theory only #

                          [Roo92]'s official semantics: only quantifies over the resolved contrast variable C; the focus constraint C ⊆ ⟦·⟧f is supplied separately by the squiggle, "leaving room for a pragmatic process of constructing a domain of quantification". The operator has no lexical access to focus values — direct-association implementations carry an alternative list lexically instead, and the two provably diverge under domain restriction (Studies/Rooth1992.lean).

                          def Focus.onlyVia {W : Type u_1} (C : Interpretation.PropFocusValue W) (prejacent : Set W) :
                          Set W

                          The strong-theory only assertion, transposed to the propositional level: every true member of the resolved contrast set is the prejacent. The prejacent presupposition is carried separately.

                          Equations
                          • Focus.onlyVia C prejacent = {w : W | qC, w qq = prejacent}
                          Instances For
                            @[simp]
                            theorem Focus.mem_onlyVia {W : Type u_1} {C : Interpretation.PropFocusValue W} {p : Set W} {w : W} :
                            w onlyVia C p qC, w qq = p
                            theorem Focus.not_mem_onlyVia {W : Type u_1} {C : Interpretation.PropFocusValue W} {p q : Set W} {w : W} (hq : q C) (hw : w q) (hne : q p) :
                            wonlyVia C p

                            A true alternative distinct from the prejacent refutes only.

                            theorem Focus.mem_onlyVia_of_forall_not_mem {W : Type u_1} {C : Interpretation.PropFocusValue W} {p : Set W} {w : W} (h : qC, q pwq) :
                            w onlyVia C p

                            Membership in only from refuting every distinct alternative.

                            def Focus.Irredundant {W : Type u_1} {ι : Type u_2} (f : ιSet W) :

                            An irredundant family of alternatives: each member can hold while every other member fails — equivalently, no member is covered by the union of the rest (each alternative has a private world). Strictly weaker than the mutual exclusivity of partition semantics (irredundant_of_pairwise_disjoint) and than Boolean independence of the family. [UPSTREAM] candidate as the non-coveredness companion of iSupIndep (¬ t i ≤ ⨆ j ≠ i, t j): mathlib has the disjointness form and, at the module instance, the characterization linearIndependent_iff_notMem_span, but no lattice-level name — and SupIrred (join-irreducibility of an element) is a false friend.

                            Equations
                            • Focus.Irredundant f = ∀ (i : ι), wf i, ∀ (j : ι), j iwf j
                            Instances For
                              theorem Focus.irredundant_of_pairwise_disjoint {W : Type u_1} {ι : Type u_2} {f : ιSet W} (hd : Pairwise fun (i j : ι) => Disjoint (f i) (f j)) (hne : ∀ (i : ι), (f i).Nonempty) :

                              Pairwise-disjoint nonempty alternatives — the mutual-exclusivity assumption of partition semantics — are irredundant.

                              theorem Focus.Irredundant.onlyVia_ne {W : Type u_1} {ι : Type u_2} {f : ιSet W} (hf : Irredundant f) {i₀ j : ι} {s₁ s₂ : Finset ι} (hj₂ : j s₂) (hj₁ : js₁) (hji : j i₀) :
                              onlyVia (f '' s₁) (f i₀) onlyVia (f '' s₂) (f i₀)

                              Over a separated family, resolving only to contrast sets that differ beyond the prejacent yields distinct readings: the alternative present in one resolution and absent from the other separates them.

                              theorem Focus.Irredundant.onlyVia_injOn {W : Type u_1} {ι : Type u_2} {f : ιSet W} (hf : Irredundant f) (i₀ : ι) :
                              Set.InjOn (fun (s : Finset ι) => onlyVia (f '' s) (f i₀)) {s : Finset ι | i₀ s}

                              Over a separated family, only is injective in the resolved contrast set, on resolutions containing the prejacent.

                              theorem Focus.onlyVia_antitone {W : Type u_1} {C C' : Interpretation.PropFocusValue W} (h : CC') (p : Set W) :
                              onlyVia C' ponlyVia C p

                              Narrowing the domain weakens only — the pragmatic domain restriction that repairs the over-generation of a fixed full-focus domain.

                              theorem Focus.onlyVia_excludes_of_squiggleSet {W : Type u_1} {o : Set W} {fv C : Interpretation.PropFocusValue W} (h : SquiggleSet o fv C) :
                              qC, q o wonlyVia C o, wq

                              Against a squiggle-resolved contrast set, only genuinely excludes: the contrast clause supplies a distinct alternative that the assertion rules out wherever it holds.

                              A Question supplies its maximal alternatives as a question antecedent — the bridge from the inquisitive layer.

                              Equations
                              Instances For
                                theorem Focus.alt_which_singleton (D : Type u_2) [Nonempty D] :
                                (Question.which Set.univ fun (d : D) => {d}).alt = hamblin D

                                The maximal alternatives of the inquisitive wh-question over the singleton predicates are exactly the flat Hamblin set.

                                theorem Focus.ofQuestion_which_eq_whAntecedent (D : Type u_2) [Nonempty D] :
                                Antecedent.ofQuestion (Question.which Set.univ fun (d : D) => {d}) = whAntecedent D

                                The inquisitive wh-question and the flat Hamblin antecedent coincide.