# `Tptp.Bnf.Vocabulary`
[🔗](https://github.com/jcschuster/tptp/blob/v0.1.3/lib/tptp/bnf/vocabulary.ex#L1)

The closed vocabularies of the TPTP `:==` semantic layer.

DO NOT EDIT. Generated by `mix tptp.gen` from
`priv/bnf/SyntaxBNF-v9.3.1.3` and
`priv/bnf/SZSOntology.bnf`.

The grammar accepts far more than these lists do: `<formula_role> ::=
<lower_word>` admits any lower word, and `<defined_functor> ::=
<atomic_defined_word>` admits any `$`-word. Membership here is what
separates a well-formed statement from a merely parseable one, and it is
checked by `Tptp.Lint` at warning severity rather than by the parser.

Every list here is a `:==` rule of the `SyntaxBNF`, with two exceptions.
`<reserved_word>` is this library's own: the BNF has no such rule, and the
list is every `$`-prefixed literal appearing in it. `<status_value>` is
referenced by the `SyntaxBNF` and defined by `SZSOntology.bnf`,
as `<inference_status_value>`.

# `defined_functor?`

```elixir
@spec defined_functor?(binary()) :: boolean()
```

Whether `word` is one of the 19 `<defined_functor>` values.

# `defined_functor_values`

```elixir
@spec defined_functor_values() :: [binary()]
```

The 19 values the BNF lists for `<defined_functor>`.

# `defined_predicate?`

```elixir
@spec defined_predicate?(binary()) :: boolean()
```

Whether `word` is one of the 7 `<defined_predicate>` values.

# `defined_predicate_values`

```elixir
@spec defined_predicate_values() :: [binary()]
```

The 7 values the BNF lists for `<defined_predicate>`.

# `defined_proposition?`

```elixir
@spec defined_proposition?(binary()) :: boolean()
```

Whether `word` is one of the 2 `<defined_proposition>` values.

# `defined_proposition_values`

```elixir
@spec defined_proposition_values() :: [binary()]
```

The 2 values the BNF lists for `<defined_proposition>`.

# `defined_type?`

```elixir
@spec defined_type?(binary()) :: boolean()
```

Whether `word` is one of the 8 `<defined_type>` values.

# `defined_type_values`

```elixir
@spec defined_type_values() :: [binary()]
```

The 8 values the BNF lists for `<defined_type>`.

# `formula_role?`

```elixir
@spec formula_role?(binary()) :: boolean()
```

Whether `word` is one of the 14 `<formula_role>` values.

# `formula_role_values`

```elixir
@spec formula_role_values() :: [binary()]
```

The 14 values the BNF lists for `<formula_role>`.

# `intro_type?`

```elixir
@spec intro_type?(binary()) :: boolean()
```

Whether `word` is one of the 4 `<intro_type>` values.

# `intro_type_values`

```elixir
@spec intro_type_values() :: [binary()]
```

The 4 values the BNF lists for `<intro_type>`.

# `ntf_connective_name?`

```elixir
@spec ntf_connective_name?(binary()) :: boolean()
```

Whether `word` is one of the 10 `<ntf_connective_name>` values.

# `ntf_connective_name_values`

```elixir
@spec ntf_connective_name_values() :: [binary()]
```

The 10 values the BNF lists for `<ntf_connective_name>`.

# `ntf_logic_name?`

```elixir
@spec ntf_logic_name?(binary()) :: boolean()
```

Whether `word` is one of the 6 `<ntf_logic_name>` values.

# `ntf_logic_name_values`

```elixir
@spec ntf_logic_name_values() :: [binary()]
```

The 6 values the BNF lists for `<ntf_logic_name>`.

# `ntf_modal_axiom?`

```elixir
@spec ntf_modal_axiom?(binary()) :: boolean()
```

Whether `word` is one of the 10 `<ntf_modal_axiom>` values.

# `ntf_modal_axiom_values`

```elixir
@spec ntf_modal_axiom_values() :: [binary()]
```

The 10 values the BNF lists for `<ntf_modal_axiom>`.

# `ntf_modal_system?`

```elixir
@spec ntf_modal_system?(binary()) :: boolean()
```

Whether `word` is one of the 16 `<ntf_modal_system>` values.

# `ntf_modal_system_values`

```elixir
@spec ntf_modal_system_values() :: [binary()]
```

The 16 values the BNF lists for `<ntf_modal_system>`.

# `reserved_word?`

```elixir
@spec reserved_word?(binary()) :: boolean()
```

Whether `word` is one of the 113 `$`-words the BNF mentions.

# `reserved_word_values`

```elixir
@spec reserved_word_values() :: [binary()]
```

The 113 `$`-words the BNF mentions anywhere.

Not a `:==` rule — the BNF has no `<reserved_word>` — but every `$`-prefixed
literal collected from every alternative of it. A superset of the words the
language defines, which is what `Tptp.Lint.Rules.DefinedWord` wants.

# `status_value?`

```elixir
@spec status_value?(binary()) :: boolean()
```

Whether `word` is one of the 47 `<status_value>` values.

# `status_value_values`

```elixir
@spec status_value_values() :: [binary()]
```

The 47 values `SZSOntology.bnf` lists for `<inference_status_value>`.

The `SyntaxBNF` references `<status_value>` from `<inference_status>` without
defining it; the SZS BNF states the list under its own name, and it is
emitted here under the name the reference uses. Each value is the
lower-cased mnemonic of a success-ontology value.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
