Skip to main content
Process journal of learning by Attila Vajda

Term Theory

While learning about foundations, I was learning about how to write type theory in C++, and this elegant, minimal structure emerged:

struct Type {};       // objects
struct Term {};       // arrows/morphisms
struct Context {};    // domain

I know categories can be defined using only arrows, so I asked whether we could write type theory as:

struct Term {};       // arrows/morphisms

and maybe call this term theory.

I created a GitHub repository for Term Theory (MVP).

term-theory/README.md:

Term Theory πŸ–‡ (MVP) #

Exploring a type-free, arrows-only foundation (Term Theory MVP),

with a minimal (possibly dependent) structure:

struct Term {
    Term* domain;    // (possibly dependent source)
    Term* codomain;  // (possibly dependent target)
};

🌿 Ideas for extensions: #

Term
 β”œβ”€ domain : Term
   └─ domain : Term
     └─ …
 └─ codomain : Term
      └─ codomain : Term
           └─ ...

This project explores whether a type-free, arrows-only foundation can be a seed for a minimal logic/programming language.