2,372 research outputs found
Combining k-Induction with Continuously-Refined Invariants
Bounded model checking (BMC) is a well-known and successful technique for
finding bugs in software. k-induction is an approach to extend BMC-based
approaches from falsification to verification. Automatically generated
auxiliary invariants can be used to strengthen the induction hypothesis. We
improve this approach and further increase effectiveness and efficiency in the
following way: we start with light-weight invariants and refine these
invariants continuously during the analysis. We present and evaluate an
implementation of our approach in the open-source verification-framework
CPAchecker. Our experiments show that combining k-induction with
continuously-refined invariants significantly increases effectiveness and
efficiency, and outperforms all existing implementations of k-induction-based
software verification in terms of successful verification results.Comment: 12 pages, 5 figures, 2 tables, 2 algorithm
Witness-based validation of verification results with applications to software-model checking
In the scientific world, formal verification is an established engineering technique to ensure the correctness of hardware and software systems. Because formal verification is an arduous and error-prone endeavor, automated solutions are desirable, and researchers continue to develop new algorithms and optimize existing ones to push the boundaries of what can be verified automatically. These efforts do not go unnoticed by the industry. Hardware-circuit designs, flight-control systems, and operating-system drivers are just a few examples of systems where formal verification is already part of the quality-assurance repertoire. Nevertheless, the primary fields of application for formal verification are mainly those where errors carry a high risk of significant damage, either financial or physical, because the costs of formal verification are considered to be too high for most other projects, despite the fact that the research community has made vast advancements regarding the effectiveness and efficiency of formal verification techniques in the last decades. We present and address two potential reasons for this discrepancy that we identified in the field of automated formal software verification.
(1) Even for experts in the field, it is often difficult to decide which of the multitude of available techniques is the most suitable solution they should recommend to solve a given verification problem. Moreover, even if a suitable solution is found for a given system, there is no guarantee that the solution is sustainable as the system evolves. Consequently, the cost of finding and maintaining a suitable approach for applying formal software verification to real-world systems is high. (2) Even assuming that a suitable and maintainable solution for applying formal software verification to a given system is found and verification results could be obtained, developers of the system still require further guidance towards making practical use of these results, which often differ significantly from the results they obtain from classical quality-assurance techniques they are familiar with, such as testing.
To mitigate the first issue, using the open-source software-verification framework CPAchecker, we investigate several popular formal software-verification techniques such as predicate abstraction, Impact, bounded model checking, k -induction, and PDR, and perform an extensive and rigorous experimental study to identify their strengths and weaknesses regarding their comparative effectiveness and efficiency when applied to a large and established benchmark set, to provide a basis for choosing the best technique for a given problem.
To mitigate the second issue, we propose a concrete standard format for the representation and communication of verification results that raises the bar from plain "yes" or "no" answers to verification witnesses, which are valuable artifacts of the verification process that contain detailed information discovered during the analysis. We then use these verification witnesses for several applications: To increase the trust in verification results, we irst develop several independent validators based on violation witnesses, i.e. verification witnesses that represent bugs detected by a verifier. We then extend our validators to also erify the verification results obtained from a successful verification, which are represented y correctness witnesses. Lastly, we also develop an interactive web service to store and retrieve these verification witnesses, to provide online validation to quickly de-prioritize likely wrong results, and to graphically visualize the witnesses, as an example of how verification can be integrated into a development process. Since the introduction of our proposed standard format for verification witnesses, it has been adopted by over thirty different software verifiers, and our witness-based result-validation tools have become a core component in the scoring process of the International Competition on Software Verification.In der Welt der Wissenschaft gilt die Formale Verifikation als etablierte Methode, die Korrektheit von Hard- und Software zu gewährleisten. Da die Anwendung formaler Verifikation jedoch selbst ein beschwerliches und fehlerträchtiges Unterfangen darstellt, ist es erstrebenswert, automatisierte Lösungen dafür zu finden. Forscher entwickeln daher immer wieder neue Algorithmen Formaler Verifikation oder verbessern bereits existierende Algorithmen, um die Grenzen der Automatisierbarkeit Formaler Verifikation weiter und weiter zu dehnen. Auch die Industrie ist bereits auf diese Anstrengungen aufmerksam geworden. Flugsteuerungssysteme, Betriebssystemtreiber und Entwürfe von Hardware-Schaltungen sind nur einzelne Beispiele von Systemen, bei denen Formale Verifikation bereits heute einen festen Stammplatz im Arsenal der Qualitätssicherungsmaßnahmen eingenommen hat. Trotz alledem bleiben die primären Einsatzgebiete Formaler Verifikation jene, in denen Fehler ein hohes Risiko finanzieller oder physischer Schäden bergen, da in anderen Projekten die Kosten des Einsatzes Formaler Verifikation in der Regel als zu hoch empfunden werden, unbeachtet der Tatsache, dass es der Forschungsgemeinschaft in den letzten Jahrzehnten gelungen ist, enorme Fortschritte bei der Verbesserung der Effektivität und Effizienz Formaler Verifikationstechniken zu machen. Wir präsentieren und diskutieren zwei potenzielle Ursachen für diese Diskrepanz zwischen Forschung und Industrie, die wir auf dem Gebiet der Automatisierten Formalen Softwareverifikation identifiziert haben.
(1) Sogar Fachleuten fällt es oft schwer, zu entscheiden, welche der zahlreichen verfügbaren Methoden sie als vielversprechendste Lösung eines gegebenen Verifikationsproblems empfehlen sollten. Darüber hinaus gibt es selbst dann, wenn eine passende Lösung für ein gegebenes System gefunden wird, keine Garantie, dass sich diese Lösung im Laufe der Evolution des Systems als Nachhaltig erweisen wird. Daher sind sowohl die Wahl als auch der Unterhalt eines passenden Ansatzes zur Anwendung Formaler Softwareverifikation auf reale Systeme kostspielige Unterfangen. (2) Selbst unter der Annahme, dass eine passende und wartbare Lösung zur Anwendung Formaler Softwareverifikation auf ein gegebenes System gefunden und Verifikationsergebnisse erzielt werden, benötigen die Entwickler des Systems immer noch weitere Unterstützung, um einen praktischen Nutzen aus den Ergebnissen ziehen zu können, die sich oft maßgeblich unterscheiden von den Ergebnissen jener klassischen Qualitätssicherungssysteme, mit denen sie vertraut sind, wie beispielsweise dem Testen.
Um das erste Problem zu entschärfen, untersuchen wir unter Verwendung des Open-Source-Softwareverifikationsystems CPAchecker mehrere beliebte Formale Softwareverifikationsmethoden, wie beispielsweise Prädikatenabstraktion, Impact, Bounded-Model-Checking, k-Induktion und PDR, und führen umfangreiche und gründliche experimentelle Studien auf einem großen und etablierten Konvolut an Beispielprogrammen durch, um die Stärken und Schwächen dieser Methoden hinsichtlich ihrer relativen Effektivität und Effizienz zu ermitteln und daraus eine Entscheidungsgrundlage für die Wahl der besten Lösung für ein gegebenes Problem abzuleiten.
Um das zweite Problem zu entschärfen, schlagen wir ein konkretes Standardformat zur Modellierung und zum Austausch von Verifikationsergebnissen vor, welches die Ansprüche an Verifikationsergebnisse anhebt, weg von einfachen "ja/nein"-Antworten und hin zu Verifikationszeugen (Verification Witnesses), bei denen es sich um wertvolle Produkte des Verifikationsprozesses handelt und die detaillierte, während der Analyse entdeckte Informationen enthalten. Wir stellen mehrere Anwendungsbeispiele für diese Verifikationszeugen vor: Um das Vertrauen in Verifikationsergebnisse zu erhöhen, entwickeln wir zunächst mehrere, voneinander unabhängige Validatoren, die Verletzungszeugen (Violation Witnesses) verwenden, also Verifikationszeugen, welche von einem Verifikationswerkzeug gefundene Spezifikationsverletzungen darstellen, Diese Validatoren erweitern wir anschließend so, dass sie auch in der Lage sind, die Verifikationsergebnisse erfolgreicher Verifikationen, also Korrektheitsbehauptungen, die durch Korrektheitszeugen (Correctness Witnesses) dokumentiert werden, nachzuvollziehen. Schlussendlich entwickeln wir als Beispiel für die Integrierbarkeit Formaler Verifikation in den Entwicklungsprozess einen interaktiven Webservice für die Speicherung und den Abruf von Verifikationzeugen, um einen Online-Validierungsdienst zur schnellen Depriorisierung mutmaßlich falscher Verifikationsergebnisse anzubieten und Verifikationszeugen graphisch darzustellen. Unser Vorschlag für ein Standardformat für Verifikationszeugen wurde inzwischen von mehr als dreißig verschiedenen Softwareverifikationswerkzeugen übernommen und unsere zeugen-basierten Validierungswerkzeuge sind zu einer Kernkomponente des Bewertungsschemas des Internationalen Softwareverifikationswettbewerbs geworden
How identity and role influence russian foreign policy behavior in the Middle East: a focus on the israeli-palestinian conflict
Following Tsygankov’s (2012) premise that foreign policy actions are inseparable from their social
context, the present study applies a constructivist approach to Russia's behavior in the Middle East, with a
focus on the Israeli-Palestinian conflict. It analyzes a) which Russian identity and role conceptions have
been established, b) how they have evolved over time, and c) whether discrepancies between Russia’s self
and external perception exist. A discourse analysis serves as analytical framework, evaluating Russian
foreign-policy behavior on three levels: state, society and international. These are reflected in official
documents issued by the Russian government, as well as Russian and Western media coverage.
The analysis concludes that Russian foreign policy in the Middle East is shaped through Russia’s carefully
created cooperative social structures with regional actors, which enable Russia to assume a mediatorbalancer role in local conflicts. Meanwhile, its relation to the West continues to play a dominant part in
Russia’s identity construction, which is reflected in its foreign-policy behavior throughout the Middle East.
While both non-state Russian and Western media stress the great power identity in the Russian discourse,
Russian authorities do not emphasize power as a motive for their actions in the Israeli-Palestinian conflict.
On the other hand, opposed to their importance in the Middle Eastern region in general, Russia’s firm
opposition to external regime change and its Eurasian multi-ethnic identity do not seem to influence
Russia’s behavior in the Israeli-Palestinian conflict in particular.Seguindo a premissa de Tsygankov (2012) em que as ações de polĂtica externa sĂŁo inseparáveis do seu
contexto social, este estudo aplica essa abordagem construtivista ao comportamento da RĂşssia no MĂ©dio
Oriente com um foco no conflito Israelo-Palestiniano. O estudo analisa a) qual a identidade e as conceções
de papel Russas que tĂŞm sido estabelecidas, b) como essas tĂŞm evoluĂdo com o tempo, e c) se existem
discrepâncias entre a autoperceção Russa e a perceção externa da mesma. A análise de discurso serve como
estrutura analĂtica avaliando o comportamento da polĂtica externa Russa em trĂŞs nĂveis: estatal, social e
internacional. Estes estĂŁo refletidos nos documentos oficiais publicados pelo governo Russo, como
também na cobertura dos meios de comunicação Russos e Ocidentais.
A análise conclui que a polĂtica externa Russa no MĂ©dio Oriente Ă© modelada atravĂ©s das estruturas sociais
de cooperação cuidadosamente criadas pela Rússia com os atores regionais, o que permite à Rússia assumir
o papel de mediador-equilibrador nos conflitos locais. Entretanto, a sua relação com o Ocidente continua
a desempenhar um papel dominante na construção de identidade da Rússia, o que se reflete no seu
comportamento de polĂtica externa em todo o MĂ©dio Oriente. Enquanto ambos os meios de comunicação
nĂŁo-estatais Russos e Ocidentais destacam a identidade de Grande PotĂŞncia no discurso Russo, as
autoridades Russas não realçam o poder como uma motivação para as suas ações no conflito IsraeloPalestiniano. Por outro lado, em contraste à sua importância na região do Médio Oriente em geral, a
oposição firme da Rússia a mudanças de regime externas e a sua multiétnica identidade Euroasiática não
parecem influenciar o comportamento Russo no conflito Israelo-Palestiniano em particular
Archaeology and autonomies: the legal framework of heritage management in a new Bolivia
The 2009 Bolivian Constitution significantly changed the structure of the state and paved the way for the creation of regional, local, and even indigenous autonomies. These autonomies are charged with the management of archaeological sites and museums within their territory. This article answers the question of who currently owns the Bolivian past, it stems from concerns raised at the 2011 renewal hearing of the Memorandum of Understanding preventing the import of illicit Bolivian antiquities into the United States. By combining an analysis of recent legal changes related to the creation of the autonomies and a short discussion of a notable case study of local management of a Bolivian archaeological site, this article offers a basic summary of the legal framework in which Bolivian archaeology and heritage management functions and some preliminary recommendations for governments and professionals wishing to work with Bolivian authorities at the state and local level
Plant pathology: Many roads lead to resistance
Recent studies suggest that plant disease-resistance responses use multiple signaling pathways acting subsequent to pathogen recognition, and that phosphorylation cascades play a prominent role in the recognition and execution of foreign invaders
Benchmarking in cluster analysis: A white paper
To achieve scientific progress in terms of building a cumulative body of
knowledge, careful attention to benchmarking is of the utmost importance. This
means that proposals of new methods of data pre-processing, new data-analytic
techniques, and new methods of output post-processing, should be extensively
and carefully compared with existing alternatives, and that existing methods
should be subjected to neutral comparison studies. To date, benchmarking and
recommendations for benchmarking have been frequently seen in the context of
supervised learning. Unfortunately, there has been a dearth of guidelines for
benchmarking in an unsupervised setting, with the area of clustering as an
important subdomain. To address this problem, discussion is given to the
theoretical conceptual underpinnings of benchmarking in the field of cluster
analysis by means of simulated as well as empirical data. Subsequently, the
practicalities of how to address benchmarking questions in clustering are dealt
with, and foundational recommendations are made
- …