TY - JOUR
T1 - Refinement type checking via assertion checking
AU - Sato, Ryosuke
AU - Asada, Kazuyuki
AU - Kobayashi, Naoki
N1 - Publisher Copyright:
© 2015 Information Processing Society of Japan.
PY - 2015/11/15
Y1 - 2015/11/15
N2 - A refinement type can be used to express a detailed specification of a higher-order functional program. Given a refinement type as a specification of a program, we can verify that the program satisfies the specification by checking that the program has the refinement type. Refinement type checking/inference has been extensively studied and a number of refinement type checkers have been implemented. Most of the existing refinement type checkers, however, need type annotations, which is a heavy burden on users. To overcome this problem, we reduce a refinement type checking problem to an assertion checking problem, which asks whether the assertions in a program never fail; and then we use an existing assertion checker to solve it. This reduction enables us to construct a fully automated refinement type checker by using a state-of-the-art fully automated assertion checker. We also prove the soundness and the completeness of the reduction, and report on implementation and preliminary experiments.
AB - A refinement type can be used to express a detailed specification of a higher-order functional program. Given a refinement type as a specification of a program, we can verify that the program satisfies the specification by checking that the program has the refinement type. Refinement type checking/inference has been extensively studied and a number of refinement type checkers have been implemented. Most of the existing refinement type checkers, however, need type annotations, which is a heavy burden on users. To overcome this problem, we reduce a refinement type checking problem to an assertion checking problem, which asks whether the assertions in a program never fail; and then we use an existing assertion checker to solve it. This reduction enables us to construct a fully automated refinement type checker by using a state-of-the-art fully automated assertion checker. We also prove the soundness and the completeness of the reduction, and report on implementation and preliminary experiments.
UR - http://www.scopus.com/inward/record.url?scp=84947233320&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84947233320&partnerID=8YFLogxK
U2 - 10.2197/ipsjjip.23.827
DO - 10.2197/ipsjjip.23.827
M3 - Article
AN - SCOPUS:84947233320
SN - 0387-5806
VL - 23
SP - 827
EP - 834
JO - Journal of information processing
JF - Journal of information processing
IS - 6
ER -