4 research outputs found

    Proving equivalence between imperative and MapReduce implementations using program transformations

    Get PDF
    Distributed programs are often formulated in popular functional frameworks like MapReduce, Spark and Thrill, but writing efficient algorithms for such frameworks is usually a non-trivial task. As the costs of running faulty algorithms at scale can be severe, it is highly desirable to verify their correctness. We propose to employ existing imperative reference implementations as specifications for MapReduce implementations. To this end, we present a novel verification approach in which equivalence between an imperative and a MapReduce implementation is established by a series of program transformations. In this paper, we present how the equivalence framework can be used to prove equivalence between an imperative implementation of the PageRank algorithm and its MapReduce variant. The eight individual transformation steps are individually presented and explained

    НаправляСмый свойством поиск рСляционных ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²

    Get PDF
    Property Directed Reachability (PDR) is an efficient and scalable approach to solving systems of symbolic constraints also known as Constrained Horn Clauses (CHC). In the case of non-linear CHCs, which may arise, e.g., from relational verification tasks, PDR aims to infer an inductive invariant for each uninterpreted predicate. However, in many practical cases this reasoning is not successful, as invariants should be derived for groups of predicates instead of individual predicates. The article describes a novel algorithm that identifies these groups automatically and complements the existing PDR technique. The key feature of the algorithm is that it does not require a possibly expensive synchronization transformation over the system of CHCs. We have implemented the algorithm on top of a up-to-date CHC solver Spacer. Our experimental evaluation shows that for some CHC systems, on which existing solvers diverge, our tool is able to discover relational invariants.Π”ΠΎΡΡ‚ΠΈΠΆΠΈΠΌΠΎΡΡ‚ΡŒ, направляСмая свойством, (Property Directed Reachability, PDR) β€” эффСктивный ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ систСм ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, извСстных ΠΊΠ°ΠΊ Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ‚Ρ‹ Π₯ΠΎΡ€Π½Π° с ограничСниями (Constrained Horn Clauses, CHC). Π’ случаС Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… систСм Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΈΠ· Π·Π°Π΄Π°Ρ‡ рСляционной Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, PDR Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Π΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π΅ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π½ΠΎΠ³ΠΎ символа. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ автоматичСский Π²Ρ‹Π²ΠΎΠ΄ Ρ‚Π°ΠΊΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π΅ удаётся, Ρ‚.ΠΊ. ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ для Π³Ρ€ΡƒΠΏΠΏ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π½Ρ‹Ρ… символов вмСсто ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π½Ρ‹Ρ… символов. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ описан Π½ΠΎΠ²Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, автоматичСски ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚Π°ΠΊΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈ ΠΎΠ±ΠΎΠ±Ρ‰Π°ΡŽΡ‰ΠΈΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ PDR. ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ трансформации систСмы Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ‚ΠΎΠ² Π₯ΠΎΡ€Π½Π°. Алгоритм Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π°Π΄ соврСмСнным Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»Π΅ΠΌ Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ‚ΠΎΠ² Π₯ΠΎΡ€Π½Π° Spacer. ЭкспСримСнты ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ получСнная рСализация ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ рСляционныС ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСм Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ‚ΠΎΠ², Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»ΠΈ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ

    На ΠΏΡƒΡ‚ΠΈ ΠΊ автоматичСской Π΄Π΅Π΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ C-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с Sisal-Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ Π² систСмС C-lightVer

    Get PDF
    The C-lightVer system is developed in IIS SB RAS for C-program deductive verification. C-kernel is an intermediate verification language in this system. Cloud parallel programming system (CPPS) is also developed in IIS SB RAS. Cloud Sisal is an input language of CPPS. The main feature of CPPS is implicit parallel execution based on automatic parallelization of Cloud Sisal loops. Cloud-Sisal-kernel is an intermediate verification language in the CPPS system. Our goal is automatic parallelization of such a superset of C that allows implementing automatic verification. Our solution is such a superset of C-kernel as C-Sisal-kernel. The first result presented in this paper is an extension of C-kernel by Cloud-Sisal-kernel loops. We have obtained the C-Sisal-kernel language. The second result is an extension of C-kernel axiomatic semantics by inference rule for Cloud-Sisal-kernel loops. The paper also presents our approach to the problem of deductive verification automation in the case of finite iterations over data structures. This kind of loops is referred to as definite iterations. Our solution is a composition of symbolic method of verification of definite iterations, verification condition metageneration and mixed axiomatic semantics method. Symbolic method of verification of definite iterations allows defining inference rules for these loops without invariants. Symbolic replacement of definite iterations by recursive functions is the base of this method. Obtained verification conditions with applications of recursive functions correspond to logical base of ACL2 prover. We use ACL2 system based on computable recursive functions. Verification condition metageneration allows simplifying implementation of new inference rules in a verification system. The use of mixed axiomatic semantics results to simpler verification conditions in some cases.Π’ Π˜Π½ΡΡ‚ΠΈΡ‚ΡƒΡ‚Π΅ систСм ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ БО РАН разрабатываСтся систСма C-lightVer для Π΄Π΅Π΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ C-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. C-kernel являСтся ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ языком Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ систСмС. БистСма ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования (CPPS) Ρ‚Π°ΠΊΠΆΠ΅ разрабатываСтся Π² Π˜Π½ΡΡ‚ΠΈΡ‚ΡƒΡ‚Π΅ систСм ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ БО РАН. Cloud Sisal являСтся Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ языком систСмы CPPS. Π“Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ систСмы CPPS являСтся нСявноС ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ исполнСниС, основанноС Π½Π° автоматичСском распараллСливании Ρ†ΠΈΠΊΠ»ΠΎΠ² Cloud Sisal. Cloud-Sisal-kernel являСтся ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ языком Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² систСмС CPPS. НашСй Ρ†Π΅Π»ΡŒΡŽ являСтся автоматичСскоС распараллСливаниС Ρ‚Π°ΠΊΠΎΠ³ΠΎ надмноТСства языка C, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ. Нашим Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся Ρ‚Π°ΠΊΠΎΠ΅ надмноТСство языка C-kernel, ΠΊΠ°ΠΊ язык C-Sisal-kernel. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ, прСдставлСнным Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅, являСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ языка C-kernel Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ языка Cloud-Sisal-kernel. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ язык C-Sisal-kernel. Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ, прСдставлСнным Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅, являСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ аксиоматичСской сСмантики языка C-kernel ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄Π° для Ρ†ΠΈΠΊΠ»ΠΎΠ² языка Cloud-Sisal-kernel. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ прСдставлСн наш ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π΅Π΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² случаС Ρ„ΠΈΠ½ΠΈΡ‚Π½Ρ‹Ρ… ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ структурами Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΈΠ΅ Ρ†ΠΈΠΊΠ»Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„ΠΈΠ½ΠΈΡ‚Π½Ρ‹ΠΌΠΈ итСрациями. Нашим Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся композиция символичСского ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„ΠΈΠ½ΠΈΡ‚Π½Ρ‹Ρ… ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΌΠ΅Ρ‚Π°Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ условий коррСктности ΠΈ смСшанной аксиоматичСской сСмантики. БимволичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„ΠΈΠ½ΠΈΡ‚Π½Ρ‹Ρ… ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Ρ‹Π²ΠΎΠ΄Π° для Ρ‚Π°ΠΊΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠ² Π±Π΅Π· ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². БимволичСская Π·Π°ΠΌΠ΅Π½Π° Ρ„ΠΈΠ½ΠΈΡ‚Π½Ρ‹Ρ… ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ рСкурсивными функциями являСтся основой Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ условия коррСктности с примСнСниями рСкурсивных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ логичСской основС систСмы Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ACL2. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ систСму ACL2, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° вычислимых рСкурсивных функциях. ΠœΠ΅Ρ‚Π°Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡ условий коррСктности позволяСт ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» Π²Ρ‹Π²ΠΎΠ΄Π° Π² систСмС Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. ИспользованиС смСшанной аксиоматичСской сСмантики ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΊ Π±ΠΎΠ»Π΅Π΅ простым условиям коррСктности
    corecore