Combining Type Checking and Set Constraint Solving to Improve Automated Software Verification
Abstract
In this paper we show how prescritive type checking and constraint solving can be combined to increase automation during software verification. We do so by defining a type system and implementing a typechecker for {log} (read `setlog'), a Constraint Logic Programming (CLP) language and satisfiability solver based on set theory. Hence, we proceed as follows: a) a type system for {log} is defined; b) the constraint solver is proved to be safe w.r.t. the type system; c) the implementation of a concrete typechecker is presented; d) the integration of type checking and set constraint solving to increase automation during software verification is discussed; and f) two industrial-strength case studies are presented where this combination is used with very good results. Under consideration in Theory and Practice of Logic Programming (TPLP)
- Publication:
-
arXiv e-prints
- Pub Date:
- May 2022
- DOI:
- 10.48550/arXiv.2205.01713
- arXiv:
- arXiv:2205.01713
- Bibcode:
- 2022arXiv220501713C
- Keywords:
-
- Computer Science - Logic in Computer Science;
- Computer Science - Programming Languages
- E-Print:
- Under consideration in Theory and Practice of Logic Programming (TPLP)