Complete Abstractions for Verification of Polymorphic Functions with Equality -- extended version

Abstract

This paper is concerned with automatically proving properties on polymorphic programs over algebraic data types by reducing the verification of such properties to the verification of properties on monomorphised, abstract programs. For programs without polymorphic equality, the reduction exploits Wadler's "Theorem for Free". For programs using polymorphic equality, we provide a sufficient condition for the reduction to hold. The condition relies on the existence of a locally complete abstraction function whose image is a finite set of arbitrary constants chosen for abstracting primitive values. When such a condition exists, the number of arbitrary constants depends on the functions under concern and the properties to prove. We present an implementation that automatically computes the number of constants and, thus, ensures that proving the polymorphic case with equality can be reduced to the proof carried out on a monomorphic instance of the program. Experimental results show that this reduction is indeed possible with small abstract domains. Target programs support user-defined recursive ADTs and recursive first-order functions.</div

Similar works

Full text

thumbnail-image

INRIA a CCSD electronic archive server

redirect
Last time updated on 25/01/2026

This paper was published in INRIA a CCSD electronic archive server.

Having an issue?

Is data on this page outdated, violates copyrights or anything else? Report the problem now and we will take corresponding actions after reviewing your request.

Licence: info:eu-repo/semantics/OpenAccess