A Synergy Between Model-Checking and Type Inference for the Verification of Value-Passing Higher-Order Processes [chapter]

Mourad Debbabi, Abdelkader Benzakour, Béchir Ktari
1998 Lecture Notes in Computer Science  
In this paper, we present a formal verification framework for higherorder value-passing process algebra. This framework stems from an established synergy between type inference and model-checking. The language considered here is based on a sugared version of an implicitly typed λ-calculus extended with higher-order synchronous concurrency primitives. First, we endow such a syntax with a semantic theory made of a static semantics together with a dynamic semantics. The static semantics consists
more » ... an annotated type system. The dynamic semantics is operational and comes as a two-layered labeled transition system. The dynamic semantics is abstracted into a transitional semantics so as to make finite some infinite-state processes. We describe the syntax and the semantics of a verification logic that allows one to specify properties. The logic is an extension of the modal µ-calculus for handling higher-order processes, value-passing and return of results. This research has been funded by a grant from FCAR (Fonds pour la Formation de Chercheurs et l'Aide la Recherche), Quebec, Canada. Related Work The first attempt in the design of concurrent and distributed languages mainly consisted in extending some imperative languages with concurrency and distribution primitives. Accordingly, this gave rise to languages such as Ada, Chill, Modula 2 and Occam. Lately, a great deal of interest has been expressed in concurrent and functional programming. This interest is motivated by the fact that functional programming demonstrated an extensive support of abstraction through the use of abstract data types and the composition of higher-order functions. Accordingly, plenty of languages (Concurrent ML [19, 20] , Facile [11], LCS [2], etc.), calculi (CHOCS [23, 24], π-calculus [15, 16]) and semantic theories [3, 4, 8, 10, 13, 17, 18] has been advanced. Verification techniques could be structured in two major approaches: deductive techniques and semantic-based techniques. Deductive techniques consist of the use of
doi:10.1007/3-540-49253-4_17 fatcat:laam6t24hff4teqodaoxmnsywu