Tuesday, July 16, 2019

Ternary closure operations

Given a ternary relation, the set of functional dependencies upon the slots of the relation form a closure operation that takes some set of slots and that produces the remaining slots that can be determined functionally from the values provided. The fixed points of this closure operation produce a Moore family, which is a set of sets that is intersection closed and that contains a greatest member. For ternary relations, this is an order three Moore family as the union of the sets of the moore family has cardinality three. There are 61 Moore families on three elements, and they are listed below. The dimension of the Moore families corresponds to the functional dimension of the classes of relations. In this way, we can produce a full ontology of all the classes of ternary relations determined by functional dependencies.

Dimension 0


trivial
{{0 1 2}}

Dimension 1


reversible & reversible
{{} {0 1 2}}

constant & reversible
{{0 1 2} {2}}
{{0 1 2} {1}}
{{0 1 2} {0}}

constant & constant
{{0 1 2} {1 2}}
{{0 1} {0 1 2}}
{{0 1 2} {0 2}}

constant & function
{{0 1 2} {2} {1 2}}
{{0 1} {0 1 2} {0}}
{{0 1 2} {2} {0 2}}
{{0 1 2} {0 2} {0}}
{{0 1 2} {1} {1 2}}
{{0 1} {0 1 2} {1}}

reversible binary operation which is partially invariant
{{} {0 1 2} {1}}
{{} {0 1 2} {2}}
{{} {0 1 2} {0}}

product to a reversible pair
{{} {0 1 2} {1 2}}
{{} {0 1 2} {0 2}}
{{0 1} {} {0 1 2}}

product to a functional pair
{{} {0 1 2} {2} {1 2}}
{{} {0 1 2} {0 2} {0}}
{{} {0 1 2} {2} {0 2}}
{{} {0 1 2} {1} {1 2}}
{{0 1} {} {0 1 2} {1}}
{{0 1} {} {0 1 2} {0}}

reversible binary operation
{{} {0 1 2} {1} {0}}
{{} {0 1 2} {2} {0}}
{{} {0 1 2} {2} {1}}

any product function
{{} {0 1 2} {2} {0 2} {0}}
{{0 1} {} {0 1 2} {1} {0}}
{{} {0 1 2} {2} {1} {1 2}}

Dimension 2


constant binary operation (disconnected)
{{0 1} {0 1 2} {1} {1 2}}
{{0 1 2} {2} {1 2} {0 2}}
{{0 1} {0 1 2} {0 2} {0}}

1 goes to 2 and 2 goes to 1 (disconnected)
{{} {0 1 2} {1 2} {0}}
{{} {0 1 2} {1} {0 2}}
{{0 1} {} {0 1 2} {2}}

partially invariant operation
{{} {0 1 2} {2} {1} {1 2} {0 2}}
{{} {0 1 2} {2} {1 2} {0 2} {0}}
{{0 1} {} {0 1 2} {1} {1 2} {0}}
{{0 1} {} {0 1 2} {2} {0 2} {0}}
{{0 1} {} {0 1 2} {1} {0 2} {0}}
{{0 1} {} {0 1 2} {2} {1} {1 2}}

partially reversible binary operation
{{0 1} {} {0 1 2} {2} {1}}
{{0 1} {} {0 1 2} {2} {0}}
{{} {0 1 2} {1} {0 2} {0}}
{{} {0 1 2} {2} {1 2} {0}}
{{} {0 1 2} {1} {1 2} {0}}
{{} {0 1 2} {2} {1} {0 2}}

both 1 and 2 go to 0
{{} {0 1 2} {2} {1 2} {0 2}}
{{0 1} {} {0 1 2} {1} {1 2}}
{{0 1} {} {0 1 2} {0 2} {0}}

completely cancellative binary operaiton
{{} {0 1 2} {2} {1} {0}}

partially cancellative binary operation
{{0 1} {} {0 1 2} {2} {1} {0}}
{{} {0 1 2} {2} {1} {1 2} {0}}
{{} {0 1 2} {2} {1} {0 2} {0}}

any binary operations
{{0 1} {} {0 1 2} {2} {1} {1 2} {0}}
{{} {0 1 2} {2} {1} {1 2} {0 2} {0}}
{{0 1} {} {0 1 2} {2} {1} {0 2} {0}}

Dimension 3


any ternary relation (disconnected)
{{0 1} {} {0 1 2} {2} {1} {1 2} {0 2} {0}}

Monday, July 8, 2019

Ontology of ternary relations

Having considered the concept of functional dimension as a means of classifying the different types of n-ary relations, we can consider the particular case of ternary relations. The notion of functional dimension is monotone so it provides an ordering of different classes of relations which can be used to build one another up. The simplest case is always the trivial case of a relation which contains no more then one element, which is used to build up the other classes.

This provides a basic upper ontology whose elements form a chain due to the monotone function to the total ordering. This classification is based upon the idea of the central importance of the notion of a function. When considering the notion of a function the first thing I consider is the different mapping patterns a function can take as well as the different kinds of functions between different partially ordered sets. There are functions from numbers like sequences, to numbers like distributions, to sets like multi-valued functions, as well as functions between orders like monotone functions, closure functions, etc. Besides this initial analysis though, our notions of functions can be extended in at least two ways: to product functions and to binary operations both of which are different.

Consider calculus, functions from a scalar to a vector and functions from a vector to a scalar are considerably different. Functions from a scalar to a vector, like the trajectories in kinematics equations act like product functions as different functions can be formed for each coordinate. So for example we could form separate functions like x(t), y(t), etc for the different coordinates and these could be differentiated separately using ordinary differentiation. On the other hand, a function taking multiple arguments would require partial differentiation. The sticking point is the number of arguments to the function (essentially the functional dimension).

In terms of ternary relations then we are considering the different types of relation based upon the number of arguments needed to express them as functions. The trivial case involves functions that take no arguments f : () -> (a,b,c) which are relations which have no more then one argument, then there are product functions f : (a) -> (b,c) which are defined by the product of two functions $f_1$ and $f_2$ which produce the first and second values of the function, then there are binary operations f : (a,b) -> c which take two arguments and which you are probably familiar with. Lastly there are all the other ternary relations.

Trivial functions:
Trivial functions f: () -> (a,b,c) have no more then one argument so they include {}, {(0,0,0)}, {(0,0,1)}, {(0,1,0)},{(1,0,0)},{(0,1,2)}, and other ternary relations isomorphic to them. There are only six possible isomorphism types in this class so it is absolutely trivial, but it is used to build up all the other ternary relations since its the simplest and smallest case.

Product functions:
Product functions f: (a) -> (b,c) are any relation which can be expressed as the product of two functions. A special case is a reversible binary operation f: (a) -> (b,c) which is also a binary operation (b,c) -> (a). These are one to one functions from some set to pairs. They reversibly deconstruct some data structure, like the reversible deconstruction of a multiset into its relative multiplicities distribution and its exponent. Reversible binary operations are of considerable interest in the theory of reversible functions. Another special case is product functions in which one of the two functions used in the product is reversible. If both of them are reversible then the relation is actually one to one to one. This is by generalization of the notion of one to one to ternary relations, so each slot determines all the others.

Binary operations:
Binary operations f : (a,b) -> (c) are an even more general class, which includes the product functions as well as numerous other operations. We already mentioned reversible binary operations, which are actually product functions single a value produces the others to reverse the operation. So the main types of operation of interest to us here are ones that cannot already be described by product functions. Probably the most important properties of operations are closure or being a magma and associativity. Both properties are used to define semigroups, which are especially important because they describe the composition of a collection of functions which transform some set. Numerous classes of semigroups like monoids, groups, commutative semigroups, semilattices, unital semilattices, abelian groups, etc make up the upper ontology of binary operations which is too extensive to list here.

General relations:
As we move to general classes of ternary relations I would like to move to closure operations on the class of ternary relations, which are classes associated with functions we can use to define larger ternary relations. Relations without any particular functional dependencies have no limit to how big they can get, so they can always be made bigger with closure operations. The first thing to notice is the different types of symmetry for ternary relations, like front symmetry, back symmetry, and outer symmetry which is similar to symmetry for binary relations but for projections of the ternary relations. Then there are cyclic closed ternary relations which are relations for which each rotation of a member is included. Cyclic orders are of this class well betweenness relations are outer symmetric.

Saturday, July 6, 2019

Functional dimension

A n-ary relation is a set of sequences that each have n slots with values associated with them. Functional dependencies can be used to describe how different slots in relation are dependent upon one another, so for example in a binary relation we can describe that the second value is dependent upon the first, which is the typical definition of a unary operation. This produces a closure operation on the set of slots, so that given some set of slots, the closure can be used to produce the information which can be inferred from them.

Closure operations are a common part of mathematics, and they are associated with lattices and moore families. For example, given a group the subgroup generated by a set is a closure operation, and in particular in linear algebra the span generated by a set of vectors is a closure operation. Also in linear algebra, the dimension is the smallest number of generators needed to span the entire vector space. It is for this reason that I call the functional dimension the number of slots needed to generate all the elements of a relation.

The interesting thing is that this is a monotone function function like cardinality, so the subrelations of a given n-ary relation must have less functional dimension then their parents. This monotone function can be used to help to classify relations and their ordering.