Documentation

Linglib.Syntax.Category.Verb.Tense

Tense and tense forms #

This file defines the grammatical tenses and the tense forms of a verb. A tense is past, present or future (Tense); the cell of times it denotes is the matter of Semantics/Tense/Defs.lean. A tense form of a verb, in the sense of the traditional grammars, is a member of the verb's tense paradigm, such as the simple past or the present perfect. It is described here by its make-up, the tense inflection of its finite verb and the nonfinite forms stacked under that verb. A synthetic form has a finite lexical verb and nothing else. A periphrastic form is built from another form by putting its verb, in a nonfinite form, under an auxiliary that takes over the tense inflection, so that the perfect of the simple present builds is the present perfect has built, and the perfect of that is the double perfect has had built of the South German dialects. Two languages whose forms have the same make-up share the form, and which tense and which aspect it expresses in each is a matter of analysis left to studies.

Main declarations #

inductive Tense :

A grammatical tense is past, present or future.

Instances For
    @[instance_reducible]
    instance instDecidableEqTense :
    DecidableEq Tense
    Equations
    @[instance_reducible]
    instance instReprTense :
    Repr Tense
    Equations
    def instReprTense.repr :
    Tense → ℕ → Std.Format
    Equations
    • instReprTense.repr Tense.past prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Tense.past")).group prec✝
    • instReprTense.repr Tense.present prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Tense.present")).group prec✝
    • instReprTense.repr Tense.future prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Tense.future")).group prec✝
    Instances For
      @[instance_reducible]
      instance instInhabitedTense :
      Inhabited Tense
      Equations
      @[instance_reducible]
      instance instFintypeTense :
      Fintype Tense
      Equations

      A nonfinite verb form in a periphrastic tense form.

      • infinitive : Nonfinite

        The infinitive, as German bauen under werden.

      • presentParticiple : Nonfinite

        The present participle, as English building under be.

      • pastParticiple : Nonfinite

        The past participle, as English built under have and German gebaut under haben.

      Instances For
        @[instance_reducible]
        Equations
        def Tense.Form.instReprNonfinite.repr :
        Nonfinite → ℕ → Std.Format
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          structure Tense.Form :

          A tense form of a verb consists of the tense inflection of its finite verb and the nonfinite forms under the finite verb, outermost first, so that the lexical verb is the last of them, or the finite verb itself when there are none.

          • finite : Tense

            The tense inflection of the finite verb.

          • nonfinite : List Nonfinite

            The nonfinite forms under the finite verb, outermost first.

          Instances For
            theorem Tense.Form.ext_iff {x y : Form} :
            x = y ↔ x.finite = y.finite ∧ x.nonfinite = y.nonfinite
            theorem Tense.Form.ext {x y : Form} (finite : x.finite = y.finite) (nonfinite : x.nonfinite = y.nonfinite) :
            x = y
            def Tense.instDecidableEqForm.decEq (x✝ x✝¹ : Form) :
            Decidable (x✝ = x✝¹)
            Equations
            • Tense.instDecidableEqForm.decEq { finite := a, nonfinite := a_1 } { finite := b, nonfinite := b_1 } = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
            Instances For
              def Tense.instReprForm.repr :
              Form → ℕ → Std.Format
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[instance_reducible]
                instance Tense.instReprForm :
                Repr Form
                Equations

                The periphrastic form built on f puts the verb of f in the nonfinite form n under an auxiliary with the tense inflection of f.

                Equations
                Instances For

                  The perfect of a form puts its verb in the past participle under an auxiliary.

                  Equations
                  Instances For

                    The progressive of a form puts its verb in the present participle under an auxiliary.

                    Equations
                    Instances For
                      @[simp]
                      theorem Tense.Form.under_finite (n : Nonfinite) (f : Form) :
                      (under n f).finite = f.finite
                      @[simp]
                      theorem Tense.Form.under_injective (n : Nonfinite) :
                      Function.Injective (under n)
                      @[simp]
                      theorem Tense.Form.perfect_inj {f g : Form} :
                      f.perfect = g.perfect ↔ f = g

                      The simple present is the synthetic present, as builds.

                      Equations
                      Instances For

                        The simple past is the synthetic past, as built.

                        Equations
                        Instances For

                          The present progressive is the progressive of the simple present, as is building.

                          Equations
                          Instances For

                            The past progressive is the progressive of the simple past, as was building.

                            Equations
                            Instances For

                              The present perfect is the perfect of the simple present, as has built.

                              Equations
                              Instances For

                                The past perfect is the perfect of the simple past, as had built.

                                Equations
                                Instances For

                                  The double perfect is the perfect of the present perfect.

                                  Equations
                                  Instances For

                                    The future is the simple present of an auxiliary over the infinitive, as will build.

                                    Equations
                                    Instances For

                                      The future perfect is the future of the perfect, as will have built.

                                      Equations
                                      Instances For

                                        A form is a perfect when it is the perfect of some form.

                                        Equations
                                        Instances For
                                          @[instance_reducible]
                                          Equations
                                          structure Tense.Periphrasis (V : Type u_1) :
                                          Type u_1

                                          A periphrasis is the means by which a language builds tense forms over its verbs V. It gives the finite form of a verb in each tense, its nonfinite forms, and the auxiliary under which a verb stands when it is in a given nonfinite form. Each is partial, since a language may lack an inflection, as German lacks a future inflection, or a construction, as German lacks a progressive.

                                          • finite : V → Tense → Option String

                                            The finite form of a verb in a tense.

                                          • nonfinite : V → Form.Nonfinite → Option String

                                            A nonfinite form of a verb.

                                          • auxiliary : V → Form.Nonfinite → Option V

                                            The auxiliary that governs a verb in a nonfinite form.

                                          Instances For
                                            def Tense.Periphrasis.chain {V : Type u_1} (L : Periphrasis V) (v : V) :
                                            List Form.Nonfinite → Option (List String × V)

                                            L.chain v ns gives the nonfinite verbs of a tense form of v with nonfinite chain ns, innermost first, and the verb left to be inflected. Each nonfinite form is taken by the verb below it, and the auxiliary that governs it is the next verb up.

                                            Equations
                                            • L.chain v [] = some ([], v)
                                            • L.chain v (n :: ns) = match L.chain v ns with | none => none | some (ws, u) => match L.nonfinite u n, L.auxiliary u n with | some w, some a => some (ws ++ [w], a) | x, x_1 => none
                                            Instances For
                                              def Tense.Periphrasis.realize {V : Type u_1} (L : Periphrasis V) (v : V) (f : Form) :
                                              Option (String × List String)

                                              L.realize v f gives the finite verb of the tense form f of v and its nonfinite verbs, innermost first.

                                              Equations
                                              Instances For
                                                theorem Tense.Periphrasis.length_of_chain {V : Type u_1} (L : Periphrasis V) (v : V) (ns : List Form.Nonfinite) {ws : List String} {u : V} :
                                                L.chain v ns = some (ws, u) → ws.length = ns.length
                                                theorem Tense.Periphrasis.length_of_mem_realize {V : Type u_1} (L : Periphrasis V) {v : V} {f : Form} {x : String × List String} (h : x ∈ L.realize v f) :
                                                x.2.length = f.nonfinite.length

                                                A realized tense form has one nonfinite verb for each nonfinite form in its make-up.