WORK IN PROGRESS
Type variables: xn;p
Expansion variables: En;p
Where n ∈ ℕ and p ∈ ℕ* (sequences of integers)
Many objects in System I use the notion of boxed tree.
For all set S, if s ∈ S, then t ∈ Tree(S) is defined by the following pseudo syntax:
t ⩴ ω | {s} | t1 ∧ t2 | E t
The name boxed tree comes from the construction (E t), for which tree t is said to be inside the box named E.
Applying a substitution targetting E effectively performs an operation on the entire content of box E.
Boxed trees are identified up to the folllowing equivalence relation:
Thus, ω can be intepreted as the empty set, { } as singleton set construction, and ∧ as set union.
Note that curly braces are omitted when it is unambiguous to do so.
∈ SmallType ⩴ xn;p | τ →
where τ ∈ Type = Tree(SmallExpansion × SmallType).
Reduction to T-normal form solve all constraints between small types; it always terminates.
| × | product sign |
| τ | greek letter tau |
| ω | greek letter omega |
| → | right arrow |
| ℕ | double-struck capital n |
| ∈ | set inclusion |
| ∧ | intersection |
| ⩴ | double colon equal |
| ⟶ | long right arrow |