8 research outputs found

    Domains for Higher-Order Games

    Get PDF
    We study two-player inclusion games played over word-generating higher-order recursion schemes. While inclusion checks are known to capture verification problems, two-player games generalize this relationship to program synthesis. In such games, non-terminals of the grammar are controlled by opposing players. The goal of the existential player is to avoid producing a word that lies outside of a regular language of safe words. We contribute a new domain that provides a representation of the winning region of such games. Our domain is based on (functions over) potentially infinite Boolean formulas with words as atomic propositions. We develop an abstract interpretation framework that we instantiate to abstract this domain into a domain where the propositions are replaced by states of a finite automaton. This second domain is therefore finite and we obtain, via standard fixed-point techniques, a direct algorithm for the analysis of two-player inclusion games. We show, via a second instantiation of the framework, that our finite domain can be optimized, leading to a (k+1)EXP algorithm for order-k recursion schemes. We give a matching lower bound, showing that our approach is optimal. Since our approach is based on standard Kleene iteration, existing techniques and tools for fixed-point computations can be applied.Comment: Conference version accepted for presentation and publication at the 42nd International Symposium on Mathematical Foundations of Computer Science (MFCS 2017

    Bounded Context Switching for Valence Systems

    Get PDF
    We study valence systems, finite-control programs over infinite-state memories modeled in terms of graph monoids. Our contribution is a notion of bounded context switching (BCS). Valence systems generalize pushdowns, concurrent pushdowns, and Petri nets. In these settings, our definition conservatively generalizes existing notions. The main finding is that reachability within a bounded number of context switches is in NPTIME, independent of the memory (the graph monoid). Our proof is genuinely algebraic, and therefore contributes a new way to think about BCS. In addition, we exhibit a class of storage mechanisms for which BCS reachability belongs to PTIME

    Parity to Safety in Polynomial Time for Pushdown and Collapsible Pushdown Systems

    Get PDF
    We give a direct polynomial-time reduction from parity games played over the configuration graphs of collapsible pushdown systems to safety games played over the same class of graphs. That a polynomial-time reduction would exist was known since both problems are complete for the same complexity class. Coming up with a direct reduction, however, has been an open problem. Our solution to the puzzle brings together a number of techniques for pushdown games and adds three new ones. This work contributes to a recent trend of liveness to safety reductions which allow the advanced state-of-the-art in safety checking to be used for more expressive specifications

    On the Upward/Downward Closures of Petri Nets

    Get PDF
    We study the size and the complexity of computing finite state automata (FSA) representing and approximating the downward and the upward closure of Petri net languages with coverability as the acceptance condition. We show how to construct an FSA recognizing the upward closure of a Petri net language in doubly-exponential time, and therefore the size is at most doubly exponential. For downward closures, we prove that the size of the minimal automata can be non-primitive recursive. In the case of BPP nets, a well-known subclass of Petri nets, we show that an FSA accepting the downward/upward closure can be constructed in exponential time. Furthermore, we consider the problem of checking whether a simple regular language is included in the downward/upward closure of a Petri net/BPP net language. We show that this problem is EXPSPACE-complete (resp. NP-complete) in the case of Petri nets (resp. BPP nets). Finally, we show that it is decidable whether a Petri net language is upward/downward closed

    Regular Separability of Well-Structured Transition Systems

    Get PDF
    We investigate the languages recognized by well-structured transition systems (WSTS) with upward and downward compatibility. Our first result shows that, under very mild assumptions, every two disjoint WSTS languages are regular separable: There is a regular language containing one of them and being disjoint from the other. As a consequence, if a language as well as its complement are both recognized by WSTS, then they are necessarily regular. In particular, no subclass of WSTS languages beyond the regular languages is closed under complement. Our second result shows that for Petri nets, the complexity of the backwards coverability algorithm yields a bound on the size of the regular separator. We complement it by a lower bound construction

    Zertifikate fĂĽr Automaten in feindlicher Umgebung

    No full text
    The automated verification of the runtime behavior of a program with respect to a specification is a difficult problem, as demonstrated by undecidability results due to Turing, Rice, and others. The automata-theoretic approach to verification consists of abstracting the program into an automaton, a restricted model of computation, while preserving the part of the program behavior that is relevant to the specification. The field of automata theory provides various classes of such automata and studies the trade-off between their expressiveness and the decidability and computational complexity of their algorithmic problems. When taking a language-theoretic approach, one associates to an automaton the sets of words it can generate and studies algorithmic problems in which the task is to decide properties of these languages. Decision procedures for automata resp. their languages can be used in verification by seeing the input automaton in isolation as a perfect model of the system that should be verified. This view, however, has two shortcomings. The first one is that because an automaton is an abstraction of the real system, one call to a decision procedure is oftentimes insufficient. Typically, a multitude of such procedure calls is needed, e.g. when using a refinement loop that improves the abstraction in each iteration, or when dealing with the verification of a concurrent system in which each component is considered separately. Overcoming this deficiency requires procedures that in addition to the Boolean answer to a decision problem also return a certificate, an easily verifiable proof justifying the yes/no answer. In a setting in which a decision procedure is invoked multiple times, the certificates produced by earlier calls can serve as an additional input for subsequent calls of the procedure, facilitating the verification process. The second shortcoming is that in many cases, the automaton under consideration is not isolated. It interacts with an environment that is hostile with respect to our goal of verifying the system. This hostile environment may stem from user input, communication with components not modeled as part of the system, unreliable network communication, or it may simply be the result of discarding some parts of the system when abstracting it into an automaton. Our claim is that in order to enable the automata-theoretic approach to verification, decision procedures for automata should provide certificates and take the hostile environment into account. This thesis provides such procedures for three different settings. In the first setting, we assume that communication with the system under consideration is done using an unreliable network that is either lossy or gainy. The observable output of the system is a subsequence resp. supersequence of the real output, which can be modeled as the downward resp. upward of the language of the system. It is known that such a language closure always stems from the simple class of regular languages, which in particular means that a representation for it can serve as a certificate. However, computing this representation is not trivial depending on the class of automata the initial system stems from. In this thesis, we consider Petri nets with coverability as the acceptance condition, a model that is well-known to be suitable as a representation for concurrent systems. We prove a collection of results that show how to construct representations of the downward and upward closures with optimal size and within optimal time for both Petri nets and restrictions thereof. The second setting is the compositional verification of a concurrent system. This approach tries to verify each component of the system on its own, avoiding the state explosion problem that plagues the verification of concurrent systems. When focusing on a single component, the rest of the components form an environment that has to be taken into account. We argue that the assume-guarantee approach to compositional verification is closely related to the problem of regular separability. Two languages are regularly separable if there is a regular language containing one and being disjoint from the other. This regular separator serves as a certificate for intersection-emptiness and it can be used as an overapproximation of the language it contains. We show that in the case of languages of well-structured transition system (WSTSes), a generalization of the aforementioned class of Petri net coverability languages, any two disjoint WSTS languages are regularly separable. From our proof, we obtain a construction of the separator. Finally, we consider games played on game arenas induced by automata. These games model situations in which two kinds of nondeterminism influence the behavior of the system. Usually, one type of nondeterminism is favorable to the goal of verifying the system, while the other type represents the hostile environment. This situation comes up e.g. when verifying branching systems or when solving synthesis problems. We present an approach to solving such games that is based on effective denotational semantics. That is, we turn the automaton into a system of equations whose least solution provides the winner of the game. Additionally, the winning strategy for the game, which can be seen as a certificate, can also be read off from the least solution. We design algorithms that are based on effective denotational semantics for various kinds of games induced by automata, including games defined by context-free grammars and higher-order recursion schemes. Lastly, we study the frontier of the decidability of games on arenas induced by valence systems over graph monoids and establish that context-free games are the only type of these games that can be solved.Die automatisierte Verifikation des Laufzeitverhaltens eines Programms entsprechend einer Spezifikation ist ein kompliziertes Problem, wie durch die Unentscheidbarkeitsresultate von Turing, Rice und anderen gezeigt wurde. Die automatentheoretische Herangehensweise an dieses Problem besteht darin, das Programm zu einem Automaten, einem eingeschränkten Berechnungsmodell, zu abstrahieren, dabei allerdings den Teil des Programmverhaltens, der für die Spezifikation relevant ist, zu erhalten. Das Gebiet der Automatentheorie stellt eine Reihe solcher Automaten zur Verfügung und untersucht den Zielkonflikt zwischen dem Erreichen möglichst hoher Ausdruckskraft und der Entscheidbarkeit und Berechnungskomplexität ihrer algorithmischen Probleme. Wenn ein sprachtheoretischer Ansatz gewählt wird, assoziiert man zu einem Automaten die Menge der von ihm generierten Wörter und untersucht algorithmische Probleme, bei denen es das Ziel ist, Eigenschaften dieser Sprachen zu entscheiden. Entscheidungsverfahren für Automaten bzw. für ihre Sprachen können in der Verifikation genutzt werden, indem man den gegebenen Automaten als ein perfektes Modell für das System sieht, welches verifiziert werden soll. Dieser Ansatz hat jedoch zwei Unzulänglichkeiten. Die Erste ist, dass ein einzelner Aufruf einer Entscheidungsprozedur meist nicht ausreicht, da ein Automat lediglich eine Abstraktion des zu verifizierenden Systems ist. Typischerweise ist eine Vielzahl von Prozeduraufrufen nötig, z.B. wenn eine Schleife genutzt wird, die die Abstraktion in jeder Iteration verfeinert, oder wenn ein nebenläufiges System verifiziert wird, bei dem jede Komponente einzeln betrachtet wird. Das Überwinden dieser Unzulänglichkeit erfordert Prozeduren, die zusätzlich zu ihrem Bool'schen Ergebnis auch ein Zertifikat liefern, also einen leicht überprüfbaren Beweis als Begründung für die Ja/Nein-Antwort. In einem Szenario, in dem eine Entscheidungsprozedur mehrfach aufgerufen wird, können die Zertifikate, die von früheren Aufrufen generiert werden, als zusätzliches Argument für weitere Aufrufe genutzt werden, um den Verifikationsprozess zu erleichtern. Die zweite Schwäche ist, dass der Automat meist nicht isoliert betrachtet werden kann. Er interagiert möglicherweise mit einer Umgebung, die sich gegenüber dem Verifikationsziel feindlich verhält. Diese Umgebung kann aus Benutzereingaben, der Kommunikation mit externen Komponenten, die im System nicht modelliert sind, unzuverlässiger Kommunikation über ein Netzwerk oder einfach daraus resultieren, dass bei der Abstraktion des Systems in einen Automaten manche Aspekte verloren gegangen sind. Unsere These ist, dass die Ermöglichung der automatentheoretischen Herangehensweise an die Verifikation von Programmen Entscheidungsprozeduren für Automaten benötigt, die Zertifikate liefern und die die feindliche Umgebung berücksichtigen. Die hier vorliegende Arbeit stellt solche Prozeduren für drei verschiedenen Szenarien zur Verfügung. Im ersten Szenario gehen wir davon aus, dass die Kommunikation mit dem zu betrachtenden System über ein unzuverlässiges Netzwerk abgewickelt wird, welches verlustbehaftet ist. Die beobachtbare Ausgabe des Systems ist eine Teilsequenz der tatsächlichen Ausgabe, was als Abschluss der Sprache des Systems nach unten modelliert werden kann. Analog dazu kann man eine Situation betrachten, in der die beobachtbare Ausgabe des Systems die tatsächliche Ausgabe als eine Teilsequenz enthält, was dem Abschluss der Sprache nach oben entspricht. Es ist bekannt, dass diese Sprachabschlüsse immer aus der einfachen Klasse der regulären Sprachen stammen, was insbesondere bedeutet, dass ein sie repräsentierender Automat als Zertifikat geeignet ist. Einen solchen Automaten zu berechnen ist jedoch ein nicht-triviales Problem, abhängig davon, aus welcher Klasse die ursprüngliche Sprache kommt. In dieser Arbeit betrachten wir Petri-Netze mit Überdeckbarkeit als Akzeptanzbedingung, eine Klasse von Automaten, welche bekannt dafür ist, für die Modellierung nebenläufiger Systeme geeignet zu sein. Wir beweisen eine Reihe von Resultaten, durch die wir zeigen, wie im Fall von Petri-Netzen Automaten optimaler Größe, die den Sprachabschluss nach unten bzw. oben repräsentieren, mit optimalem Zeitverbrauch berechnet werden können. Das zweite Szenario ist die kompositionelle Verifikation nebenläufiger Systeme. Diese Herangehensweise besteht darin, jede Komponente eines solchen Systems isoliert zu verifizieren, um damit das Problem der Zustandsraumexplosion zu vermeiden. Beim Betrachten einer einzelnen Komponente bilden die anderen Komponenten eine feindliche Umgebung, die berücksichtigt werden muss. Wir argumentieren, dass der sogenannte Assume-Guarantee-Ansatz für kompositionelle Verifikation mit dem regulären Separierbarkeitsproblem verwandt ist. Zwei Sprachen sind regulär separierbar, wenn es eine reguläre Sprache gibt, die eine der Sprachen beinhaltet, aber von der anderen disjunkt ist. Dieser reguläre Separator dient als Zertifikat für die Leerheit des Schnitts der Sprachen und er kann als Überapproximation für die Sprache, die er beinhaltet, verwendet werden. Wir zeigen, dass für die Sprachen von wohlstrukturierten Transitionssystemen (WSTS), eine Verallgemeinerung der oben genannten Petri-Netz-Überdeckbarkeitssprachen, gilt, dass zwei disjunkte WSTS-Sprachen immer regulär separierbar sind. Aus unserem Beweis resultiert eine Konstruktion für den Separator. Im letzten Szenario betrachten wir Spiele, die auf von Automaten induzierten Spielbrettern gespielt werden. Diese Spiele modellieren Situationen, in denen zwei Arten von Nichtdeterminismus das Verhalten des Systems beeinflussen. Typischerweise ist dabei eine Art des Nichtdeterminismus hilfreich bei der Verifizierung des Systems, während die andere die feindliche Umgebung repräsentiert. Diese Situation entsteht z.B. bei der Verifikation verzweigender Systeme und bei Syntheseproblemen. Wir stellen eine Herangehensweise zum Lösen solcher Spiele vor, die auf effektiver denotationeller Semantik beruht. Das bedeutet, dass wir den Automaten in ein Gleichungssystem übersetzen, dessen kleinste Lösung den Gewinner des Spiels liefert. Zusätzlich kann die Gewinnstrategie, welche als Zertifikat dient, auch von dieser kleinsten Lösung abgelesen werden. Wir entwerfen auf effektiver denotationeller Semantik basierende Algorithmen für mehrere durch Automaten induzierte Spiele, darunter Spiele, die durch kontextfreie Systeme sowie durch Rekursionsschemata höherer Ordnung definiert werden. Schlussendlich untersuchen wir die Grenze der Entscheidbarkeit von Spielen, die von Valenzsystemen über Graphmonoiden induziert sind, und zeigen, dass nur bei kontextfreien Spielen der Gewinner berechnet werden kann

    Summaries for Context-Free Games

    Get PDF
    We study two-player games played on the infinite graph of sentential forms induced by a contextfree grammar (that comes with an ownership partitioning of the non-terminals). The winning condition is inclusion of the derived terminal word in the language of a finite automaton. Our contribution is a new algorithm to decide the winning player and to compute her strategy. It is based on a novel representation of all plays starting in a non-terminal. The representation uses the domain of Boolean formulas over the transition monoid of the target automaton. The elements of the monoid are essentially procedure summaries, and our approach can be seen as the first summary-based algorithm for the synthesis of recursive programs. We show that our algorithm has optimal (doubly exponential) time complexity, that it is compatible with recent antichain optimizations, and that it admits a lazy evaluation strategy. Our preliminary experiments indeed show encouraging results, indicating a speed up of three orders of magnitude over a competitor.Peer reviewe
    corecore