Type System Clause Samples
Type System. We define a session type system for λCoS loosely inspired to that of Gay and ▇▇▇▇▇▇▇▇▇▇▇ [2010]. Following Tov and Pucella [2011], we use kinds to distinguish unlimited types, those denoting values that can be discarded and duplicated, from linear types, those denoting values (such as endpoints) that must be used exactly once. The syntax of kinds, types, and session types is given below: Kind κ ::= 1 | ω
Type System. This section defines a suitable collection of types for proving the correctness of the model transformations in this thesis. It is founded on a hierarchy of type universes, and comprises base types, logical types, quantified types, equality types and truth and falsity types, more or less what ▇▇▇▇▇▇▇▇ [133] calls system TT . Each type is defined by a set of formation, introduction, elimination and computation rules. • A formation rule defines the means of asserting “such and such an expression is a type”. The expression may be as simple as the symbol A, say, in which case the formation rule asserts “A is a type”, or it may be something more complex like A ∧B, in which case the formation rule asserts “A ∧ B is a type, if A and B are types”. The expression may also contain a free variable a of type A, say, as in C a, in which case the formation rules asserts “for each object a of type A, C a is a type”, or in other words “C a is a family of types on A”. C a is an example of a dependent type. The sum total of all formation rules asserts the existence of every type in the system. • An introduction rule defines the means of constructing a subset of the canonical objects of a type. A canonical object of a type may be introduced categorically as in “0 is a canonical object of type Nat”, or hypothetically as in “if n is an object of type Nat, then succ(n) is a canonical object of type Nat”. Note that n need not be a canonical object for succ(n) to be a canonical object. • In its simplest form, an elimination rule defines the means of destructing a type into one or other of its constituent parts, thereby removing one of the parts from a logical train of thought. For example, type A ∧B can be destructed into types A and B using the ∧ elimination rule. In general, though, an elimination rule defines the means of constructing objects of a dependent type P a, say, where P is a property on an object a of type A. As part of its formulation, an elimination rule effectively enumerates the possible ways in which an object of a type can be constructed, providing a means of closure for the introduction rules.
Type System. To work with the typed expressions of SLAExpr, type restrictions should be in place. In MPS, this is done by configuring a type system. The type system we (a) Technical representation (b) Textual representation 0..n description + text: string «interface»
