Documentation

Complexitylib.DescriptiveComplexity.Vocabulary

Vocabularies (Signatures) #

Following Immerman's "Descriptive Complexity", a vocabulary (also called a signature) is a tuple of relation symbols with arities, plus constant symbols. We represent this finitely: numRels relation symbols with arities given by relArity, and numConsts constant symbols.

A vocabulary (signature) consisting of finitely many relation symbols with specified arities and finitely many constant symbols.

  • numRels : Nat

    Number of relation symbols

  • relArity : Fin self.numRelsNat

    Arity of each relation symbol

  • numConsts : Nat

    Number of constant symbols

Instances For

    A vocabulary is relational if it has no constant symbols.

    Equations
    Instances For
      @[reducible, inline]

      The empty vocabulary with no relation or constant symbols.

      Equations
      Instances For
        @[reducible, inline]

        Construct a vocabulary with a single relation of given arity and no constants.

        Equations
        Instances For
          @[reducible, inline]

          The vocabulary of directed graphs: one binary relation E.

          Equations
          Instances For
            @[reducible, inline]

            The vocabulary of directed graphs with distinguished source and target: one binary relation E and two constants s, t.

            Equations
            Instances For
              @[reducible, inline]

              The vocabulary for binary strings with built-in ordering (Proviso 1.14): one unary relation S (the "1-bit" predicate). The linear order ≤ and successor are built-in numeric predicates, not part of the vocabulary.

              Equations
              Instances For