A Classical Catch/Throw Calculus with Tag Abstractions and its Strong Normalizability

ions and its Strong Normalizability Yukiyoshi Kameyama and Masahiko Sato Department of Information Science, Kyoto University fkameyama,masahikog@kuis.kyoto-u.ac.jp Abstract. The catch and throw constructs in Common Lisp provides a means to implement non-local exits. Nakano proposed a calculus L c=t which has inference rules for the catch and throw constructs, and whose types correspond to the intuitionistic propositional logic. He introduced the tag-abstraction/application mechanism into L c=t , which is useful to approximately represent the dynamic behavior of tags. This paper examines the calculus LK c=t , a classicalized version of L c=t . In LK c=t , we can write many programming examples which are not expressible in L c=t , moreover, algorithmic contents can be extracted from classical proofs in LK c=t . We also prove several interesting properties of LK c=t including the strong normalizability. We point out that, if we naively apply the well-known reducibility method, the tag abstraction/application mechanism is problematic. By introducing a missing elimination rule, we can successfully prove the strong normalizability of LK c=t . The catch and throw constructs in Common Lisp provides a means to implement non-local exits. Nakano proposed a calculus L c=t which has inference rules for the catch and throw constructs, and whose types correspond to the intuitionistic propositional logic. He introduced the tag-abstraction/application mechanism into L c=t , which is useful to approximately represent the dynamic behavior of tags. This paper examines the calculus LK c=t , a classicalized version of L c=t . In LK c=t , we can write many programming examples which are not expressible in L c=t , moreover, algorithmic contents can be extracted from classical proofs in LK c=t . We also prove several interesting properties of LK c=t including the strong normalizability. We point out that, if we naively apply the well-known reducibility method, the tag abstraction/application mechanism is problematic. By introducing a missing elimination rule, we can successfully prove the strong normalizability of LK c=t .