VLDB 2026 Research / reviewers in the wild / expert
Atsushi Igarashi
dblp:34/589
· DBLP profile ↗
73ranked-venue papers
21as first author
15since 2021 · last 2026
0000-0002-5143-9764ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 63 · 17 first-author · 14 since 2021Theory of computation · 10 · 4 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 1 since 2021Artificial intelligence and machine learning · 1Security and privacy · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | The Zero Trust IoT (ZT-IoT) Project
Atsuko Takefusa, Atsushi Igarashi, Taro Sekiyama, Kuniyasu Suzaki, Toshihiro Matsui, Atsuya Osaki, Naoki Yamashita, Nobuo Aoki, Sewon Park 0001, Terunobu Inaba, Lélio Brun, Yutaka Ishikawa, Kento Aida, Yasushi Ono, Kensuke Fukuda, Eisaku Sakane, Ichiro Hasuo |
COMPSAC | 2 |
| 2026 | Ownership Refinement Types for Pointer Arithmetic and Nested ArraysabstractTanaka et al. proposed a type system for verifying functional correctness properties of programs that use arrays and pointer arithmetic. Their system extends ConSORT - a type system combining fractional ownership and refinement types for imperative program verification - with support for pointer arithmetic. Their idea was to extend fractional ownership so that it can depend on an array index. Their formulation, however, does not handle nested arrays, which are essential for representing practical data structures such as matrices. We extend Tanaka et al.’s type system to support nested arrays by generalizing the notion of ownership to be able to refer to the indices of the outer arrays and prove the soundness of the extended type system. We have implemented a verifier based on the proposed type system and demonstrated that it can verify the correctness of programs that manipulate nested arrays, which were beyond the reach of Tanaka et al. Yusuke Fujiwara, Yusuke Matsushita 0002, Kohei Suenaga, Atsushi Igarashi |
ECOOP | 4 |
| 2026 | Compile-Time Tensor Shape Checking via Staged Shape-Dependent TypesabstractWhen writing programs involving matrices or tensors in general, it is desirable to rule out the inconsistency of tensor shapes (i.e., the generalization of matrix sizes) before actual computation. For this purpose, some languages provide dependent types such as Mat m n, and others offer refinement types to track predicates for shapes. Despite the theoretical maturity, however, such methods are often unhandy for continuous software development due to the requirement of proofs for judging type equality or subtyping; even automated proving is often unsuitable due to its unforeseeable time consumption. To remedy this, our study provides an alternative formalization by using staging. Based on the observation that conditions for the shape consistency can be extracted before running the actual tensor computations in many typical cases, we ensure such consistency by assertions evaluated as compile-time computations, not by proofs. Under this formalization, we can verify the consistency virtually statically in the sense that inconsistencies will be immediately detected as failures during compile-time computation. Our work achieves a mathematical guarantee that successfully generated code is always consistent with respect to tensor shapes. Furthermore, to vastly lessen the burden of adding shape- or stage-related descriptions, we (1) allow shape-related arguments to be implicit and infer them in a best-effort manner, and (2) offer a non-staged surface language that seemingly resembles ordinary dependently-typed languages and translate its programs into the staged core language. By a prototype implementation, we confirm that our language is expressive enough to verify a number of programs, including several examples offered by ocaml-torch. Takashi Suwa, Atsushi Igarashi |
ECOOP | 2 |
| 2026 | Contextual Metaprogramming for Session TypesabstractWe propose the integration of staged metaprogramming into a session-typed message passing functional language. We build on a model of contextual modal type theory with multi-level contexts, where contextual values, closing arbitrary terms over a series of variables, may be boxed and transmitted in messages. Once received, one such value may then be unboxed and locally applied before being run. To motivate this integration, we present examples of real-world use cases, for which our system would be suitable, such as servers preparing and shipping code on demand via session typed messages. We present a type system that distinguishes linear (used exactly once) from unrestricted (used an unbounded number of times) resources, and further define a type checker, suitable for a concrete implementation. We show type preservation, a progress result for sequential computations and absence of runtime errors for the concurrent runtime environment, as well as the correctness of the type checker. Pedro Ângelo 0002, Atsushi Igarashi, Yuito Murase, Vasco Thudichum Vasconcelos |
ESOP (1) | 2 |
| 2026 | An ML-style module system for cross-stage type abstraction in multi-stage programming
Takashi Suwa, Atsushi Igarashi |
Sci. Comput. Program. | 2 |
| 2025 | Making Rabbit Run for Security Verification of Networked Systems with Unbounded Loops
Sewon Park 0001, Atsushi Igarashi |
FMCAD | 2 |
| 2024 | Type-Based Verification of Connectivity Constraints in Lattice SurgeryabstractAbstract Fault-tolerant quantum computation using lattice surgery can be abstracted as operations on graphs, wherein each logical qubit corresponds to a vertex of the graph, and multi-qubit measurements are accomplished by connecting the vertices with paths between them. Operations attempting to connect vertices without a valid path will result in abnormal termination. As the permissible paths may evolve during execution, it is necessary to statically verify that the execution of a quantum program can be completed. This paper introduces a type-based method to statically verify that well-typed programs can be executed without encountering halts induced by surgery operations. Alongside, we present $$\mathcal {Q}_{LS}$$ Q LS , a first-order quantum programming language to formalize the execution model of surgery operations. Furthermore, we provide a type checking algorithm by reducing the type checking problem to the offline dynamic connectivity problem. Ryo Wakizaka, Yasunari Suzuki, Atsushi Igarashi |
APLAS | 3 |
| 2024 | iCon: Automated Verification of Inter-Transaction Properties in Tezos Smart Contracts with UnknownsabstractSmart contracts play a critical role in blockchain applications, managing vast amounts of valuable assets. However, they are often vulnerable to attacks due to the inherent difficulties in modifying their code once deployed. Existing security analysis tools and verifiers primarily focus on single-contract verification, while many real-world blockchain applications involve multiple contracts and transactions. In this paper, we introduce an automated verifier, iCon, for inter-transaction properties of smart contracts on the Tezos blockchain platform. iCon is based on our program logic, which verifies inter-transaction properties in the presence of both known and unknown contracts. We present an abstraction technique for unknown contracts and propose a proof technique to ensure that an inter-transaction property holds for any existence of unknown contracts. The proof technique supports the correctness of our verification approach. We have implemented iCon on top of the Why3 verification framework, demonstrating its effectiveness through several case studies, including the decentralized exchange service Dexter2, of which a previous version had a flaw in its implementation. Yuki Nishida 0001, Kohei Suenaga, Atsushi Igarashi |
ICBC | 3 |
| 2024 | Rabbit: A Language to Model and Verify Data Flow in Networked SystemsabstractThreat modeling is an effective approach to fortifying security, where system designers model a target system and investigate potential security weaknesses during the design phase. To investigate security flaws in the system rigorously, the model has to be detailed to the extent that the flow of each asset is minutely tracked. For this purpose, we propose Rabbit, a language to model a networked system with the ability to describe data flows within the system. Rabbit also aims to formally verify security properties under the specified system model and attacker model. In this paper, we model a simple client-server system and demonstrate the possibility of automatic verification using Rabbit. In an experiment we conducted, we have found a non-trivial execution path that violates a desired security property, demonstrating the potential of automatic security verification using Rabbit. Terunobu Inaba, Yutaka Ishikawa, Atsushi Igarashi, Taro Sekiyama |
ISNCC | 3 |
| 2024 | Signature restriction for polymorphic algebraic effectsabstractAbstract The naive combination of polymorphic effects and polymorphic type assignment has been well known to break type safety. In the literature, there are two kinds of approaches to this problem: one is to restrict how effects are triggered and the other is to restrict how they are implemented. This work explores a new approach to ensuring the safety of the use of polymorphic effects in polymorphic type assignment. A novelty of our work is to restrict effect interfaces . To formalize our idea, we employ algebraic effects and handlers, where an effect interface is given by a set of operations coupled with type signatures. We propose signature restriction , a new notion to restrict the type signatures of operations and show that signature restriction ensures type safety of a language equipped with polymorphic effects and unrestricted polymorphic type assignment. We also develop a type-and-effect system to enable the use of both of the operations that satisfy and those that do not satisfy the signature restriction in a single program. Taro Sekiyama, Takeshi Tsukada, Atsushi Igarashi |
J. Funct. Program. | 3 |
| 2024 | Space-Efficient Polymorphic Gradual Typing, Mostly ParametricabstractSince the arrival of gradual typing, which allows partially typed code in a single program, efficient implementations of gradual typing have been an active research topic. In this paper, we study the space-efficient problem of gradual typing in the presence of parametric polymorphism. Based on the existing work that showed the impossibility of a space-efficient implementation that supports fully parametric polymorphism, this paper will show that a space-efficient implementation is, in principle, possible by slightly relaxing parametricity. We first develop λC m p ∀ , which is a coercion calculus with mostly parametric polymorphism, and show its relaxed parametricity. Then, we present λS m p ∀ , a space-efficient version of λC m p ∀ , and prove that λS m p ∀ programs can be executed in a space-efficient manner and that translation from λC m p ∀ to λS m p ∀ is type-and semantics-preserving. Atsushi Igarashi, Shota Ozaki, Taro Sekiyama, Yudai Tanabe |
Proc. ACM Program. Lang. | 1 |
| 2024 | Abstracting Effect Systems for Algebraic Effect HandlersabstractMany effect systems for algebraic effect handlers are designed to guarantee that all invoked effects are handled adequately. However, respective researchers have developed their own effect systems that differ in how to represent the collections of effects that may happen. This situation results in blurring what is required for the representation and manipulation of effect collections in a safe effect system. In this work, we present a language λ EA equipped with an effect system that abstracts the existing effect systems for algebraic effect handlers. The effect system of λ EA is parameterized over effect algebras , which abstract the representation and manipulation of effect collections in safe effect systems. We prove the type-and-effect safety of λ EA by assuming that a given effect algebra meets certain properties called safety conditions . As a result, we can obtain the safety properties of a concrete effect system by proving that an effect algebra corresponding to the concrete system meets the safety conditions. We also show that effect algebras meeting the safety conditions are expressive enough to accommodate some existing effect systems, each of which represents effect collections in a different style. Our framework can also differentiate the safety aspects of the effect collections of the existing effect systems. To this end, we extend λ EA and the safety conditions to lift coercions and type-erasure semantics , propose other effect algebras including ones for which no effect system has been studied in the literature, and compare which effect algebra is safe and which is not for the extensions. Takuma Yoshioka, Taro Sekiyama, Atsushi Igarashi |
Proc. ACM Program. Lang. | 3 |
| 2024 | Functional and logic programming: Selected papers of FLOPS 2022
Michael Hanus, Atsushi Igarashi |
Sci. Comput. Program. | 2 |
| 2023 | Contextual Modal Type Theory with Polymorphic ContextsabstractAbstract Modal types—types that are derived from proof systems of modal logic—have been studied as theoretical foundations of metaprogramming, where program code is manipulated as first-class values. In modal type systems, modality corresponds to a type constructor for code types and controls free variables and their types in code values. Nanevski et al. have proposed contextual modal type theory, which has modal types with fine-grained information on free variables: modal types are explicitly indexed by contexts—the types of all free variables in code values. This paper presents $$\lambda _{\forall []}$$ λ ∀ [ ] , a novel extension of contextual modal type theory with parametric polymorphism over contexts. Such an extension has been studied in the literature but, unlike earlier proposals, $$\lambda _{\forall []}$$ λ ∀ [ ] is more general in that it allows multiple occurrence of context variables in a single context. We formalize $$\lambda _{\forall []}$$ λ ∀ [ ] with its type system and operational semantics given by $$\beta $$ β -reduction and prove its basic properties including subject reduction, strong normalization, and confluence. Moreover, to demonstrate the expressive power of polymorphic contexts, we show a type-preserving embedding from a two-level fragment of Davies’ $$\lambda _{\bigcirc }$$ λ ◯ , which is based on linear-time temporal logic, to $$\lambda _{\forall []}$$ λ ∀ [ ] . Yuito Murase, Yuichi Nishiwaki, Atsushi Igarashi |
ESOP | 3 |
| 2021 | Helmholtz: A Verifier for Tezos Smart Contracts Based on Refinement TypesabstractAbstract A smart contract is a program executed on a blockchain, based on which many cryptocurrencies are implemented, and is being used for automating transactions. Due to the large amount of money that smart contracts deal with, there is a surging demand for a method that can statically and formally verify them. This tool paper describes our type-based static verification tool Helmholtz for Michelson, which is a statically typed stack-based language for writing smart contracts that are executed on the blockchain platform Tezos. Helmholtz is designed on top of our extension of Michelson’s type system with refinement types. Helmholtz takes a Michelson program annotated with a user-defined specification written in the form of a refinement type as input; it then typechecks the program against the specification based on the refinement type system, discharging the generated verification conditions with the SMT solver Z3. We briefly introduce our refinement type system for the core calculus Mini-Michelson of Michelson, which incorporates the characteristic features such as compound datatypes (e.g., lists and pairs), higher-order functions, and invocation of another contract. Helmholtz successfully verifies several practical Michelson programs, including one that transfers money to an account and that checks a digital signature. Yuki Nishida 0001, Hiromasa Saito, Akira Kawata, Jun Furuse, Kohei Suenaga, Atsushi Igarashi |
TACAS (2) | 7 |
| 2020 | Space-Efficient Gradual Typing in Coercion-Passing StyleabstractHerman et al. pointed out that the insertion of run-time checks into a gradually typed program could hamper tail-call optimization and, as a result, worsen the space complexity of the program. To address the problem, they proposed a space-efficient coercion calculus, which was subsequently improved by Siek et al. The semantics of these calculi involves eager composition of run-time checks expressed by coercions to prevent the size of a term from growing. However, it relies also on a nonstandard reduction rule, which does not seem easy to implement. In fact, no compiler implementation of gradually typed languages fully supports the space-efficient semantics faithfully. In this paper, we study coercion-passing style, which Herman et al. have already mentioned, as a technique for straightforward space-efficient implementation of gradually typed languages. A program in coercion-passing style passes "the rest of the run-time checks" around---just like continuation-passing style (CPS), in which "the rest of the computation" is passed around---and (unlike CPS) composes coercions eagerly. We give a formal coercion-passing translation from $λ$S by Siek et al. to $λ$S$_1$, which is a new calculus of first-class coercions tailored for coercion-passing style, and prove correctness of the translation. We also implement our coercion-passing style transformation for the Grift compiler developed by Kuhlenschmidt et al. An experimental result shows stack overflow can be prevented properly at the cost of up to 3 times slower execution for most partially typed practical programs. Yuya Tsuda, Atsushi Igarashi, Tomoya Tabuchi |
ECOOP | 2 |
| 2020 | ConSORT: Context- and Flow-Sensitive Ownership Refinement Types for Imperative ProgramsabstractAbstract We present ConSORT, a type system for safety verification in the presence of mutability and aliasing. Mutability requires strong updates to model changing invariants during program execution, but aliasing between pointers makes it difficult to determine which invariants must be updated in response to mutation. Our type system addresses this difficulty with a novel combination of refinement types and fractional ownership types. Fractional ownership types provide flow-sensitive and precise aliasing information for reference variables. ConSORT interprets this ownership information to soundly handle strong updates of potentially aliased references. We have proved ConSORT sound and implemented a prototype, fully automated inference tool. We evaluated our tool and found it verifies non-trivial programs including data structure implementations. John Toman, Ren Siqi, Kohei Suenaga, Atsushi Igarashi, Naoki Kobayashi 0001 |
ESOP | 4 |
| 2020 | Signature restriction for polymorphic algebraic effectsabstractThe naive combination of polymorphic effects and polymorphic type assignment has been well known to break type safety. Existing approaches to this problem are classified into two groups: one for restricting how effects are triggered and the other for restricting how they are implemented. This work explores a new approach to ensuring the safety of polymorphic effects in polymorphic type assignment. A novelty of our work lies in finding a restriction on effect interfaces. To formalize our idea, we employ algebraic effects and handlers, where an effect interface is given by a set of operations coupled with type signatures. We propose signature restriction, a new notion to restrict the type signatures of operations, and show that signature restriction is sufficient to ensure type safety of an effectful language equipped with unrestricted polymorphic type assignment. We also develop a type-and-effect system to enable the use of both operations that satisfy and do not satisfy the signature restriction in a single program. Taro Sekiyama, Takeshi Tsukada, Atsushi Igarashi |
Proc. ACM Program. Lang. | 3 |
| 2019 | A Dependently Typed Multi-stage Calculus
Akira Kawata, Atsushi Igarashi |
APLAS | 2 |
| 2019 | Manifest Contracts with Intersection Types
Yuki Nishida 0001, Atsushi Igarashi |
APLAS | 2 |
| 2019 | Handling Polymorphic Algebraic EffectsabstractAlgebraic effects and handlers are a powerful abstraction mechanism to represent and implement control effects. In this work, we study their extension with parametric polymorphism that allows abstracting not only expressions but also effects and handlers. Although polymorphism makes it possible to reuse and reason about effect implementations more effectively, it has long been known that a naive combination of polymorphic effects and let-polymorphism breaks type safety. Although type safety can often be gained by restricting let-bound expressions—e.g., by adopting value restriction or weak polymorphism—we propose a complementary approach that restricts handlers instead of let-bound expressions. Our key observation is that, informally speaking, a handler is safe if resumptions from the handler do not interfere with each other. To formalize our idea, we define a call-by-value lambda calculus $$\lambda _\text {eff}^\text {let}$$ that supports let-polymorphism and polymorphic algebraic effects and handlers, design a type system that rejects interfering handlers, and prove type safety of our calculus. Taro Sekiyama, Atsushi Igarashi |
ESOP | 2 |
| 2019 | Temporal Verification of Programs via First-Order Fixpoint Logic
Naoki Kobayashi 0001, Takeshi Nishikawa, Atsushi Igarashi, Hiroshi Unno 0001 |
SAS | 3 |
| 2019 | Gradual session typesabstractAbstract Session types are a rich type discipline, based on linear types, that lifts the sort of safety claims that come with type systems to communications. However, web-based applications and microservices are often written in a mix of languages, with type disciplines in a spectrum between static and dynamic typing. Gradual session types address this mixed setting by providing a framework which grants seamless transition between statically typed handling of sessions and any required degree of dynamic typing. We propose Gradual GV as a gradually typed extension of the functional session type system GV. Following a standard framework of gradual typing, Gradual GV consists of an external language, which relaxes the type system of GV using dynamic types; an internal language with casts, for which operational semantics is given; and a cast-insertion translation from the former to the latter. We demonstrate type and communication safety as well as blame safety, thus extending previous results to functional languages with session-based communication. The interplay of linearity and dynamic types requires a novel approach to specifying the dynamics of the language. Atsushi Igarashi, Peter Thiemann 0001, Yuya Tsuda, Vasco Thudichum Vasconcelos, Philip Wadler |
J. Funct. Program. | 1 |
| 2019 | Dynamic type inference for gradual Hindley-Milner typingabstractGarcia and Cimini study a type inference problem for the ITGL, an implicitly and gradually typed language with let-polymorphism, and develop a sound and complete inference algorithm for it. Soundness and completeness mean that, if the algorithm succeeds, the input term can be translated to a well-typed term of an explicitly typed blame calculus by cast insertion and vice versa. However, in general, there are many possible translations depending on how type variables that were left undecided by static type inference are instantiated with concrete static types. Worse, the translated terms may behave differently—some evaluate to values but others raise blame. In this paper, we propose and formalize a new blame calculus λ B DTI that avoids such divergence as an intermediate language for the ITGL. A main idea is to allow a term to contain type variables (that have not been instantiated during static type inference) and defer instantiation of these type variables to run time. We introduce dynamic type inference (DTI) into the semantics of λ B DTI so that type variables are instantiated along reduction. The DTI-based semantics not only avoids the divergence described above but also is sound and complete with respect to the semantics of fully instantiated terms in the following sense: if the evaluation of a term succeeds (i.e., terminates with a value) in the DTI-based semantics, then there is a fully instantiated version of the term that also succeeds in the explicitly typed blame calculus and vice versa. Finally, we prove the gradual guarantee, which is an important correctness criterion of a gradually typed language, for the ITGL. Yusuke Miyazaki 0001, Taro Sekiyama, Atsushi Igarashi |
Proc. ACM Program. Lang. | 3 |
| 2019 | A type system for first-class layers with inheritance, subtyping, and swapping
Hiroaki Inoue, Atsushi Igarashi |
Sci. Comput. Program. | 2 |
| 2018 | ContextWorkflow: A Monadic DSL for Compensable and Interruptible ExecutionsabstractContext-aware applications, whose behavior reactively depends on the time-varying status of the surrounding environment - such as network connection, battery level, and sensors - are getting more and more pervasive and important. The term "context-awareness" usually suggests prompt reactions to context changes: as the context change signals that the current execution cannot be continued, the application should immediately abort its execution, possibly does some clean-up tasks, and suspend until the context allows it to restart. Interruptions, or asynchronous exceptions, are useful to achieve context-awareness. It is, however, difficult to program with interruptions in a compositional way in most programming languages because their support is too primitive, relying on synchronous exception handling mechanism such as try-catch. We propose a new domain-specific language ContextWorkflow for interruptible programs as a solution to the problem. A basic unit of an interruptible program is a workflow, i.e., a sequence of atomic computations accompanied with compensation actions. The uniqueness of ContextWorkflow is that, during its execution, a workflow keeps watching the context between atomic actions and decides if the computation should be continued, aborted, or suspended. Our contribution of this paper is as follows; (1) the design of a workflow-like language with asynchronous interruption, checkpointing, sub-workflows and suspension; (2) a formal semantics of the core language; (3) a monadic interpreter corresponding to the semantics; and (4) its concrete implementation as an embedded domain-specific language in Scala. Hiroaki Inoue, Tomoyuki Aotani, Atsushi Igarashi |
ECOOP | 3 |
| 2018 | A guess-and-assume approach to loop fusion for program verificationabstractLoop fusion—a program transformation to merge multiple consecutive loops into a single one—has been studied mainly for compiler optimization. In this paper, we propose a new loop fusion strategy, which can fuse any loops—even loops with data dependence—and show that it is useful for program verification because it can simplify loop invariants. Akifumi Imanishi, Kohei Suenaga, Atsushi Igarashi |
PEPM | 3 |
| 2018 | Nondeterministic Manifest ContractsabstractWe study a manifest contract system---a typed calculus of higher-order contracts where contracts are tightly integrated into a refinement type system---for a functional language with nondeterministic choice. The extension is not trivial, especially in the presence of dependent function types, because a naive extension would lead to inconsistent type equivalence, which makes contract information in refinement types meaningless. Yuki Nishida 0001, Atsushi Igarashi |
PPDP | 2 |
| 2018 | Automated Verification of Functional Correctness of Race-Free GPU Programs
Kensuke Kojima, Akifumi Imanishi, Atsushi Igarashi |
J. Autom. Reason. | 3 |
| 2018 | Method safety mechanism for asynchronous layer deactivation
Tetsuo Kamina, Tomoyuki Aotani, Hidehiko Masuhara, Atsushi Igarashi |
Sci. Comput. Program. | 4 |
| 2017 | A Nonstandard Functional Programming Language
Hirofumi Nakamura, Kensuke Kojima, Kohei Suenaga, Atsushi Igarashi |
APLAS | 4 |
| 2017 | Verification of code generators via higher-order model checkingabstractDynamic code generation is useful for optimizing code with respect to information available only at run-time. Writing a code generator is, however, difficult and error prone. We consider a simple language for writing code generators and propose an automated method for verifying code generators. Our method is based on higher-order model checking, and can check that a given code generator can generate only closed, well-typed programs. Compared with typed multi-stage programming languages, our approach is less conservative on the typability of generated programs (i.e., can accept valid code generators that would be rejected by typical multi-stage languages) and can check a wider range of properties of code generators. We have implemented the proposed method and confirmed its effectiveness through experiments. Takashi Suwa, Takeshi Tsukada, Naoki Kobayashi 0001, Atsushi Igarashi |
PEPM | 4 |
| 2017 | Stateful manifest contractsabstractThis paper studies hybrid contract verification for an imperative higher-order language based on a so-called manifest contract system. In manifest contract systems, contracts are part of static types and contract verification is hybrid in the sense that some contracts are statically verified, typically by subtyping, but others are dynamically by casts. It is, however, not trivial to extend existing manifest contract systems, which have been designed mostly for pure functional languages, to imperative features, mainly because of the lack of flow-sensitivity, which should be taken into account in verifying imperative programs statically. Taro Sekiyama, Atsushi Igarashi |
POPL | 2 |
| 2017 | On polymorphic gradual typingabstractWe study an extension of gradual typing—a method to integrate dynamic typing and static typing smoothly in a single language—to parametric polymorphism and its theoretical properties, including conservativity of typing and semantics over both statically and dynamically typed languages, type safety, blame-subtyping theorem, and the gradual guarantee—the so-called refined criteria, advocated by Siek et al. We develop System F G , which is a gradually typed extension of System F with the dynamic type and a new type consistency relation, and translation to a new polymorphic blame calculus System F C , which is based on previous polymorphic blame calculi by Ahmed et al. The design of System F G and System F C , geared to the criteria, is influenced by the distinction between static and gradual type variables, first observed by Garcia and Cimini. This distinction is also useful to execute statically typed code without incurring additional overhead to manage type names as in the prior calculi. We prove that System F G satisfies most of the criteria: all but the hardest property of the gradual guarantee on semantics. We show that a key conjecture to prove the gradual guarantee leads to the Jack-of-All-Trades property, conjectured as an important property of the polymorphic blame calculus by Ahmed et al. Yuu Igarashi, Taro Sekiyama, Atsushi Igarashi |
Proc. ACM Program. Lang. | 3 |
| 2017 | Gradual session typesabstractSession types are a rich type discipline, based on linear types, that lift the sort of safety claims that come with type systems to communications. However, web-based applications and micro services are often written in a mix of languages, with type disciplines in a spectrum between static and dynamic typing. Gradual session types address this mixed setting by providing a framework which grants seamless transition between statically typed handling of sessions and any required degree of dynamic typing. We propose GradualGV as an extension of the functional session type system GV with dynamic types and casts. We demonstrate type and communication safety as well as blame safety, thus extending previous results to functional languages with session-based communication. The interplay of linearity and dynamic types requires a novel approach to specifying the dynamics of the language. Atsushi Igarashi, Peter Thiemann 0001, Vasco Thudichum Vasconcelos, Philip Wadler |
Proc. ACM Program. Lang. | 1 |
| 2017 | A Hoare Logic for GPU KernelsabstractWe study a Hoare Logic to reason about parallel programs executed on graphics processing units (GPUs), called GPU kernels. During the execution of GPU kernels, multiple threads execute in lockstep, that is, execute the same instruction simultaneously. When the control branches, the two branches are executed sequentially, but during the execution of each branch only those threads that take it are enabled; after the control converges, all the threads are enabled and again execute in lockstep. In this article, we first consider a semantics in which all threads execute in lockstep (this semantics simplifies the actual execution model of GPUs) and adapt Hoare Logic to this setting by augmenting the usual Hoare triples with an additional component representing the set of enabled threads. It is determined that the soundness and relative completeness of the logic do not hold for all programs; a difficulty arises from the fact that one thread can invalidate the loop termination condition of another thread through shared memory. We overcome this difficulty by identifying an appropriate class of programs for which the soundness and relative completeness hold. Additionally, we discuss thread interleaving, which is present in the actual execution of GPUs but not in the lockstep semantics mentioned above. We show that if a program is race free, then the lockstep and interleaving semantics produce the same result. This implies that our logic is sound and relatively complete for race-free programs, even if the thread interleaving is taken into account. Kensuke Kojima, Atsushi Igarashi |
ACM Trans. Comput. Log. | 2 |
| 2017 | Polymorphic Manifest Contracts, Revised and ResolvedabstractManifest contracts track precise program properties by refining types with predicates—for example, { x :Int∣ x > 0} denotes the positive integers. Contracts and polymorphism make a natural combination: programmers can give strong contracts to abstract types, precisely stating pre- and post conditions while hiding implementation details— for instance, an abstract type of stacks might specify that the pop operation has input type { x :α Stack ∣ not (empty x )}. This article studies a polymorphic calculus with manifest contracts and establishes fundamental properties including type soundness and relational parametricity. Indeed, this is not the first work on polymorphic manifest contracts, but existing calculi are not very satisfactory. Gronski et al. developed the S age language, which introduces polymorphism through the Type:Type discipline, but they do not study parametricity. Some authors of this article have produced two separate works: Belo et al. [2011] and Greenberg [2013] studied polymorphic manifest contracts and parametricity, but their calculi have metatheoretical problems in the type conversion relations. Indeed, they depend on a few conjectures, which turn out to be false. Our calculus is the first polymorphic manifest calculus with parametricity, depending on no conjectures—it resolves the issues in prior calculi with delayed substitution on casts. Taro Sekiyama, Atsushi Igarashi, Michael Greenberg 0002 |
ACM Trans. Program. Lang. Syst. | 2 |
| 2015 | A Sound Type System for Layer Subtyping and Dynamically Activated First-Class Layers
Hiroaki Inoue, Atsushi Igarashi |
APLAS | 2 |
| 2015 | Shifting the Blame - A Blame Calculus with Delimited Control
Taro Sekiyama, Soichiro Ueda, Atsushi Igarashi |
APLAS | 3 |
| 2015 | Manifest Contracts for DatatypesabstractWe study algebraic data types in a manifest contract system, a software contract system where contract information occurs as refinement types. We first compare two simple approaches: refinements on type constructors and refinements on data constructors. For example, lists of positive integers can be described by {l:int list | for_all (lambda y. y > 0) l} in the former, whereas by a user-defined datatype pos_list with cons of type {x:int | x > 0} X pos_list -> pos_list in the latter. The two approaches are complementary: the former makes it easier for a programmer to write types and the latter enables more efficient contract checking. To take the best of both worlds, we propose (1) a syntactic translation from refinements on type constructors to equivalent refinements on data constructors and (2) dynamically checked casts between different but compatible datatypes such as int list and pos_list. We define a manifest contract calculus to formalize the semantics of the casts and prove that the translation is correct. Taro Sekiyama, Yuki Nishida 0001, Atsushi Igarashi |
POPL | 3 |
| 2014 | Automatic Memory Management Based on Program Transformation Using Ownership
Tatsuya Sonobe, Kohei Suenaga, Atsushi Igarashi |
APLAS | 3 |
| 2013 | A Hoare Logic for SIMT Programs
Kensuke Kojima, Atsushi Igarashi |
APLAS | 2 |
| 2013 | Model-Checking Higher-Order Programs with Recursive Types
Naoki Kobayashi 0001, Atsushi Igarashi |
ESOP | 2 |
| 2013 | Matching MyType to subtyping
Chieri Saito, Atsushi Igarashi |
Sci. Comput. Program. | 2 |
| 2012 | Type-based safe resource deallocation for shared-memory concurrencyabstractWe propose a type system to guarantee safe resource deallocation for shared-memory concurrent programs by extending the previous type system based on fractional ownerships. Here, safe resource deallocation means that memory cells, locks, or threads are not left allocated when a program terminates. Our framework supports (1) fork/join parallelism, (2) synchronization with locks, and (3) dynamically allocated memory cells and locks. The type system is proved to be sound. We also provide a type inference algorithm for the type system and a prototype implementation of the algorithm. Kohei Suenaga, Ryota Fukuda, Atsushi Igarashi |
OOPSLA | 3 |
| 2011 | A Featherweight Approach to FOOL
Atsushi Igarashi |
ECOOP | 1 |
| 2011 | Polymorphic Contracts
João Filipe Belo, Michael Greenberg 0002, Atsushi Igarashi, Benjamin C. Pierce |
ESOP | 3 |
| 2011 | Gradual typing for genericsabstractGradual typing is a framework to combine static and dynamic typing in a single programming language. In this paper, we develop a gradual type system for class-based object-oriented languages with generics. We introduce a special type to denote dynamically typed parts of a program; unlike dynamic types introduced to C# 4.0, however, our type system allows for more seamless integration of dynamically and statically typed code. Lintaro Ina, Atsushi Igarashi |
OOPSLA | 2 |
| 2011 | Constructive linear-time temporal logic: Proof systems and Kripke semantics
Kensuke Kojima, Atsushi Igarashi |
Inf. Comput. | 2 |
| 2010 | Mostly modular compilation of crosscutting concerns by contextual predicate dispatchabstractThe modularity of aspect-oriented programming (AOP) has been a controversial issue. To investigate this issue compared with object-oriented programming (OOP), we propose a simple language providing AOP mechanisms, which are enhanced traditional OOP mechanisms. We also present its formal system and then show that programs in this language can be only mostly modularly (i.e. separately) typechecked and compiled.We mention a source of this unmodularity and discuss whether or not it is appropriate to claim that AOP breaks modularity compared with OOP. Shigeru Chiba, Atsushi Igarashi, Salikh Zakirov |
OOPSLA | 2 |
| 2009 | Self type constructorsabstractBruce and Foster proposed the language LOOJ, an extension of Java with the notion of MyType, which represents the type of a self reference and changes its meaning along with inheritance. MyType is useful to write extensible yet type-safe classes for objects with recursive interfaces, that is, ones with methods that take or return objects of the same type as the receiver. Chieri Saito, Atsushi Igarashi |
OOPSLA | 2 |
| 2008 | Calculi of meta-variables
Masahiko Sato 0001, Takafumi Sakurai, Yukiyoshi Kameyama, Atsushi Igarashi |
Frontiers Comput. Sci. China | 4 |
| 2008 | Lightweight family polymorphismabstractAbstract Family polymorphism has been proposed for object-oriented languages as a solution to supporting reusable yet type-safe mutually recursive classes. A key idea of family polymorphism is the notion of families, which are used to group mutually recursive classes. In the original proposal, due to the design decision that families are represented by objects, dependent types had to be introduced, resulting in a rather complex type system. In this article, we propose a simpler solution of lightweight family polymorphism, based on the idea that families are represented by classes rather than by objects. This change makes the type system significantly simpler without losing much expressive power of the language. Moreover, “family-polymorphic” methods now take a form of parametric methods; thus, it is easy to apply method type argument inference as in Java 5.0. To rigorously show that our approach is safe, we formalize the set of language features on top of Featherweight Java and prove that the type system is sound. An algorithm for type inference for family-polymorphic method invocations is also formalized and proved to be correct. Finally, a formal translation by erasure to Featherweight Java is presented; it is proved to preserve typing and execution results, showing that our new language features can be implemented in Java by simply extending the compiler. Chieri Saito, Atsushi Igarashi, Mirko Viroli |
J. Funct. Program. | 2 |
| 2008 | Proving Noninterference by a Fully Complete Translation to the Simply Typed Lambda-CalculusabstractTse and Zdancewic have formalized the notion of noninterference for Abadi et al.'s DCC in terms of logical relations and given a proof of noninterference by reduction to parametricity of System F. Unfortunately, their proof contains errors in a key lemma that their translation from DCC to System F preserves the logical relations defined for both calculi. In fact, we have found a counterexample for it. In this article, instead of DCC, we prove noninterference for sealing calculus, a new variant of DCC, by reduction to the basic lemma of a logical relation for the simply typed lambda-calculus, using a fully complete translation to the simply typed lambda-calculus. Full completeness plays an important role in showing preservation of the two logical relations through the translation. Also, we investigate relationship among sealing calculus, DCC, and an extension of DCC by Tse and Zdancewic and show that the first and the last of the three are equivalent. Naokata Shikuma, Atsushi Igarashi |
Log. Methods Comput. Sci. | 2 |
| 2007 | Deriving Compilers and Virtual Machines for a Multi-level Language
Atsushi Igarashi, Masashi Iwaki |
APLAS | 1 |
| 2007 | Variant path types for scalable extensibilityabstractMuch recent work in the design of object-oriented programming languages has been focusing on identifying suitable features to support so-called scalable extensibility, where the usual extension mechanism by inheritance works in different scales of software components-that is, classes, groups of classes, groups of groups and so on. Its typing issues has usually been addressed by means of dependent type systems, where nested types are seen as properties of objects. In this work, we seek instead for a different solution, which can bemore easily applied to Java-like languages, in which nested types are considered properties of classe. Atsushi Igarashi, Mirko Viroli |
OOPSLA | 1 |
| 2006 | Resource usage analysis for a functional language with exceptionsabstractIgarashi and Kobayashi have proposed a general type system for checking whether resources such as files and memory are accessed in a valid manner. Their type system is, however, for call-by-value λ-calculus with resource primitives, and does not deal with non-functional primitives such as exceptions and pointers. We extend their type system to deal with exception primitives and prove soundness of the type system. Dealing with exception primitives is especially important in practice, since many resource access primitives may raise exceptions. The extension is non-trivial: While Igarashi and Kobayashi's type system is based on linear types, our new type system is a combination of linear types and effect systems. We also report on a prototype analyzer based on the new type system. Futoshi Iwama, Atsushi Igarashi, Naoki Kobayashi 0001 |
PEPM | 2 |
| 2006 | A modal type system for multi-level generating extensions with persistent codeabstractMulti-level generating extensions, studied by Glück and Jørgensen, are generalization of (two-level) program generators, such as parser generators, to arbitrary many levels. By this generalization, the notion of persistent code—a quoted code fragment that can be used for different levels—naturally arises. In this paper we propose a typed lambda calculus λ©, based on linear-time temporal logic, as a basis of programming languages for multi-level generating extensions with persistent code. The key idea of the type system is correspondence of (1) linearly ordered times in the logic to computation stages; (2) a formula ©A (next A) to a type of code that runs at the next stage; and (3) a formula A (always A) to a type of persistent code executable at and after the current stage. After formalizing λ©, we prove its key property of time-ordered normalization that a well-typed program can never go back to a previous stage in a “time-ordered ” execution, as well as basic properties such as subject reduction, confluence and strong normalization. Commuting conversion plays an important role for time-ordered normalization to hold. Yosihiro Yuse, Atsushi Igarashi |
PPDP | 2 |
| 2006 | Variant parametric types: A flexible subtyping scheme for genericsabstractWe develop the mechanism of variant parametric types as a means to enhance synergy between parametric and inclusion polymorphism in object-oriented programming languages. Variant parametric types are used to control both the subtyping between different instantiations of one generic class and the accessibility of their fields and methods. On one hand, one parametric class can be used to derive covariant types, contravariant types, and bivariant types (generally called variant parametric types) by attaching a variance annotation to a type argument. On the other hand, the type system prohibits certain method/field accesses, according to variance annotations, when these accesses may otherwise make the program unsafe. By exploiting variant parametric types, a programmer can write generic code abstractions that work on a wide range of parametric types in a safe manner. For instance, a method that only reads the elements of a container of numbers can be easily modified so as to accept containers of integers, floating-point numbers, or any subtype of the number type.Technical subtleties in typing for the proposed mechanism are addressed in terms of an intuitive correspondence between variant parametric and bounded existential types. Then, for a rigorous argument of correctness of the proposed typing rules, we extend Featherweight GJ---an existing formal core calculus for Java with generics---with variant parametric types and prove type soundness. Atsushi Igarashi, Mirko Viroli |
ACM Trans. Program. Lang. Syst. | 1 |
| 2005 | Lightweight Family Polymorphism
Atsushi Igarashi, Chieri Saito, Mirko Viroli |
APLAS | 1 |
| 2005 | Resource usage analysisabstractIt is an important criterion of program correctness that a program accesses resources in a valid manner. For example, a memory region that has been allocated should be eventually deallocated, and after the deallocation, the region should no longer be accessed. A file that has been opened should be eventually closed. So far, most of the methods to analyze this kind of property have been proposed in rather specific contexts (like studies of memory management and verification of usage of lock primitives), and it was not so clear what is the essence of those methods or how methods proposed for individual problems are related. To remedy this situation, we formalize a general problem of analyzing resource usage as a resource usage analysis problem, and propose a type-based method as a solution to the problem. Atsushi Igarashi, Naoki Kobayashi 0001 |
ACM Trans. Program. Lang. Syst. | 1 |
| 2004 | A generic type system for the Pi-calculus
Atsushi Igarashi, Naoki Kobayashi 0001 |
Theor. Comput. Sci. | 1 |
| 2002 | On Variance-Based Subtyping for Parametric Types
Atsushi Igarashi, Mirko Viroli |
ECOOP | 1 |
| 2002 | Resource usage analysis
Atsushi Igarashi, Naoki Kobayashi 0001 |
POPL | 1 |
| 2002 | Foundations for Virtual Types
Atsushi Igarashi, Benjamin C. Pierce |
Inf. Comput. | 1 |
| 2002 | On Inner Classes
Atsushi Igarashi, Benjamin C. Pierce |
Inf. Comput. | 1 |
| 2001 | A generic type system for the Pi-calculusabstractWe propose a general, powerful framework of type systems for the π-calculus, and show that we can obtain as its instances a variety of type systems guaranteeing non-trivial properties like deadlock-freedom and race-freedom. A key idea is to express types and type environments as abstract processes: We can check various properties of a process by checking the corresponding properties of its type environment. The framework clarifies the essence of recent complex type systems, and it also enables sharing of a large amount of work such as a proof of type preservation, making it easy to develop new type systems. Atsushi Igarashi, Naoki Kobayashi 0001 |
POPL | 1 |
| 2001 | Featherweight Java: a minimal core calculus for Java and GJabstractSeveral recent studies have introduced lightweight versions of Java: reduced languages in which complex features like threads and reflection are dropped to enable rigorous arguments about key properties such as type safety. We carry this process a step further, omitting almost all features of the full language (including interfaces and even assignment) to obtain a small calculus, Featherweight Java, for which rigorous proofs are not only possible but easy. Featherweight Java bears a similar relation to Java as the lambda-calculus does to languages such as ML and Haskell. It offers a similar computational "feel," providing classes, methods, fields, inheritance, and dynamic typecasts with a semantics closely following Java's. A proof of type safety for Featherweight Java thus illustrates many of the interesting features of a safety proof for the full language, while remaining pleasingly compact. The minimal syntax, typing rules, and operational semantics of Featherweight Java make it a handy tool for studying the consequences of extensions and variations. As an illustration of its utility in this regard, we extend Featherweight Java with generic classes in the style of GJ (Bracha, Odersky, Stoutamire, and Wadler) and give a detailed proof of type safety. The extended system formalizes for the first time some of the key features of GJ. Atsushi Igarashi, Benjamin C. Pierce, Philip Wadler |
ACM Trans. Program. Lang. Syst. | 1 |
| 2000 | On Inner Classes
Atsushi Igarashi, Benjamin C. Pierce |
ECOOP | 1 |
| 2000 | Type Reconstruction for Linear -Calculus with I/O Subtyping
Atsushi Igarashi, Naoki Kobayashi 0001 |
Inf. Comput. | 1 |
| 1999 | Foundations for Virtual Types
Atsushi Igarashi, Benjamin C. Pierce |
ECOOP | 1 |
| 1999 | Featherwieght Java: A Minimal Core Calculus for Java and GJabstractSeveral recent studies have introduced lightweight versions of Java: reduced languages in which complex features like threads and reflection are dropped to enable rigorous arguments about key properties such as type safety. We carry this process a step further, omitting almost all features of the full language (including interfaces and even assignment) to obtain a small calculus, Featherweight Java, for which rigorous proofs are not only possible but easy. Atsushi Igarashi, Benjamin C. Pierce, Philip Wadler |
OOPSLA | 1 |
| 1997 | Type-Based Analysis of Communication for Concurrent Programming Languages
Atsushi Igarashi, Naoki Kobayashi 0001 |
SAS | 1 |