4 research outputs found

    Graph Based Reduction of Program Verification Conditions

    Get PDF
    Increasing the automaticity of proofs in deductive verification of C programs is a challenging task. When applied to industrial C programs known heuristics to generate simpler verification conditions are not efficient enough. This is mainly due to their size and a high number of irrelevant hypotheses. This work presents a strategy to reduce program verification conditions by selecting their relevant hypotheses. The relevance of a hypothesis is determined by the combination of a syntactic analysis and two graph traversals. The first graph is labeled by constants and the second one by the predicates in the axioms. The approach is applied on a benchmark arising in industrial program verification

    C# PROGRAM VERIFICATION PROBLEMS:\ud SOLUTION BY A THREE-LEVEL METHOD\ud

    Get PDF
    The evolution of formal methods allowed us to overcome many obstacles in verification of procedural programs. However, wide spreading of object-oriented languages has brought new challenges, even in the case of sequential programs. These problems were thoroughly exam-ined by ESC/Java and Spec#, though in many cases they just state the presence of the challenge. This paper presents an overview of some problematic issues and a three-level approach to their solution in the C#-light project.----------------\ud Развитие формальных методов позволило решить многие вопросы верификации процедурных программ. Однако, широкое распространение объектно-ориентированных языков выявило новые проблемы даже для последовательных программ. Эти проблемы были детально исследованы в проектах ESC/Java и Spec#, но решение предлагалось в редких случаях. В этой статье рассмотрены некоторые из проблем и их решение с помощью трехуровневого подхода в проекте C#-light.\u

    C# program verification problems: solution by a three-level method

    Get PDF
    The evolution of formal methods allowed us to overcome many obstacles in verification of procedural programs. However, wide spreading of object-oriented languages has brought new challenges, even in the case of sequential programs. These problems were thoroughly exam-ined by ESC/Java and Spec#, though in many cases they just state the presence of the challenge. This paper presents an overview of some problematic issues and a three-level approach to their solution in the C#-light project.Развитие формальных методов позволило решить многие вопросы верификации процедурных программ. Однако, широкое распространение объектно-ориентированных языков выявило новые проблемы даже для последовательных программ. Эти проблемы были детально исследованы в проектах ESC/Java и Spec#, но решение предлагалось в редких случаях. В этой статье рассмотрены некоторые из проблем и их решение с помощью трехуровневого подхода в проекте C#-light

    Simplification of boolean verification conditions

    Get PDF
    AbstractThe correctness problem for hardware and software systems can often be reduced to the validity problem for propositional or predicate logic. However, the size of the formulas to be validated grows faster than the size of the system under investigation, and the complexity of the validation procedure makes this approach practically intractable for large programs. We introduce a strategy for dealing with this problem in the propositional case, corresponding, e.g. to digital circuits and concurrent synchronization algorithms. Efficiently computable criteria are used to assess the mutual relevance of formulas and subformulas. They are based on the notions of interpolation and polarity, and allow to detect and discard provably irrelevant parts of boolean verification conditions. These criteria lead to a simplification and validation method, whose efficiency is investigated both theoretically and practically
    corecore