Sequent Calculus: A Logic and a Language for Computation and Duality

ion, where the positive values are defined hereditarily: a pair of two values is a value, an injection of a value is a value, and so on. That way, troublesome commands like 〈ι1 (μα.c)||μ̃[ι1 (x).c1 | ι2 (y).c2]〉 become syntactically forbidden. The interesting types that contain negative types and break this mold are the values ∼ (E−) : ∼A− which contain a negative co-value and the values ↓(v−) : ↓A− which contains a negative term. Also like LKQ there is no restrictions placed on positive co-terms, which is in part because the co-terms of positive types are all abstractions which are not easily restricted like the positively constructed terms are. On the negative side, the restrictions on the syntax of negative co-terms resembles LKT. Every negative term is either a negative co-value or input abstraction, where the negative co-values are defined hereditarily: a pair of two co-value is a co-value, a projection of a co-value is a co-value, etc. So troublesome commands like 〈μ([x+ · β].c)||(μα.c1) · [μ̃y.c2]〉 are also syntactically forbidden. As before, there are some interesting types that refer to positive types, like the co-values V+ · E− : A+ → B− and ¬ [V+] : ¬A+ which contain a positive value and ↑[e+] : ↑A+ which contains a positive co-term. Also as like LKT there is no restriction on the negative terms, which are all abstractions over negative co-values. The focalized and polarized type system for system L introduces two new sequents using the stoup (;) based on the two restrictions on the syntax, Γ ` V+ : A+ ; ∆ for typing positive values in focus and Γ ; E− : A− ` ∆ for typing negative co-values in focus. The logical typing rules are given in Figure 4.10. The typing rules are essentially the same as the unfocused polarized ones from Figure 4.7, except that they now follow the syntactic restrictions on positive terms and negative co-terms Figure 4.9. This has the net effect that, in a bottom-up reading of a typing derivation, once focus is gained via the FR or FL rules it is maintained. The only rules which are capable of losing focus are the ́R and ˆL rules, which transition from a positive value to a negative term and from a negative co-value to a positive co-term. This can be seen as a design philosophy justifying the choice of polarities in the connectives of polarized system L from Figure 4.6: focus should be maintained by every connective except the shifts. Therefore, the function type A+ → B− (called the “primordial function type” by Zeilberger (2009)) must have a positive argument type and negative return type to maintain focus in the call stack V+ · E−, and the negation types ∼A− and ¬A+ must invert the polarity of the type to maintain focus in ∼ (E−) and ¬ [V+]. Anything else