### Table 19. Type system

2003

"... In PAGE 29: ...The declarations in a context have the following meaning: X means that the type variable X ranges over types t, while x: t means that the term variable x ranges over values of type t. Table19 gives the typing rules. They are standard, except rule (case), which uses some auxiliary notation, namely a context (p) and a sequence e(p) of terms, de ned by induction on p 2 P p 2 P (p) 2 Ctx e(p) 2 E x!t x: t ; = e x: L e (piji 2 m) (p0); : : : ; (pm 1) e(p0); : : : ; e(pm 1) 5.... ..."

Cited by 20

### Table 1 The typing system

"... In PAGE 5: ... The types of API@ include types for basic values, a top type and capability types for names. As promised in Section 3, the channel types we use have the flat structure de- fined in Table1 , that informs on the access rights associated with the channel: read (r), write (w) or both (rw). The subtyping relation, also in Table 1, is the preorder that satis- fies the expected relationship over capability types, and admits a partial meet operator defined by the two clauses r intersectionsqw = rw, Aintersectionsqlatticetop = A for all A, and undefined elsewhere.... In PAGE 5: ... As promised in Section 3, the channel types we use have the flat structure de- fined in Table 1, that informs on the access rights associated with the channel: read (r), write (w) or both (rw). The subtyping relation, also in Table1 , is the preorder that satis- fies the expected relationship over capability types, and admits a partial meet operator defined by the two clauses r intersectionsqw = rw, Aintersectionsqlatticetop = A for all A, and undefined elsewhere. 4.... ..."

### Table 2: The type system of QCM

1997

"... In PAGE 7: ...x, y, z Set variables S, T Principals p, q, r Constants a, b Attributes A, B Expressions M; N ::= x j a j (M1; : : : ; Mn) j hA1 = M1; : : : ; An = Mni j p:S j x:S j fM1; : : : ; Mng j (M [ N) j (M \ N) j f M j G1; : : : ; Gn g Generators, guards G ::= P M j P = P0 Patterns P ::= x j a j (P1; : : : ; Pn) j hA1 = P1; : : : ; An = Pni De nitions D ::= p:S = M Queries Q ::= (p asks M noting R1; : : : ; Rn) Responses R ::= (p says M N) Basic values v ::= a j (v1; : : : ; vn) j hA1 = v1; : : : ; An = vni Set values V ::= fv1; : : : ; vng Messages e Jobs j ::= hM; p; N; fR1; : : : ; Rngi Table 1: QCM syntax We require that comprehensions have no free basic variables (a basic variable is free in M = fN j G1; : : : ; Gng if it appears in M, and does not appear in a generator P p:S in N). A (standard) type system for QCM is given in Table2 ; it rules out expres- sions like the selection of a eld from a relation that does not possess the eld in question. We assume that every constant has a known unique, closed basic type.... ..."

Cited by 4

### TABLE 8 An Improved Type System

1998

Cited by 193

### TABLE 11 Extended Typing System

1998

Cited by 193

### Table 15: Security Type System

"... In PAGE 17: ... These labels and the relations between them are generally de ned by a Lattice [9] hL; v; t; u; gt;; ?; i. For instance, within the Lyee requirements,we can use the following lattice: L = fsecret; publicg gt; = secret ? = public public v secret public t secret = secret t secret = secret public u secret = public u public = public LabelOf: Similarly to the function typeOf , the function LabelOf associates security label to values as follows: LabelOf = [true 7! public; false 7! public; num n 7! public; : : :] Security Type System: As illustrated in Table15 , the goal of this security type system is to reject programs that do not respect the desirable security policies. Given the environment E = [a 7! public; b 7! secret; c 7! public], it is simple to prove that the statement (b, c+5, c gt;0, Output, secret, : : :) respects our security policy.... ..."

### Table 1. Pure type systems

Cited by 1