Skip to content

Notation

This page is not normative

This page is not considered a core part of the Vultron Protocol as proposed in the main documentation. Although within the page we might provide guidance in terms of SHOULD, MUST, etc., the content here is not normative.

Defining the Vultron Protocol involves a lot of notation. This page provides a reference for the conventions and notation used throughout the documentation.

Documentation Conventions

We are using the Admonitions (call-outs) provided by Material for MkDocs to highlight specific types of information in this documentation.

Statements in boxes like this are normative requirements. Use of SHOULD, MUST, MAY, etc. follow the RFC 2119 conventions.

Formalisms

Formalisms are used to define the behavior of the Vultron Protocol.

\[A = A\]

Readers should generally be able to understand the protocol description in the text without understanding the formalisms, but the formalisms are included for completeness.

Info

Statements in boxes like this are informative notes. They provide additional information that may be helpful in understanding the normative requirements.

Tip

Statements in boxes like this are tips. They provide additional information that might point to other resources, or provide additional context that may be helpful in understanding the protocol.

Quote

This is a quote.

Example

This is an example. It is also an example example.

Question

What is a question? This is.

Success

We use this (as you'll see below) as an indicator that a page contains normative content.

Warning

This is a warning.

Material for MkDocs supports a number of other admonitions. We're generally trying to keep our usage consistent with the admonition names used in the Material for MkDocs documentation, but we'd also like to list the ones we use here for completeness and clarity. If you spot us using one that is not listed here, or being inconsistent with the above in our usage, please let us know by opening an issue.

Normative and Non-Normative Pages

Not everything we say about the Vultron Protocol is a normative requirement. We use the following conventions to indicate whether a page contains normative requirements or not.

Recognizing Normative Pages

This page is normative

This page is considered a core part of the Vultron Protocol. This is a normative section of the documentation.

Pages that contain normative requirements are marked with a banner at or near the top of the page:

Recognizing Non-Normative Pages

This page is not normative

This page is not considered a core part of the Vultron Protocol as proposed in the main documentation. Although within the page we might provide guidance in terms of SHOULD, MUST, etc., the content here is not normative.

Pages that do not contain normative requirements are marked with a banner at or near the top of the page (Like this one). This banner may be omitted if the page is clearly non-normative. We include it on pages where that may not be clear, for example on pages where we are describing a specific implementation in terms of SHOULD, MUST, MAY, etc. statements, but those statements are not intended to be normative requirements.

Mathematical Notation

In all of these definitions, we take the standard Zermelo-Fraenkel set theory. We adopt the following notation:

Set Theory Symbols

Symbol Meaning
\(\{ \dots \}\) depending on the context: (1) an ordered set in which the items occur in that sequence, or (2) a tuple of values
|\(x\)| the count of the number of elements in a list, set, tuple, or vector \(x\)
\(\subset,=,\subseteq\) the normal proper subset, equality, and subset relations between sets
\(\in\) the membership (is-in) relation between an element and the set it belongs to
\(\prec\) the precedes relation on members of an ordered set: \(\sigma_i \prec \sigma_j \textrm{ if and only if } \sigma_i,\sigma_j \in s \textrm{ and } i < j\) where \(s\) is an ordered set
|\(X\)| the size of (the number of elements in) a set \(X\)
\(\langle X_i \rangle^N_{i=1}\) a set of \(N\) sets \(X_i\), indexed by \(i\); used in the Formal Protocol in the context of Communicating Finite State Machines, taken from the article On Communicating Finite State Machines by Brand and Zafiropulo

Logic Symbols

Symbol Meaning
\(\implies\) implies
\(\iff\) if-and-only-if (bi-directional implication)
\(\wedge\) the logical AND operator
\(\lnot\) the logical NOT operator

Directional Messaging Symbols

Symbol Meaning
\(\rightharpoonup{}\) a message emitted (sent) by a process
\(\leftharpoondown{}\) a message received by a process

DFA Symbols

Symbol Meaning
\(\xrightarrow{}\) a transition between states, usually labeled with the transition type (e.g., \(\xrightarrow{a}\))
\((\mathcal{Q},q_0,\mathcal{F},\Sigma,\delta)\) specific symbols for individual DFA components that are introduced when needed in Chapters
\(\Big \langle { \langle S_i \rangle }^N_{i=1}, { \langle o_i \rangle }^N_{i=1}, { \langle M_{i,j} \rangle}^N_{i,j=1}, { succ } \Big \rangle\) formal protocol symbols that are introduced at the beginning of the Formal Protocol

Diagram Notation

We use a variety of diagramming techniques throughout the documentation.

State Diagrams

Our depictions of DFA as figures use common state diagram symbols as shown in the example below.

stateDiagram-v2
    direction LR
    [*] --> q0
    q0 --> q1 : a
    q0 --> q2 : b
    q1 --> q2 : a
    q1 --> q1 : b
    q2 --> q0 : a
    q2 --> q1 : b
    q2 --> [*]

Sequence and Class Diagrams

We follow UML conventions for sequence and class diagrams

---
title: Sequence Diagram Example
---
sequenceDiagram
    participant A as Alice
    participant B as Bob
    A ->> B: Authentication Request
    B->>A: Authentication Response
---
title: Class Diagram Example
---
classDiagram
    Class01 <|-- Class02
    Class03 *-- Class04
    Class05 o-- Class06
    Class07 .. Class08

Behavior Tree Diagrams

We introduce a few additional notation details specific to Behavior Trees when needed.