Final answer:
The term 't1' in the expression 't = | C1 of t1 | ... | Cn of tn' refers to the type associated with the constructor C1 for a sum type in programming. Sum types allow encapsulating different types of values in one single type, distinguished by constructors such as C1, which is associated with t1.
Step-by-step explanation:
The expression t = | C1 of t1 | ... | Cn of tn represents a sum type (also known as a variant type or tagged union) in some programming languages, particularly those influenced by functional programming paradigms like ML, Haskell, or some variants of the OCaml language. This type definition includes multiple constructors (C1 to Cn) each potentially associated with its own type (t1 to tn). In this construct, t1 would be the type associated with the constructor C1. Constructors in sum types are used to create values of the type t, and each constructor can take arguments of different types, representing distinct alternatives.
For example, if we have a type t that can represent either an integer or a string, we might define it in ML-like syntax as:
t = | Number of int | Text of string
In this case, Number and Text are like labels that tag which kind of value the type t is holding. When we use the constructor Number, the 'tagged union' is carrying an integer, and similarly using Text means it carries a string. The t1 in the original question would be equivalent to the int in this example.