VLDB 2026 Research / reviewers in the wild / expert
Ryosuke Sato 0001
dblp:25/9698-1
· DBLP profile ↗
30ranked-venue papers
2as first author
15since 2021 · last 2026
0000-0001-8679-2747ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 29 · 2 first-author · 15 since 2021Artificial intelligence and machine learning · 1Theory of computation · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Solvable Tuple Patterns and Their Applications to Program VerificationabstractDespite the recent progress of automated program verification techniques, fully automated verification of programs manipulating recursive data structures remains a challenge. We introduce solvable tuple patterns (STPs) and conjunctive STPs (CSTPs), novel formalisms for expressing and inferring invariants between list-like recursive data structures. A distinguishing feature of STPs is that they can be efficiently inferred from only a small number of positive samples; no negative samples are required. After presenting properties and inference algorithms of STPs and CSTPs, we show how to incorporate the CSTP inference into a CHC (Constrained Horn Clauses) solver supporting list-like data structures, which serves as a uniform backend for automated program verification tools. A CHC solver incorporating the (C)STP inference has won the ADT-LIN category of CHC-COMP 2025 by a significant margin. Naoki Kobayashi 0001, Ryosuke Sato 0001, Ayumi Shinohara, Ryo Yoshinaka |
Proc. ACM Program. Lang. | 2 |
| 2025 | On the Relationship between Dijkstra Monads and Higher-Order Fixpoint LogicabstractAbstract We study the relationship between two approaches to higher-order program verification: a semi-automated method using Dijkstra monads and a fully automated method using a higher-order fixpoint logic called HFL(Z). Although the origins of both approaches are quite different, there are some striking similarities: both convert programs to corresponding predicate transformers, and the conversion is essentially obtained by a CPS transformation. After reviewing the two approaches, we formalize an exact correspondence between the two for a restricted fragment of a functional language. We also point out that, outside the restricted fragment, there are some important differences between the two approaches, suggesting the need for cross-fertilization to obtain the best of the two approaches. As an example of the cross-fertilization, we also propose a semi-automated verification method, which requires less annotations than the Dijkstra monad approach and can scale to larger programs than the HFL(Z) approach. Risa Yamada, Naoki Kobayashi 0001, Ken Sakayori, Ryosuke Sato 0001 |
ESOP (2) | 4 |
| 2025 | Automated Catamorphism Synthesis for Solving Constrained Horn Clauses over Algebraic Data Types
Hiroyuki Katsura, Naoki Kobayashi 0001, Ken Sakayori, Ryosuke Sato 0001 |
SAS | 4 |
| 2024 | Mode-based Reduction from Validity Checking of Fixpoint Logic Formulas to Test-Friendly Reachability Problem
Hiroyuki Katsura, Naoki Kobayashi 0001, Ken Sakayori, Ryosuke Sato 0001 |
APLAS | 4 |
| 2024 | Productivity Verification for Functional Programs by Reduction to Termination VerificationabstractA program generating a co-inductive data structure is called productive if the program eventually generates all the elements of the data structure. We propose a new method for verifying the productivity, which transforms a co-inductive data structure into a function that takes a path as an argument and returns the corresponding element. For example, an infinite binary tree is converted to a function that takes a sequence consisting of 0 (left) and 1 (right), and returns the element in the specified position, and a stream is converted into a function that takes a sequence of the form 0^n (or, simply a natural number n) and returns the n-th element of the stream. A stream-generating program is then productive just if the function terminates for every n. The transformation allows us to reduce the productivity verification problem to the termination problem for call-by-name higher-order functional programs without co-inductive data structures. We formalize the transformation and prove its correctness. We have implemented an automated productivity checker based on the proposed method, by extending an automated HFL(Z) validity checker, which can be used as a termination checker. Ren Fukaishi, Naoki Kobayashi 0001, Ryosuke Sato 0001 |
PEPM | 3 |
| 2024 | Borrowable Fractional Ownership Types for Verification
Takashi Nakayama, Yusuke Matsushita 0002, Ken Sakayori, Ryosuke Sato 0001, Naoki Kobayashi 0001 |
VMCAI (2) | 4 |
| 2024 | Asynchronous unfold/fold transformation for fixpoint logic
Mahmudul Faisal Al Ameen, Naoki Kobayashi 0001, Ryosuke Sato 0001 |
Sci. Comput. Program. | 3 |
| 2023 | Argument Reduction of Constrained Horn Clauses Using Equality Constraints
Ryo Ikeda, Ryosuke Sato 0001, Naoki Kobayashi 0001 |
APLAS | 2 |
| 2023 | Gradual Tensor Shape CheckingabstractAbstract Tensor shape mismatch is a common source of bugs in deep learning programs. We propose a new type-based approach to detect tensor shape mismatches. One of the main features of our approach is the best-effort shape inference. As the tensor shape inference problem is undecidable in general, we allow static type/shape inference to be performed only in a best-effort manner. If the static inference cannot guarantee the absence of the shape inconsistencies, dynamic checks are inserted into the program. Another main feature is gradual typing, where users can improve the precision of the inference by adding appropriate type annotations to the program. We formalize our approach and prove that it satisfies the criteria of gradual typing proposed by Siek et al. in 2015. We have implemented a prototype shape checking tool based on our approach and evaluated its effectiveness by applying it to some deep neural network programs. Momoko Hattori, Naoki Kobayashi 0001, Ryosuke Sato 0001 |
ESOP | 3 |
| 2023 | Higher-Order Property-Directed ReachabilityabstractThe property-directed reachability (PDR) has been used as a successful method for automated verification of first-order transition systems. We propose a higher-order extension of PDR, called HoPDR, where higher-order recursive functions may be used to describe transition systems. We formalize HoPDR for the validity checking problem for conjunctive nu-HFL(Z), a higher-order fixpoint logic with integers and greatest fixpoint operators. The validity checking problem can also be viewed as a higher-order extension of the satisfiability problem for Constrained Horn Clauses (CHC), and safety property verification of higher-order programs can naturally be reduced to the validity checking problem. We have implemented a prototype verification tool based on HoPDR and confirmed its effectiveness. We also compare our HoPDR procedure with the PDR procedure for first-order systems and previous methods for fully automated higher-order program verification. Hiroyuki Katsura, Naoki Kobayashi 0001, Ryosuke Sato 0001 |
Proc. ACM Program. Lang. | 3 |
| 2023 | HFL(Z) Validity Checking for Automated Program VerificationabstractWe propose an automated method for checking the validity of a formula of HFL(Z), a higher-order logic with fixpoint operators and integers. Combined with Kobayashi et al.'s reduction from higher-order program verification to HFL(Z) validity checking, our method yields a fully automated, uniform verification method for arbitrary temporal properties of higher-order functional programs expressible in the modal mu-calculus, including termination, non-termination, fair termination, fair non-termination, and also branching-time properties. We have implemented our method and obtained promising experimental results. Naoki Kobayashi 0001, Kento Tanahashi, Ryosuke Sato 0001, Takeshi Tsukada |
Proc. ACM Program. Lang. | 3 |
| 2022 | Parameterized Recursive Refinement Types for Automated Program Verification
Ryoya Mukai, Naoki Kobayashi 0001, Ryosuke Sato 0001 |
SAS | 3 |
| 2022 | An empirical study on self-admitted technical debt in modern code review
Yutaro Kashiwa, Ryoma Nishikawa, Yasutaka Kamei, Masanari Kondo, Emad Shihab, Ryosuke Sato 0001, Naoyasu Ubayashi |
Inf. Softw. Technol. | 6 |
| 2021 | Termination Analysis for the $$\pi $$-Calculus by Reduction to Sequential Program Termination
Tsubasa Shoshi, Takuma Ishikawa, Naoki Kobayashi 0001, Ken Sakayori, Ryosuke Sato 0001, Takeshi Tsukada |
APLAS | 5 |
| 2021 | Symbolic Automatic Relations and Their Applications to SMT and CHC Solving
Takumi Shimoda, Naoki Kobayashi 0001, Ken Sakayori, Ryosuke Sato 0001 |
SAS | 4 |
| 2020 | How Fast and Effectively Can Code Change History Enrich Stack Overflow?
Ryujiro Nishinaka, Naoyasu Ubayashi, Yasutaka Kamei, Ryosuke Sato 0001 |
QRS | 4 |
| 2020 | ICE-Based Refinement Type Discovery for Higher-Order Functional Programs
Adrien Champion, Tomoya Chiba, Naoki Kobayashi 0001, Ryosuke Sato 0001 |
J. Autom. Reason. | 4 |
| 2019 | When and Why Do Software Developers Face Uncertainty?abstractRecently, many developers begin to notice that uncertainty is a crucial problem in software development. Unfortunately, no one knows how often uncertainty appears or what kinds of uncertainty exist in actual projects, because there are no empirical studies on uncertainty. To deal with this problem, we conduct a large-scale empirical study analyzing commit messages and revision histories of 1,444 OSS projects randomly selected from the GitHub repositories. The main findings are as follows: 1) Uncertainty exists in the ratio of 1.44% (average); 2) Uncertain program behavior, uncertain variable/value/name, and uncertain program defects are major kinds of uncertainty; and 3) Sometimes developers tend to take an action for not resolving but escaping or ignoring uncertainty. Uncertainty exists everywhere in a certain percentage and developers cannot ignore the existence of uncertainty. Naoyasu Ubayashi, Yasutaka Kamei, Ryosuke Sato 0001 |
QRS | 3 |
| 2018 | HoIce: An ICE-Based Non-linear Horn Clause Solver
Adrien Champion, Naoki Kobayashi 0001, Ryosuke Sato 0001 |
APLAS | 3 |
| 2018 | iArch-U/MC: An Uncertainty-Aware Model Checker for Embracing Known Unknowns
Naoyasu Ubayashi, Yasutaka Kamei, Ryosuke Sato 0001 |
ICSOFT | 3 |
| 2018 | Can Abstraction Be Taught? Refactoring-based Abstraction Learning
Naoyasu Ubayashi, Yasutaka Kamei, Ryosuke Sato 0001 |
MODELSWARD | 3 |
| 2018 | ICE-Based Refinement Type Discovery for Higher-Order Functional ProgramsabstractWe propose a method for automatically finding refinement types of higher-order function programs. Our method is an extension of the Ice framework of Garg et al. for finding invariants. In addition to the usual positive and negative samples in machine learning, their Ice framework uses implication constraints, which consist of pairs (x, y) such that if x satisfies an invariant, so does y. From these constraints, Ice infers inductive invariants effectively. We observe that the implication constraints in the original Ice framework are not suitable for finding invariants of recursive functions with multiple function calls. We thus generalize the implication constraints to those of the form $$(\{x_1,\dots ,x_k\}, y)$$ , which means that if all of $$x_1,\dots ,x_k$$ satisfy an invariant, so does y. We extend their algorithms for inferring likely invariants from samples, verifying the inferred invariants, and generating new samples. We have implemented our method and confirmed its effectiveness through experiments. Adrien Champion, Tomoya Chiba, Naoki Kobayashi 0001, Ryosuke Sato 0001 |
TACAS (1) | 4 |
| 2017 | Modular Verification of Higher-Order Functional Programs
Ryosuke Sato 0001, Naoki Kobayashi 0001 |
ESOP | 1 |
| 2017 | Verifying relational properties of functional programs by first-order refinement
Kazuyuki Asada, Ryosuke Sato 0001, Naoki Kobayashi 0001 |
Sci. Comput. Program. | 2 |
| 2016 | Automatically disproving fair termination of higher-order functional programsabstractWe propose an automated method for disproving fair termination of higher-order functional programs, which is complementary to Murase et al.’s recent method for proving fair termination. A program is said to be fair terminating if it has no infinite execution trace that satisfies a given fairness constraint. Fair termination is an important property because program verification problems for arbitrary ω-regular temporal properties can be transformed to those of fair termination. Our method reduces the problem of disproving fair termination to higher-order model checking by using predicate abstraction and CEGAR. Given a program, we convert it to an abstract program that generates an approximation of the (possibly infinite) execution traces of the original program, so that the original program has a fair infinite execution trace if the tree generated by the abstract program satisfies a certain property. The method is a non-trivial extension of Kuwahara et al.’s method for disproving plain termination. Keiichi Watanabe, Ryosuke Sato 0001, Takeshi Tsukada, Naoki Kobayashi 0001 |
ICFP | 2 |
| 2016 | Temporal verification of higher-order functional programsabstractWe present an automated approach to verifying arbitrary omega-regular properties of higher-order functional programs. Previous automated methods proposed for this class of programs could only handle safety properties or termination, and our approach is the first to be able to verify arbitrary omega-regular liveness properties. Our approach is automata-theoretic, and extends our recent work on binary-reachability-based approach to automated termination verification of higher-order functional programs to fair termination published in ESOP 2014. In that work, we have shown that checking disjunctive well-foundedness of (the transitive closure of) the ``calling relation'' is sound and complete for termination. The extension to fair termination is tricky, however, because the straightforward extension that checks disjunctive well-foundedness of the fair calling relation turns out to be unsound, as we shall show in the paper. Roughly, our solution is to check fairness on the transition relation instead of the calling relation, and propagate the information to determine when it is necessary and sufficient to check for disjunctive well-foundedness on the calling relation. We prove that our approach is sound and complete. We have implemented a prototype of our approach, and confirmed that it is able to automatically verify liveness properties of some non-trivial higher-order programs. Akihiro Murase, Tachio Terauchi, Naoki Kobayashi 0001, Ryosuke Sato 0001, Hiroshi Unno 0001 |
POPL | 4 |
| 2015 | Predicate Abstraction and CEGAR for Disproving Termination of Higher-Order Functional Programs
Takuya Kuwahara, Ryosuke Sato 0001, Hiroshi Unno 0001, Naoki Kobayashi 0001 |
CAV (2) | 2 |
| 2015 | Verifying Relational Properties of Functional Programs by First-Order RefinementabstractMuch progress has been made recently on fully automated verification of higher-order functional programs, based on refinement types and higher-order model checking. Most of those verification techniques are, however, based on first-order refinement types, hence unable to verify certain properties of functions (such as the equality of two recursive functions and the monotonicity of a function, which we call relational properties). To relax this limitation, we introduce a restricted form of higher-order refinement types where refinement predicates can refer to functions, and formalize a systematic program transformation to reduce type checking/inference for higher-order refinement types to that for first-order refinement types, so that the latter can be automatically solved by using an existing software model checker. We also prove the soundness of the transformation, and report on preliminary implementation and experiments. Kazuyuki Asada, Ryosuke Sato 0001, Naoki Kobayashi 0001 |
PEPM | 2 |
| 2013 | Towards a scalable software model checker for higher-order programsabstractIn our recent paper, we have shown how to construct a fully-automated program verification tool (so called a "software model checker") for a tiny subset of functional language ML, by combining higher-order model checking, predicate abstraction, and CEGAR. This can be viewed as a higher-order counterpart of previous software model checkers for imperative languages like BLAST and SLAM. The naive application of the proposed approach, however, suffered from scalability problems, both in terms of efficiency and supported language features. To obtain more scalable software model checkers for full-scale functional languages, we propose a series of optimizations and extensions of the previous approach. Among others, we introduce (i) selective CPS transformation,(ii) selective predicate abstraction, and (iii) refined predicate discovery as optimization techniques; and propose (iv) functional encoding of recursive data structures and control operations to support a larger subset of ML. We have implemented the proposed methods, and obtained promising results. Ryosuke Sato 0001, Hiroshi Unno 0001, Naoki Kobayashi 0001 |
PEPM | 1 |
| 2011 | Predicate abstraction and CEGAR for higher-order model checkingabstractHigher-order model checking (more precisely, the model checking of higher-order recursion schemes) has been extensively studied recently, which can automatically decide properties of programs written in the simply-typed λ-calculus with recursion and finite data domains. This paper formalizes predicate abstraction and counterexample-guided abstraction refinement (CEGAR) for higher-order model checking, enabling automatic verification of programs that use infinite data domains such as integers. A prototype verifier for higher-order functional programs based on the formalization has been implemented and tested for several programs. Naoki Kobayashi 0001, Ryosuke Sato 0001, Hiroshi Unno 0001 |
PLDI | 2 |