To increase concurrency, these algorithms often completely dispose with locking, or only lock small parts of the structure. Finally, we show the application of our methods to verify a number of intricate data structure implementations correct.Įfficient implementations of data structures such as queues, stacks or hash-tables allow for concurrent access by many processes at the same time. Moreover, we evaluate the practical use of the logic in the domain of highly concurrent data structure implementations: We derive novel compositional proof methods for the central safety/liveness conditions of linearizability and lock-freedom. We mechanically derive various rely-guarantee rules for the compositional verification of partial/total correctness and absence of deadlock of concurrent programs in RGITL. Moreover, compositional reasoning breaks down the verification of a property of a concurrent program into smaller proof obligations that must be shown for the constituent subprograms. In particular, temporal logic makes it possible to intuitively specify both safety and liveness requirements for these programs. The logic incorporates several techniques that make the verification of such concurrent programs more tractable. To this end, we use the logic Rely-Guarantee Interval Temporal Logic (RGITL) that has been natively implemented in the interactive theorem prover KIV. This thesis takes up the challenge of formal specification and verification of concurrent programs with shared memory. Die Implementierung verwendet den Modellgenerator und Constraint Solver Kodkod. Die Technik wurde in Java implementiert und in das KIV System eingebaut. Wir haben formale Kriterien aufgestellt, die die Erhaltung der Semantik auf endlichen Teilmodellen und damit die Korrektheit des Ansatzes garantieren. Bei Axiomatisierungen der Operationen kann die resultierende Semantik auf unendlichen Strukturen sich von der Semantik auf endlichen Teilstrukturen unterscheiden. Die entwickelte Methodik ermöglicht automatische Fehlersuche in den algebraischen Spezifikationen der freien und nicht-freien Datentypen. Wir haben einen Ansatz zur Fehlersuche mittels endlicher Modellsuche entworfen und auf mehreren Fallstudien evaluiert. Die algebraischen Spezifikationen von abstrakten Datentypen bringen durch die Strukturierung gute Überschaubarkeit des Entwurfs und erlauben die Ausdrucksstärke der Logik der ersten Stufe. Abstrakte Datentypen eignen sich sehr gut für die High-Level Spezifikation von Software.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |