=== Pairs === In Avatar Logic, data consists mainly of ordered pairs. A pair can also be thought of as a directed edge between two nodes. For example: (a, b) pair with two concrete elements `a` and `b` an edge from `a` to `b` (a, q'(b)) pair with a 1-avatar `q'(b)` an edge from `a` to `q'(b)` (a, p(b)) pair with application `p(b)` an edge from `a` to `p(b)` This is different from normal logic, where predicates are used instead. The benefit of using pairs is that can think about the underlying data as a matrix with columns and rows for each term. The data of pairs also can also be thought of as a graph, with nodes and edges, where each edge is a pair. The left argument `A` of the pair `(A, B)` can be thought of as the input, while the right argument `B` can be thought of as the output. What pairs mean depends on the interpretation of what you are modeling.