Documentation

Linglib.Data.UD.Basic

Universal Dependencies Types #

[dMMNZ21]

Universal part-of-speech tags (UPOS), morphological features, and dependency relations from UD v2.

These provide theory-neutral lexical categories, morphological annotations, and grammatical relations that can be used throughout the library and mapped to/from theory-specific categories (CCG.Cat, Minimalism features, DG trees, etc.).

Official site: https://universaldependencies.org/

Provenance #

UD is an external annotation standard ([dMMNZ21]); this file is the linglib mirror of its v2 surface, and Data/UD/ is the standard's area — treebank data (CoNLL-U) belongs here beside the vocabulary, paralleling Data/WALS/ (schema + datapoints). Its types are the foundational substrate every other layer builds on: Features/ aliases the feature types (e.g. Number.fromUD/Number.toUD, …) and Morphology/Word.lean builds the ms-word token over the vocabulary. The bare UD namespace (no Data. prefix) is intentional — UD is its own external project. Subsumption-order theory over MorphFeatures lives in Morphology/Unification.lean (mathlib-importing); this file stays mathlib-light.

inductive UD.UPOS :

Universal part-of-speech tags (UPOS).

17 coarse-grained categories designed for cross-linguistic consistency. Every word in every language can be assigned one of these tags.

Instances For
    @[implicit_reducible]
    instance UD.instDecidableEqUPOS :
    DecidableEq UPOS
    Equations
    def UD.instReprUPOS.repr :
    UPOSStd.Format
    Equations
    • UD.instReprUPOS.repr UD.UPOS.ADJ prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.ADJ")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.ADV prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.ADV")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.INTJ prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.INTJ")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.NOUN prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.NOUN")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.PROPN prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.PROPN")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.VERB prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.VERB")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.ADP prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.ADP")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.AUX prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.AUX")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.CCONJ prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.CCONJ")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.DET prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.DET")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.NUM prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.NUM")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.PART prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.PART")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.PRON prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.PRON")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.SCONJ prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.SCONJ")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.PUNCT prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.PUNCT")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.SYM prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.SYM")).group prec✝
    • UD.instReprUPOS.repr UD.UPOS.X prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.UPOS.X")).group prec✝
    Instances For
      @[implicit_reducible]
      instance UD.instReprUPOS :
      Repr UPOS
      Equations
      @[implicit_reducible]
      instance UD.instInhabitedUPOS :
      Inhabited UPOS
      Equations
      @[implicit_reducible]
      instance UD.instHashableUPOS :
      Hashable UPOS
      Equations
      def UD.UPOS.toString :
      UPOSString

      String representation matching UD conventions

      Equations
      Instances For
        @[implicit_reducible]
        instance UD.instToStringUPOS :
        ToString UPOS
        Equations

        Is this an open class (content) word?

        Equations
        Instances For
          def UD.UPOS.isNominal :
          UPOSBool

          Is this a nominal (entity-denoting) category?

          Equations
          Instances For

            Is this a predicate (event-denoting) category?

            Equations
            Instances For
              def UD.UPOS.isModifier :
              UPOSBool

              Is this a modifier category?

              Equations
              Instances For
                inductive UD.Number :

                Grammatical number

                Instances For
                  @[implicit_reducible]
                  instance UD.instDecidableEqNumber :
                  DecidableEq Number
                  Equations
                  @[implicit_reducible]
                  instance UD.instReprNumber :
                  Repr Number
                  Equations
                  def UD.instReprNumber.repr :
                  NumberStd.Format
                  Equations
                  Instances For
                    @[implicit_reducible]
                    instance UD.instInhabitedNumber :
                    Inhabited Number
                    Equations
                    inductive UD.Gender :

                    Grammatical gender

                    Instances For
                      @[implicit_reducible]
                      instance UD.instDecidableEqGender :
                      DecidableEq Gender
                      Equations
                      def UD.instReprGender.repr :
                      GenderStd.Format
                      Equations
                      Instances For
                        @[implicit_reducible]
                        instance UD.instReprGender :
                        Repr Gender
                        Equations
                        @[implicit_reducible]
                        instance UD.instInhabitedGender :
                        Inhabited Gender
                        Equations
                        inductive UD.Case :

                        Grammatical case (UD Case feature, https://universaldependencies.org/u/feat/Case.html).

                        Battle-tested annotation tagset shared across all UD treebanks. The 28 constructors below cover the standard UD values. This is the realization vocabulary; the canonical analytical inventory is the root-namespace Case (Features/Case/Basic.lean), reachable by Case.toUD/Case.fromUD.

                        Instances For
                          @[implicit_reducible]
                          instance UD.instDecidableEqCase :
                          DecidableEq Case
                          Equations
                          def UD.instReprCase.repr :
                          CaseStd.Format
                          Equations
                          • UD.instReprCase.repr UD.Case.Nom prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Nom")).group prec✝
                          • UD.instReprCase.repr UD.Case.Acc prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Acc")).group prec✝
                          • UD.instReprCase.repr UD.Case.Gen prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Gen")).group prec✝
                          • UD.instReprCase.repr UD.Case.Dat prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Dat")).group prec✝
                          • UD.instReprCase.repr UD.Case.Ins prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Ins")).group prec✝
                          • UD.instReprCase.repr UD.Case.Loc prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Loc")).group prec✝
                          • UD.instReprCase.repr UD.Case.Voc prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Voc")).group prec✝
                          • UD.instReprCase.repr UD.Case.Abl prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Abl")).group prec✝
                          • UD.instReprCase.repr UD.Case.Erg prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Erg")).group prec✝
                          • UD.instReprCase.repr UD.Case.Abs prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Abs")).group prec✝
                          • UD.instReprCase.repr UD.Case.Par prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Par")).group prec✝
                          • UD.instReprCase.repr UD.Case.Ess prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Ess")).group prec✝
                          • UD.instReprCase.repr UD.Case.Tra prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Tra")).group prec✝
                          • UD.instReprCase.repr UD.Case.Com prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Com")).group prec✝
                          • UD.instReprCase.repr UD.Case.Ade prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Ade")).group prec✝
                          • UD.instReprCase.repr UD.Case.Ine prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Ine")).group prec✝
                          • UD.instReprCase.repr UD.Case.Ill prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Ill")).group prec✝
                          • UD.instReprCase.repr UD.Case.Ela prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Ela")).group prec✝
                          • UD.instReprCase.repr UD.Case.All prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.All")).group prec✝
                          • UD.instReprCase.repr UD.Case.Sub prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Sub")).group prec✝
                          • UD.instReprCase.repr UD.Case.Sup prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Sup")).group prec✝
                          • UD.instReprCase.repr UD.Case.Del prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Del")).group prec✝
                          • UD.instReprCase.repr UD.Case.Ter prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Ter")).group prec✝
                          • UD.instReprCase.repr UD.Case.Tem prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Tem")).group prec✝
                          • UD.instReprCase.repr UD.Case.Cau prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Cau")).group prec✝
                          • UD.instReprCase.repr UD.Case.Ben prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Ben")).group prec✝
                          • UD.instReprCase.repr UD.Case.Per prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Per")).group prec✝
                          • UD.instReprCase.repr UD.Case.Abe prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Case.Abe")).group prec✝
                          Instances For
                            @[implicit_reducible]
                            instance UD.instReprCase :
                            Repr Case
                            Equations
                            @[implicit_reducible]
                            instance UD.instInhabitedCase :
                            Inhabited Case
                            Equations
                            @[implicit_reducible]
                            instance UD.instFintypeCase :
                            Fintype Case
                            Equations
                            inductive UD.Definite :

                            Definiteness

                            Instances For
                              @[implicit_reducible]
                              instance UD.instDecidableEqDefinite :
                              DecidableEq Definite
                              Equations
                              @[implicit_reducible]
                              Equations
                              def UD.instReprDefinite.repr :
                              DefiniteStd.Format
                              Equations
                              Instances For
                                @[implicit_reducible]
                                Equations
                                inductive UD.Degree :

                                Degree of comparison (for adjectives/adverbs)

                                Instances For
                                  @[implicit_reducible]
                                  instance UD.instDecidableEqDegree :
                                  DecidableEq Degree
                                  Equations
                                  def UD.instReprDegree.repr :
                                  DegreeStd.Format
                                  Equations
                                  Instances For
                                    @[implicit_reducible]
                                    instance UD.instReprDegree :
                                    Repr Degree
                                    Equations
                                    @[implicit_reducible]
                                    instance UD.instInhabitedDegree :
                                    Inhabited Degree
                                    Equations
                                    inductive UD.PronType :

                                    Pronoun type

                                    Instances For
                                      @[implicit_reducible]
                                      instance UD.instDecidableEqPronType :
                                      DecidableEq PronType
                                      Equations
                                      @[implicit_reducible]
                                      Equations
                                      def UD.instReprPronType.repr :
                                      PronTypeStd.Format
                                      Equations
                                      Instances For
                                        @[implicit_reducible]
                                        Equations
                                        inductive UD.Person :

                                        Grammatical person

                                        Instances For
                                          @[implicit_reducible]
                                          instance UD.instDecidableEqPerson :
                                          DecidableEq Person
                                          Equations
                                          @[implicit_reducible]
                                          instance UD.instReprPerson :
                                          Repr Person
                                          Equations
                                          def UD.instReprPerson.repr :
                                          PersonStd.Format
                                          Equations
                                          Instances For
                                            @[implicit_reducible]
                                            instance UD.instInhabitedPerson :
                                            Inhabited Person
                                            Equations
                                            inductive UD.VerbForm :

                                            Verb form

                                            Instances For
                                              @[implicit_reducible]
                                              instance UD.instDecidableEqVerbForm :
                                              DecidableEq VerbForm
                                              Equations
                                              def UD.instReprVerbForm.repr :
                                              VerbFormStd.Format
                                              Equations
                                              Instances For
                                                @[implicit_reducible]
                                                Equations
                                                @[implicit_reducible]
                                                Equations
                                                inductive UD.Tense :

                                                Grammatical tense

                                                Instances For
                                                  @[implicit_reducible]
                                                  instance UD.instDecidableEqTense :
                                                  DecidableEq Tense
                                                  Equations
                                                  def UD.instReprTense.repr :
                                                  TenseStd.Format
                                                  Equations
                                                  Instances For
                                                    @[implicit_reducible]
                                                    instance UD.instReprTense :
                                                    Repr Tense
                                                    Equations
                                                    @[implicit_reducible]
                                                    instance UD.instInhabitedTense :
                                                    Inhabited Tense
                                                    Equations
                                                    inductive UD.Aspect :

                                                    Grammatical aspect

                                                    Instances For
                                                      @[implicit_reducible]
                                                      instance UD.instDecidableEqAspect :
                                                      DecidableEq Aspect
                                                      Equations
                                                      @[implicit_reducible]
                                                      instance UD.instReprAspect :
                                                      Repr Aspect
                                                      Equations
                                                      def UD.instReprAspect.repr :
                                                      AspectStd.Format
                                                      Equations
                                                      Instances For
                                                        @[implicit_reducible]
                                                        instance UD.instInhabitedAspect :
                                                        Inhabited Aspect
                                                        Equations
                                                        inductive UD.Mood :

                                                        Grammatical mood

                                                        Instances For
                                                          @[implicit_reducible]
                                                          instance UD.instDecidableEqMood :
                                                          DecidableEq Mood
                                                          Equations
                                                          @[implicit_reducible]
                                                          instance UD.instReprMood :
                                                          Repr Mood
                                                          Equations
                                                          def UD.instReprMood.repr :
                                                          MoodStd.Format
                                                          Equations
                                                          • UD.instReprMood.repr UD.Mood.Ind prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Mood.Ind")).group prec✝
                                                          • UD.instReprMood.repr UD.Mood.Sub prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Mood.Sub")).group prec✝
                                                          • UD.instReprMood.repr UD.Mood.Imp prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Mood.Imp")).group prec✝
                                                          • UD.instReprMood.repr UD.Mood.Cnd prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Mood.Cnd")).group prec✝
                                                          • UD.instReprMood.repr UD.Mood.Opt prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Mood.Opt")).group prec✝
                                                          • UD.instReprMood.repr UD.Mood.Jus prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Mood.Jus")).group prec✝
                                                          • UD.instReprMood.repr UD.Mood.Pot prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Mood.Pot")).group prec✝
                                                          • UD.instReprMood.repr UD.Mood.Qot prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Mood.Qot")).group prec✝
                                                          • UD.instReprMood.repr UD.Mood.Adm prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Mood.Adm")).group prec✝
                                                          • UD.instReprMood.repr UD.Mood.Nec prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Mood.Nec")).group prec✝
                                                          • UD.instReprMood.repr UD.Mood.Irr prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ 1024 then 1 else 2) (Std.Format.text "UD.Mood.Irr")).group prec✝
                                                          Instances For
                                                            @[implicit_reducible]
                                                            instance UD.instInhabitedMood :
                                                            Inhabited Mood
                                                            Equations
                                                            inductive UD.Voice :

                                                            Grammatical voice

                                                            Instances For
                                                              @[implicit_reducible]
                                                              instance UD.instDecidableEqVoice :
                                                              DecidableEq Voice
                                                              Equations
                                                              def UD.instReprVoice.repr :
                                                              VoiceStd.Format
                                                              Equations
                                                              Instances For
                                                                @[implicit_reducible]
                                                                instance UD.instReprVoice :
                                                                Repr Voice
                                                                Equations
                                                                @[implicit_reducible]
                                                                instance UD.instInhabitedVoice :
                                                                Inhabited Voice
                                                                Equations
                                                                inductive UD.Polarity :

                                                                Polarity

                                                                Instances For
                                                                  @[implicit_reducible]
                                                                  instance UD.instDecidableEqPolarity :
                                                                  DecidableEq Polarity
                                                                  Equations
                                                                  @[implicit_reducible]
                                                                  Equations
                                                                  def UD.instReprPolarity.repr :
                                                                  PolarityStd.Format
                                                                  Equations
                                                                  Instances For
                                                                    @[implicit_reducible]
                                                                    Equations

                                                                    A morphological feature bundle (partial assignment). Uses Option to represent unspecified features.

                                                                    • number : Option Number
                                                                    • gender : Option Gender
                                                                    • case_ : Option Case
                                                                    • definite : Option Definite
                                                                    • degree : Option Degree
                                                                    • pronType : Option PronType
                                                                    • reflex : Bool

                                                                      Reflexive (UD Reflex=Yes); false = feature absent. Distinguishes a reflexive anaphor from a plain personal pronoun; not an agreement feature, so not consulted by compatible.

                                                                    • person : Option Person
                                                                    • verbForm : Option VerbForm
                                                                    • tense : Option Tense
                                                                    • aspect : Option Aspect
                                                                    • mood : Option Mood
                                                                    • voice : Option Voice
                                                                    • polarity : Option Polarity
                                                                    Instances For
                                                                      def UD.instDecidableEqMorphFeatures.decEq (x✝ x✝¹ : MorphFeatures) :
                                                                      Decidable (x✝ = x✝¹)
                                                                      Equations
                                                                      • One or more equations did not get rendered due to their size.
                                                                      Instances For
                                                                        def UD.instReprMorphFeatures.repr :
                                                                        MorphFeaturesStd.Format
                                                                        Equations
                                                                        • One or more equations did not get rendered due to their size.
                                                                        Instances For
                                                                          @[implicit_reducible]
                                                                          Equations

                                                                          Empty feature bundle

                                                                          Equations
                                                                          Instances For

                                                                            Is this bundle wh-marked — an interrogative or relative pro-form? Derived from pronType (UD has no standalone wh feature; wh-ness is PronType ∈ {Int, Rel}).

                                                                            Equations
                                                                            Instances For

                                                                              Are two feature bundles compatible — bounded above in the subsumption order ([Shi86] §3.2.3)? Total over all option-valued fields: a conflict in any committed feature makes unification fail. (reflex needs no clause — a Bool slot with false = absent is always joinable by ||.) The order-theoretic characterization is proved in Morphology/Unification.lean.

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

                                                                                Feature compatibility is reflexive: every bundle is compatible with itself (each feature matches itself).

                                                                                Feature compatibility is symmetric.

                                                                                Per-slot projections of compatible #

                                                                                φ-compatibility is a conjunction over all slots; these project it onto a single slot's clause. They confine the coupling to compatible's clause layout to this one site, beside the definition, so the per-feature faithfulness theorems (HasX.compatible_hasX in Features/{Person,Number,Gender,Case}/Capabilities.lean) consume a named edge rather than each re-unfolding the definition. Only the four φ-slots that carry a HasX mixin are projected.

                                                                                theorem UD.MorphFeatures.compatible_number {f1 f2 : MorphFeatures} (h : f1.compatible f2 = true) :
                                                                                (f1.number.isNone || f2.number.isNone || f1.number == f2.number) = true

                                                                                Project φ-compatibility onto its number clause.

                                                                                theorem UD.MorphFeatures.compatible_gender {f1 f2 : MorphFeatures} (h : f1.compatible f2 = true) :
                                                                                (f1.gender.isNone || f2.gender.isNone || f1.gender == f2.gender) = true

                                                                                Project φ-compatibility onto its gender clause.

                                                                                theorem UD.MorphFeatures.compatible_case {f1 f2 : MorphFeatures} (h : f1.compatible f2 = true) :
                                                                                (f1.case_.isNone || f2.case_.isNone || f1.case_ == f2.case_) = true

                                                                                Project φ-compatibility onto its case clause.

                                                                                theorem UD.MorphFeatures.compatible_person {f1 f2 : MorphFeatures} (h : f1.compatible f2 = true) :
                                                                                (f1.person.isNone || f2.person.isNone || f1.person == f2.person) = true

                                                                                Project φ-compatibility onto its person clause.

                                                                                The information-join of two bundles, field-by-field: keep every committed value (left-biased per field, which on compatible inputs is symmetric since doubly committed fields agree). Only meaningful under compatible; unify adds the guard.

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

                                                                                  Unify two feature bundles ([Shi86] §3.2.3): the least upper bound in the subsumption order when the bundles are compatible (Morphology/Unification.lean proves the lub laws), failure (none) on conflicting information.

                                                                                  Equations
                                                                                  Instances For
                                                                                    inductive UD.DepRel :

                                                                                    Universal dependency relations.

                                                                                    Organized by function following the UD documentation. These encode grammatical relations between a head and its dependent.

                                                                                    Reference: https://universaldependencies.org/u/dep/

                                                                                    Instances For
                                                                                      @[implicit_reducible]
                                                                                      instance UD.instDecidableEqDepRel :
                                                                                      DecidableEq DepRel
                                                                                      Equations
                                                                                      @[implicit_reducible]
                                                                                      instance UD.instReprDepRel :
                                                                                      Repr DepRel
                                                                                      Equations
                                                                                      def UD.instReprDepRel.repr :
                                                                                      DepRelStd.Format
                                                                                      Equations
                                                                                      Instances For
                                                                                        @[implicit_reducible]
                                                                                        instance UD.instInhabitedDepRel :
                                                                                        Inhabited DepRel
                                                                                        Equations
                                                                                        @[implicit_reducible]
                                                                                        instance UD.instToStringDepRel :
                                                                                        ToString DepRel
                                                                                        Equations

                                                                                        Is this a valency-bearing dependency? Extends isCoreArg with .obl (oblique nominals), which valency frameworks (e.g. [OL23] on dependency-grammar valent typology) treat as a valency role even though UD classifies it as non-core.

                                                                                        Equations
                                                                                        Instances For

                                                                                          Is this a subject relation?

                                                                                          Equations
                                                                                          Instances For

                                                                                            Is this an object relation?

                                                                                            Equations
                                                                                            Instances For
                                                                                              structure UD.DepArc :

                                                                                              A single dependency arc in a UD tree

                                                                                              • dependent :

                                                                                                Index of the dependent word (1-indexed)

                                                                                              • head :

                                                                                                Index of the head word (0 = root)

                                                                                              • deprel : DepRel

                                                                                                The dependency relation

                                                                                              Instances For
                                                                                                def UD.instDecidableEqDepArc.decEq (x✝ x✝¹ : DepArc) :
                                                                                                Decidable (x✝ = x✝¹)
                                                                                                Equations
                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                Instances For
                                                                                                  def UD.instReprDepArc.repr :
                                                                                                  DepArcStd.Format
                                                                                                  Equations
                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                  Instances For
                                                                                                    @[implicit_reducible]
                                                                                                    instance UD.instReprDepArc :
                                                                                                    Repr DepArc
                                                                                                    Equations