Spelling suggestions: "subject:"satisfiability modulo theory"" "subject:"satisifiability modulo theory""
1 |
Certification of static analysis in many-sorted first-order logic / Analyse statique certifiée en logique du premier ordre multi-sortéeCornilleau, Pierre-Emmanuel 25 March 2013 (has links)
L'analyse statique est utilisée pour vérifier de manière formelle qu'un programme ne fait pas d'erreurs, mais un analyseur statique est lui même un programme complexe sujet aux erreurs. Une analyse statique formalisée comme un interpreteur abstrait peut être prouvée correcte, cependant un telle preuve ne porte pas directement sur l'implementation de l'analyseur. Pour résoudre cette difficultée, nous proposons de générer des conditions de vérification (VCs, des formules logiques valides seulement si le résultat de l'analyseur est correct), et de les décharger à l'aide d'un prouveur de théorèmes automatique (ATP). Les VCs générées appartiennent à la logic du premier ordre multi-sortée (MSFOL), une logique utilisée avec succés en vérification déductive, suffisament expressive pour encoder les résultats d'analyses complexes et pour formaliser la sémantique operationnelle d'un langage objet, ce qui nous permet de prouver la correction des VCs générées à l'aide d'outils de vérification deductive. Pour assurer que les VCs puissent être déchargée automatiquement pour des analyses du tas, nous introduisons un calcul de VCs appartenant à un fragment décidable de MSFOL, et afin de pouvoir utiliser le même calcul pour différentes analyses, nous décrivons une famille d'analyses à l'aide d'une fonction de concretisation et d'un instrumentation de la sémantique paramétrées. Pour améliorer la fiabilité des ATPs, nous étudions aussi la certification de résultat des proveurs de satisfiabilité modulo théories, une famille d'ATPs dédiée à MSFOL. Nous proposons un système de preuve et un vérifieur modulaires, qui s'appuient sur des vérifieur dédiés aux théories sous-jacentes. / Static program analysis is a core technology for both verifying and finding errors in programs but most static analyzers are complex pieces of software that are not without error. A Static analysis formalised as an abstract interpreter can be proved sound, however such proofs are significantly harder to do on the actual implementation of an analyser. To alleviate this problem we propose to generate Verification Conditions (VCs, formulae valid only if the results of the analyser are correct) and to discharge them using an Automated Theorem Prover (ATP). We generate formulae in Many-Sorted First-Order Logic (MSFOL), a logic that has been successfully used in deductive program verification. MSFOL is expressive enough to describe the results of complex analyses and to formalise the operational semantics of object-oriented languages. Using the same logic for both tasks allows us to prove the soundness of the VC generator using deductive verification tools. To ensure that VCs can be automatically discharged for complex analyses of the heap, we introduce a VC calculus that produces formulae belonging to a decidable fragment of MSFOL. Furthermore, to be able to certify different analyses with the same calculus, we describe a family of analyses with a parametric concretisation function and instrumentation of the semantics. To improve the reliability of ATPs, we also studied the result certification of Satisfiability Modulo Theory solvers, a family of ATPs dedicated to MSFOL. We propose a modular proof-system and a modular proof-verifier programmed and proved correct in Coq, that rely on exchangeable verifiers for each of the underlying theories.
|
2 |
Certification of static analysis in many-sorted first-order logicCornilleau, Pierre-Emmanuel 25 March 2013 (has links) (PDF)
Static program analysis is a core technology for both verifying and finding errors in programs but most static analyzers are complex pieces of software that are not without error. A Static analysis formalised as an abstract interpreter can be proved sound, however such proofs are significantly harder to do on the actual implementation of an analyser. To alleviate this problem we propose to generate Verification Conditions (VCs, formulae valid only if the results of the analyser are correct) and to discharge them using an Automated Theorem Prover (ATP). We generate formulae in Many-Sorted First-Order Logic (MSFOL), a logic that has been successfully used in deductive program verification. MSFOL is expressive enough to describe the results of complex analyses and to formalise the operational semantics of object-oriented languages. Using the same logic for both tasks allows us to prove the soundness of the VC generator using deductive verification tools. To ensure that VCs can be automatically discharged for complex analyses of the heap, we introduce a VC calculus that produces formulae belonging to a decidable fragment of MSFOL. Furthermore, to be able to certify different analyses with the same calculus, we describe a family of analyses with a parametric concretisation function and instrumentation of the semantics. To improve the reliability of ATPs, we also studied the result certification of Satisfiability Modulo Theory solvers, a family of ATPs dedicated to MSFOL. We propose a modular proof-system and a modular proof-verifier programmed and proved correct in Coq, that rely on exchangeable verifiers for each of the underlying theories.
|
3 |
Design Validation of RTL Circuits using Binary Particle Swarm Optimization and Symbolic ExecutionPuri, Prateek 05 August 2015 (has links)
Over the last two decades, chip design has been conducted at the register transfer (RT) Level using Hardware Descriptive Languages (HDL), such as VHDL and Verilog. The modeling at the behavioral level not only allows for better representation and understanding of the design, but also allows for encapsulation of the sub-modules as well, thus increasing productivity. Despite these benefits, validating a RTL design is not necessarily easier. Today, design validation is considered one of the most time and resource consuming aspects of hardware design. The high costs associated with late detection of bugs can be enormous. Together with stringent time to market factors, the need to guarantee the correct functionality of the design is more critical than ever.
The work done in this thesis tackles the problem of RTL design validation and presents new frameworks for functional test generation. We use branch coverage as our metric to evaluate the quality of the generated test stimuli. The initial effort for test generation utilized simulation based techniques because of their scalability with design size and ease of use. However, simulation based methods work on input spaces rather than the DUT's state space and often fail to traverse very narrow search paths in large input spaces. To encounter this problem and enhance the ability of test generation framework, in the following work in this thesis, certain design semantics are statically extracted and recurrence relationships between different variables are mined. Information such as relations among variables and loops can be extremely valuable from test generation point of view. The simulation based method is hybridized with Z3 based symbolic backward execution engine with feedback among different stages. The hybridized method performs loop abstraction and is able to traverse narrow design paths without performing costly circuit analysis or explicit loop unrolling. Also structural and functional unreachable branches are identified during the process of test generation. Experimental results show that the proposed techniques are able to achieve high branch coverage on several ITC'99 benchmark circuits and their modified variants, with significant speed up and reduction in the sequence length. / Master of Science
|
4 |
Um novo método de otimização baseado em teorias de satisfatibilidadeAraújo, Rodrigo Farias 30 March 2017 (has links)
Submitted by Marcos Roberto Gomes (mrobertosg@gmail.com) on 2017-06-22T15:28:21Z
No. of bitstreams: 2
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5)
Dissertacao_Rodrigo_Farias_Araujo.pdf: 2432590 bytes, checksum: a0accf6a453257550a0ea9f75b50b687 (MD5) / Approved for entry into archive by Divisão de Documentação/BC Biblioteca Central (ddbc@ufam.edu.br) on 2017-06-23T14:38:14Z (GMT) No. of bitstreams: 2
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5)
Dissertacao_Rodrigo_Farias_Araujo.pdf: 2432590 bytes, checksum: a0accf6a453257550a0ea9f75b50b687 (MD5) / Approved for entry into archive by Divisão de Documentação/BC Biblioteca Central (ddbc@ufam.edu.br) on 2017-06-23T14:44:39Z (GMT) No. of bitstreams: 2
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5)
Dissertacao_Rodrigo_Farias_Araujo.pdf: 2432590 bytes, checksum: a0accf6a453257550a0ea9f75b50b687 (MD5) / Made available in DSpace on 2017-06-23T14:44:39Z (GMT). No. of bitstreams: 2
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5)
Dissertacao_Rodrigo_Farias_Araujo.pdf: 2432590 bytes, checksum: a0accf6a453257550a0ea9f75b50b687 (MD5)
Previous issue date: 2017-03-30 / This work presents a new method of optimization applied to different classes of problems,
such as non-convex and convex. The methodology consists in the use the counterexample
generated from the model checking technique based on Boolean satisfiability theory (SAT)
and satisfiability modulo theory (SMT), to guide the optimization process. Three algorithms of
optimization are developed: Generic Algorithm, applied to any class of optimization problem,
it will be used in the optimization of non-convex functions, Simplified Algorithm, used in the
optimization of functions in which there is some previous knowledge, e. g., semi-defined or
defined positive functions and Fast Algorithm, used to optimize convex functions. In addition,
convergence proofs are provided for the respective algorithms. The algorithms are implemented
using two model verifiers, CBMC which uses the SAT-based MiniSAT solver as back-end,
and the ESBMC, which supports SMT-based solvers, such as Z3, Boolector and MathSAT. For
perfomance evaluation, the algorithms are applied to a set of thirty functions taken from the
literature and used to test optimization algorithms, they are also compared with traditional optimization
algorithms usually used in solving non-convex optimization problems, such as genetic
algorithm, particle swarm, pattern search, simulated annealing and nonlinear programming. Through
the analysis of the results it can be concluded that the developed algorithms are suitable
the classes of functions for which they were developed and have a higher rate of success in the
search for the optimal value in comparison with the other algorithms. Finally, the developed
methodology is applied to solve optimization problems in the context of the two-dimensional
path planning for autonomous mobile robots. / Este trabalho apresenta um novo método de otimização aplicado a diferentes classes de
problemas, como não-convexos e convexos. A metodologia consiste na utilização do contraexemplo
gerado a partir da técnica de verificação de modelos, baseada na teoria de satisfatibilidade
booleana (SAT) ou na teoria do módulo de satisfatibilidade (SMT), para guiar o processo
de otimização. São desenvolvidos três algoritmos de otimização, são eles: Algoritmo Genérico,
aplicado a qualquer classe de problema de otimização, neste será utilizado na otimização de
funções não-convexas, Algoritmo Simplificado, empregado na otimização de funções nas quais
tem-se algum conhecimento prévio, por exemplo, funções semi-definidas ou definidas positivas
e Algoritmo Rápido, utilizado para otimização de funções convexas. Adicionalmente, são
fornecidas as provas de convergência para os respectivos algoritmos. Os algoritmos são implementados
utilizando dois verificadores de modelos, o CBMC que utiliza como back-end o
solucionador MiniSAT baseado em SAT, e o ESBMC, que tem suporte aos solucionadores baseados
em SMT, como: Z3, Boolector e MathSAT. Para avaliação de desempenho, os algoritmos
são aplicados a um conjunto de trinta funções retiradas da literatura e utilizadas para teste de
algoritmos de otimização, os mesmos também são comparados com algoritmos de otimização
tradicionais usualmente empregados na resolução de problemas de otimização não-convexa,
como: algoritmo genético, enxame de partícula, busca de padrões, recozimento simulado e
programação não-linear. Através da análise dos resultados pode-se concluir que os algoritmos
desenvolvidos são adequados as classes de funções para os quais foram desenvolvidos e possuem
maior taxa de acerto na busca pelo valor ótimo em comparação com os outros algoritmos.
Finalmente a metodologia desenvolvida é aplicada para resolver problemas de otimização no
contexto de planejamento de caminhos bidimensionais para robô móveis autônomos.
|
Page generated in 0.1073 seconds