Foundations for the people

Synopsis

Titan is a development platform for incremental optimisable search and enumeration, based directly on formal substructural logic and the foundations of mathematics. For this, Titan defines:

  1. A reference language in which to express these rules;
  2. A standard library by which to facilitate development; and
  3. Implementation constraints to provide performance guarantees.
The major intended objectives are:
  1. Accessible and scalable proof capabilities; and
  2. Optimisability sufficient for efficient embedded programming.

Semantics and Reference Language

Owing to the complexity of Titan's objectives, and the complexity of the foundations of mathematics in general, two semantics are given for the Titan Reference Language:

Though separable, Titan's reference language and semantics were designed together to minimise complexity. In the Titan platform, programs and data are specified as extended patterns of sets of rows. An extended pattern is essentially a function which returns either an indicator function or another extended pattern, and terms are identified with their singletons, enabling them to match/filter as well. The major tricks added to this, however, are:
  1. Relations can be partially applied, yielding the projection of the search for the rows with the given values in the corresponding columns onto the other columns (selective projection);
  2. A row of a single column decays to the value in that column; and
  3. A sum of a single row decays to that row.
The following outputs of an example implementation of the euclidean algorithm illustrate this succinctly: A brief summary of the language's grammar, taken from the upcoming design document, is provided below.

Alphabet

The alphabet of the Titan reference language is in the Unicode 10 character set. Several subsets are named here for future reference:

Tokens

Grammar

The full grammar of the Titan reference language is:
E ::= | AE
A ::= name | variable | number | string | [E] | {E} | (E)
Note that there are no reserved identifiers.

Standard Library

Titan's standard library is divided into three major parts: Language, Environment, and Algorithms. All definitions in the standard library are abstract data/negative types, meaning they are defined in terms of their projection relations. Only the Language part is mandatory, and the two other parts can be defined in terms of it.

Language

The Language part supports the core constructs of the language and provides models of many domains of mathematics, from statistics to topology to geometry.

Algorithms

The Algorithms part supports decision problems going all the way to the class RE.

Environment

The Environment part supports interaction with the real world, ranging from the underlying hardware/implementation to ontologies to the sciences.

Reference Implementation

Titan's reference implementation will be code-named Othrys, after the mountain home of the Greek titans (as opposed to Olympus, the home of the Olympian deities).

Bootstrap Implementation

Titan's bootstrap implementation, in progress, is code-named Chaos, after the root deity of the Greek Pantheon.

Daniel Campos do Nascimento © 2025-