Verification of Mutual Recursive Functional Programs

نویسندگان

  • Nikolaj Popov
  • Tudor Jebelean
چکیده

We present an environment for proving total correctness of mutual recursive functional programs. As usual, correctness is transformed into a set of first-order predicate logic formulae—verification conditions. As a distinctive feature of our method, these formulae are not only sufficient, but also necessary for the correctness. A specialized strategy for proving termination is developed. The detailed termination proofs may in many cases be avoided due to their reusability.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Towards Manipulation of Mutually Recursive Functions

In functional programming, Constructive Algorithmics is one of the promising approaches to program transformation, especially to fusion, in which a concept called hylomorphism plays quite an important role. However, previous studies have mainly focused on programs constructed by single recursive functions, whereas programs constructed by mutual recursion have been little investigated, particula...

متن کامل

A Practical Approach to Verification of Recursive Programs in Theorema extended abstract

We report work in progress concerning the theoretical basis and the implementation in the Theorema system of a methodology for the generation of verification conditions for recursive procedures, with the aim of practical verification of recursive programs. Proving total correctness is achieved by proving separately partial correctness and then termination. We develop a pattern for proving parti...

متن کامل

Verifying Safety of Functional Programs with Rosette/Unbound

The goal of unbounded program verification is to discover an inductive invariant that safely over-approximates all possible program behaviors. Functional languages featuring higher order and recursive functions become more popular due to the domain-specific needs of big data analytics, web, and security. We present Rosette/Unbound, the first program verifier for Racket exploiting the automated ...

متن کامل

Experimental Program Verification in the Theorema System

We describe practical experiments of program verification in the frame of the Theorema system. This includes both imperative programs (using Hoare logic), as well as functional programs (using fixpoint theory). For a certain class of imperative programs we are able to generate automatically the loop invariants and then verification conditions, by using combinatorial and algebraic techniques. Ve...

متن کامل

A Prototype Environment for Verification of Recursive Functional Programs

We present an experimental prototype environment for defining and verifying recursive functional programs, which is part of the Theorema system. A distinctive feature of our approach is the hint on ”what is wrong” in case of a verification failure. The prototype is designed in order to improve the education of future software engineers by exposing them to successful examples of using formal met...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009