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 used for binary-string examples: one unary relation S (the "1-bit" predicate). The name records the intended ordered setting, but the current first-order syntax does not yet expose the canonical order and successor helpers as formula atoms.

              Equations
              Instances For