Filtern
Dokumenttyp
Schlagworte
- E-KRHyper (2)
- Automatisches Beweisverfahren (1)
- Calculus (1)
- E-Hyper Tableau (1)
- Logik (1)
- Oracle Generation (1)
- Oraklegenerierung (1)
- Schlussfolgern (1)
- Softwaretest (1)
- Softwaretesting (1)
- Specification (1)
- Spezifikation (1)
- Test Generation (1)
- Testgenerierung (1)
- Theorem prover (1)
- distinct object identifiers (1)
- unique name assumption (1)
Institut
- Fachbereich 4 (2)
- Institut für Informatik (2)
This minor thesis shows a way to optimise a generated oracle to achieve shorter runtimes. Shorter runtimes of test cases allows the execution of more test cases in the same time. The execution of more test cases leads to a higher confidence in the software-quality. Oracles can be derived from specifications. However specifications are used for different purposes and therefore are not necessarily executable. Even if the are executable it might be with only a high runtime. Those two facts come mostly from the use of quantifiers in the logic. If the quantifier-range is not bounded, respectively if the bounds are outside the target language-datatype-limits, the specification is too expressive to be exported into a program. Even if the bounds inside the used datatype-limits, the quantification is represented as a loop which leads to a runtime blowup, especially if quantifiers are nested. This work explains four different possibilities to reduce the execution time of the oracle by manipulating the quantified formular whereas this approach is only applicable if the quantified variables are of type Integer.
In einigen Bereichen des automatischen Theorembeweisens benötigt man das Wissen, dass Konstanten paarweise ungleich sind. Um dieses zu erreichen, fügt man Fakten, die dieses Wissen explizit angeben, zu den Wissensbasen hinzu. Wenn man diese Eigenschaft für viele Konstanten definieren muss, wird die Klauselmenge der Wissensbasen schnell sehr umfangreich und wegen der vielen - eigentlich irrelevanten - Ungleichheiten kann man den Blick auf das eigentlich formalisierte Problem verlieren. Da die Größe der Wissensbasis in vielen Fällen Einfluss auf die Geschwindigkeit hat, ist es auch aus diesem Grund sinnvoll, die Anzahl dieser Fakten gering zu halten. Die unique name assumption erlaubt auf die Einführung der Ungleichheits-Fakten zu verzichten, da sie festlegt, dass zwei Konstanten genau dann gleich sind, wenn ihre Interpretationen identisch sind. Auf diesem Wege lässt sich das Aufblähen von Wissensbasen mit Ungleichheits-Fakten verhinde. In dieser Arbeit wird der E-Hyper-Tableau-Kalkül erweitert um die unique name assumption nutzen zu können. Der in dieser Arbeit entwickelte Kalkül ist vollständig und korrekt, was durch formale Beweise in dieser Arbeit belegt wird. Um zu zeigen, dass die native Behandlung von Ungleichheiten dem Einführen von Ungleichheits-Fakten überlegen ist, wird der Kalkül in den Theorembeweiser E-KRHyper implementieren. Der Theorembeweiser E-KRHyper ist ein etabliertes System und basiert in seiner ursprünglichen Version auf dem E-Hyper-Tableau. Mit systematischen Tests wird dann gezeigt, dass die entwickelte Implementierung des erweiterten Kalküls nie schlechter ist, als der original E-KRHyper, diesen aber in einigen Fällen in der Ausführungsgeschwindigkeit deutlich übertrifft.
E-KRHyper is a versatile theorem prover and model generator for firstorder logic that natively supports equality. Inequality of constants, however, has to be given by explicitly adding facts. As the amount of these facts grows quadratically in the number of these distinct constants, the knowledge base is blown up. This makes it harder for a human reader to focus on the actual problem, and impairs the reasoning process. We extend E-Hyper- underlying E-KRhyper tableau calculus to avoid this blow-up by implementing a native handling for inequality of constants. This is done by introducing the unique name assumption for a subset of the constants (the so called distinct object identifiers). The obtained calculus is shown to be sound and complete and is implemented into the E-KRHyper system. Synthetic benchmarks, situated in the theory of arrays, are used to back up the benefits of the new calculus.