I like to distinguish between sets and subsets. We imagine that sets are floating free in the universe, and that the elements of a set are constructed according to some kind of recursive rules. Like the elements of $\mathbb{N}$ can be constructed using the rules:
$$\frac{}{0 \in \mathbb{N}} \;\; \frac{n \in \mathbb{N}}{n+1 \in \mathbb{N}}$$
On the other hand, I tend to think of subsets as specified by properties. Like we can let $X$ denote the unique subset of $\mathbb{N}$ such that $n \in X$ iff $n^2$ is prime and $n \geq 25$, for example.
Now I like ZFC because it makes defining subsets a breeze. You just apply this giant sledgehammer called "the schema of separation" and lo and behold, there is your subset. But ZFC doesn't really have native support for "sets" as I see it. What I mean by this is firstly that sets in ZFC don't really "float free," because they're always subsets of the universe; furthermore, to define sets recursively in ZFC you basically have to rebuild universal algebra from scratch inside it, using our special ordinal $\omega$ whose nice inductive properties allow us to construct sets inductively. Well, I don't want to have to build universal algebra in the language of ZFC; the basic concepts of universal algebra are sufficiently primitive that we shouldn't have to do this. And although we can address the issue about "sets floating free" by moving to ETCS, nonetheless we still have to build universal algebra from scratch inside it. So ETCS is not a good solution, either.
Anyway, given my concerns, I suspect some kind of a type-theory might be what I'm looking for. But type-theory has always seemed rather unapproachable to me, and I don't know where to start looking for what I want.
Question. Can I get some recommendations as to which type theory/theories I should be looking into?
Here's a brief summary of what (I think) I want from such a theory.
- Native support for recursively-defined sets (bonus points if there's support for definitions by transfinite recursion).
- Sets "float free" in the universe.
- A big sledgehammer (like the axiom schema of separation) with which to define arbitrary subsets.
- Not too much dependency on the lambda calculus; I don't want to be forced to code the natural numbers as Church numerals, for example. (To be honest, I find the lambda calculus very, very hard to use for all but the most trivial of problems).
- Uncountable sets, non-computable functions
- Direct sums, Cartesian products, exponential objects
- As much of the power of ZFC as possible, especially a rich theory of ordinal numbers and cardinal numbers
- A logic that is classical, or at least the ability to make it classical by adjoining a few more axioms and/or rules.
Okay, that's more or less what (I think) I'm looking for. Any ideas as to what type theories I should be reading about?
I have the impression that Russellian unramified typed set theory (TST) might be the (foundational) type theory you are looking for. This type theory is used in some papers by Randall Holmes, Adrian Richard David Mathias and Thomas Forster. Note that this type theory is not predicative, because it only conforms to the position of Frank P. Ramsey and Rudolf Carnap, who accepted the ban on explicit circularity, but argued against the ban on circular quantification. If I understood it correctly, Church's 1940 simple type theory based on lambda calculus is a more elegant formulation of this type theory (or at least equiconsistent). I don't know the place where TST was first described, but Mendelson's (1997, 289–293) ST type theory seems to be essentially TST + infinity.
Let me explain how TST is "un-ramified". SEP describes ramified types like this:
The unramified type theory on the other hand doesn't use any tuples at all. TST has a linear hierarchy of types: type $0$ consists of individuals otherwise undescribed. For each (meta-)natural number $n$, type $n+1$ objects are sets of type $n$ objects; sets of type $n$ have members of type $n-1$.
The axiom schema of comprehension of TST (comprehension axioms are used by Henkin semantics for higher order logic) is "more impredicative" than its simple statement suggests:
First note that $\phi(x^n)$ is allowed to contain free variables other than $x^n$, with no restriction on the type of these variables. If $\phi(x^n)$ would only contain quantification over variables of type $<n$, then we would still consider this as predicative. Quantification over variables of type $\leq n$ would already be impredicative, but in this case, there are no restriction on the type of the variables for the quantification at all. This is how the reference to the position of Frank P. Ramsey and Rudolf Carnap translates into actual axiom schemes.