6 research outputs found
Exploring the Efficiency of First-Order Proving Methods
Many automated theorem proving applications rely on the DPLL algorithm for deciding the satisfiability of a set of propositional logic formulae. For first-order logic formulae, ground clauses within the Herbrand universe may be exhaustively enumerated below an incrementing size-bound and fed as input to DPLL. From even a cursory investigation of these enumerated clauses, it is evident that many of them have multiple repeated terms. Here, we explore a potential method for exploiting the size-bound by "cheating in" larger clauses with many repeating terms that may be relevant to the proof.Bachelor of Scienc
Model-Checking symbolique pour la vérification de systèmes et son application aux tables de décision et aux systèmes d'éditions collaboratives distribuées
Résumé
Dans le cycle de vie de tout système logiciel, une phase cruciale de formalisation et de
validation au moyen de vérification et/ou de test induit une identification d'erreurs probables
infiltrées durant sa conception. Cette détection d'erreurs et leur correction sont
avantageuses dans les premières phases de développement du système afin d'éviter tout
retour aux travaux ardus d'analyse de spécifications et de modélisation du système
précédant sa réalisation. Par conséquent, cette étape mise en oeuvre à travers des
mĂ©thodes et des outils formels dans les phases amont de la conception contribue Ă
augmenter la confiance des concepteurs et utilisateurs vis-à -vis de la fonctionnalité du
système.
L'objectif de cette maîtrise s'insère dans le cadre d'une recherche qui vise à exploiter une
technique formelle spécifique d'analyse de programmes et de spécifications: l'exécution
symbolique combinée au model-checking. Cette technique représente une approche
émergente à laquelle les chercheurs ont porté une attention particulière ces dernières
années.
D'une part, l'exécution symbolique permet d'explorer les chemins d'exécution possibles d'un
programme modélisant un système avec des variables d'entrée non initialisées, en d'autres
termes en manipulant des variables abstraites ou "symboliques". Ces chemins caractérisent
ainsi le comportement du programme de manière abstraite. D'autre part, le model-checking
permet d'explorer systématiquement ces différents chemins d'exécution à l'aide d'une
énumération exhaustive des états accessibles afin de générer ultérieurement des contreexemples
en cas de violation de propriétés du système.
De ce fait, l'exécution symbolique combinée au model-checking englobe les points forts de
ces deux techniques octroyant aux concepteurs du système une compréhension accrue des
situations d'erreur dans les contre-exemples ainsi générés.----------Abstract
Verification is one crucial activity in any software life cycle. Its major role is to ensure an
identification of potential design and implementation flaws integrated in the software system
during its development process. Such an identification leads to eventual corrections in the
early steps of the development cycle, thus avoiding tedious work otherwise required in the
system requirements' reanalysis as well as in its remodelling preceding its deployment. As a
consequence, the verification step is rigorously put into practice through formal methods
and tools. Given such a formalisation contributes to give another level of insurance to both
the system's designers and users.
This thesis is related to a research which aims at applying one specific formal method in
program and requirements analysis: symbolic execution intertwined with model checking.
This technique has known a major development in the past few years, thus raising interest
among researchers in the field.
On one hand, symbolic execution explores all possible execution paths of a program
modelling a system using uninitialised input variables. As its name implies, this specific
execution deals with abstract or "symbolic" variables. Hence, those visited paths
characterise the abstract program behaviour. On another hand, model checking ensures a
systematic exploration of those different execution paths through an exhaustive visit of all
reachable states. This approach is necessary for subsequent generation of counterexamples
in case of property violations within the system.
Therefore, symbolic execution along with model checking is a resulting approach enforced
with advantages of both techniques. This yields a higher degree of interpreting the retrieved
flaws provided through generated counterexamples, for even the most sophisticated
systems
Proceedings of the 22nd Conference on Formal Methods in Computer-Aided Design – FMCAD 2022
The Conference on Formal Methods in Computer-Aided Design (FMCAD) is an annual conference on the theory and applications of formal methods in hardware and system verification. FMCAD provides a leading forum to researchers in academia and industry for presenting and discussing groundbreaking methods, technologies, theoretical results, and tools for reasoning formally about computing systems. FMCAD covers formal aspects of computer-aided system design including verification, specification, synthesis, and testing
Proceedings of the 22nd Conference on Formal Methods in Computer-Aided Design – FMCAD 2022
The Conference on Formal Methods in Computer-Aided Design (FMCAD) is an annual conference on the theory and applications of formal methods in hardware and system verification. FMCAD provides a leading forum to researchers in academia and industry for presenting and discussing groundbreaking methods, technologies, theoretical results, and tools for reasoning formally about computing systems. FMCAD covers formal aspects of computer-aided system design including verification, specification, synthesis, and testing