Matches in SemOpenAlex for { <https://semopenalex.org/work/W2295526563> ?p ?o ?g. }
Showing items 1 to 85 of
85
with 100 items per page.
- W2295526563 abstract "Most current approaches to software verification are one-sided -- a safety prover will try to prove that a program is safe, while a bug-finding tool will try to find bugs. It is rare to find an analyser that is optimised for both tasks, which is problematic since it is hard to know in advance whether a program you wish to analyse is safe or not. The result of taking a one-sided approach to verification is false alarms: safety provers will often claim that safe programs have errors, while bug-finders will often be unable to find errors in unsafe programs. Orthogonally, many software verifiers are designed for reasoning about idealised programming languages that may not have widespread use. A common assumption made by verification tools is that program variables can take arbitrary integer values, while programs in most common languages use fixed-width bitvectors for their variables. This can have a real impact on the verification, leading to incorrect claims by the verifier. In this thesis we will show that it is possible to analyse C programs without generating false alarms, even if they contain unbounded loops, use non-linear arithmetic and have integer overflows. To do this, we will present two classes of analysis based on underapproximate loop acceleration and second-order satisfiability respectively. Underapproximate loop acceleration addresses the problem of finding deep bugs. By finding closed forms for loops, we show that deep bugs can be detected without unwinding the program and that this can be done without introducing false positives or masking errors. We then show that programs accelerated in this way can be optimised by inlining trace automata to reduce their reachability diameter. This inlining allows acceleration to be used as a viable technique for proving safety, as well as finding bugs. In the second part of the thesis, we focus on using second-order logic for program analysis. We begin by defining second-order SAT: an extension of propositional SAT that allows quantification over functions. We show that this problem is NEXPTIME-complete, and that it is polynomial time reducible to finite-state program synthesis. We then present a fully automatic, sound and complete algorithm for synthesising C programs from a specification written in C. Our approach uses a combination of bounded model checking, explicit-state model checking and genetic programming to achieve surprisingly good performance for a problem with such high complexity. We conclude by using second-order SAT to precisely and directly encode several program analysis problems including superoptimisation, de-obfuscation, safety and termination for programs using bitvector arithmetic and dynamically allocated lists." @default.
- W2295526563 created "2016-06-24" @default.
- W2295526563 creator A5047259577 @default.
- W2295526563 date "2014-01-01" @default.
- W2295526563 modified "2023-09-26" @default.
- W2295526563 title "Precise verification of C programs" @default.
- W2295526563 hasPublicationYear "2014" @default.
- W2295526563 type Work @default.
- W2295526563 sameAs 2295526563 @default.
- W2295526563 citedByCount "0" @default.
- W2295526563 crossrefType "dissertation" @default.
- W2295526563 hasAuthorship W2295526563A5047259577 @default.
- W2295526563 hasConcept C1009929 @default.
- W2295526563 hasConcept C108710211 @default.
- W2295526563 hasConcept C11413529 @default.
- W2295526563 hasConcept C154945302 @default.
- W2295526563 hasConcept C159718280 @default.
- W2295526563 hasConcept C168773769 @default.
- W2295526563 hasConcept C185592680 @default.
- W2295526563 hasConcept C186846655 @default.
- W2295526563 hasConcept C199360897 @default.
- W2295526563 hasConcept C2524010 @default.
- W2295526563 hasConcept C26834552 @default.
- W2295526563 hasConcept C2777904410 @default.
- W2295526563 hasConcept C2779639559 @default.
- W2295526563 hasConcept C33054407 @default.
- W2295526563 hasConcept C33923547 @default.
- W2295526563 hasConcept C41008148 @default.
- W2295526563 hasConcept C43617362 @default.
- W2295526563 hasConcept C529173508 @default.
- W2295526563 hasConcept C56086750 @default.
- W2295526563 hasConcept C64869954 @default.
- W2295526563 hasConcept C80444323 @default.
- W2295526563 hasConcept C97137487 @default.
- W2295526563 hasConcept C98183937 @default.
- W2295526563 hasConceptScore W2295526563C1009929 @default.
- W2295526563 hasConceptScore W2295526563C108710211 @default.
- W2295526563 hasConceptScore W2295526563C11413529 @default.
- W2295526563 hasConceptScore W2295526563C154945302 @default.
- W2295526563 hasConceptScore W2295526563C159718280 @default.
- W2295526563 hasConceptScore W2295526563C168773769 @default.
- W2295526563 hasConceptScore W2295526563C185592680 @default.
- W2295526563 hasConceptScore W2295526563C186846655 @default.
- W2295526563 hasConceptScore W2295526563C199360897 @default.
- W2295526563 hasConceptScore W2295526563C2524010 @default.
- W2295526563 hasConceptScore W2295526563C26834552 @default.
- W2295526563 hasConceptScore W2295526563C2777904410 @default.
- W2295526563 hasConceptScore W2295526563C2779639559 @default.
- W2295526563 hasConceptScore W2295526563C33054407 @default.
- W2295526563 hasConceptScore W2295526563C33923547 @default.
- W2295526563 hasConceptScore W2295526563C41008148 @default.
- W2295526563 hasConceptScore W2295526563C43617362 @default.
- W2295526563 hasConceptScore W2295526563C529173508 @default.
- W2295526563 hasConceptScore W2295526563C56086750 @default.
- W2295526563 hasConceptScore W2295526563C64869954 @default.
- W2295526563 hasConceptScore W2295526563C80444323 @default.
- W2295526563 hasConceptScore W2295526563C97137487 @default.
- W2295526563 hasConceptScore W2295526563C98183937 @default.
- W2295526563 hasLocation W22955265631 @default.
- W2295526563 hasOpenAccess W2295526563 @default.
- W2295526563 hasPrimaryLocation W22955265631 @default.
- W2295526563 hasRelatedWork W14116631 @default.
- W2295526563 hasRelatedWork W1539448140 @default.
- W2295526563 hasRelatedWork W1562912238 @default.
- W2295526563 hasRelatedWork W1577352907 @default.
- W2295526563 hasRelatedWork W1593690673 @default.
- W2295526563 hasRelatedWork W170096106 @default.
- W2295526563 hasRelatedWork W18161554 @default.
- W2295526563 hasRelatedWork W2020239492 @default.
- W2295526563 hasRelatedWork W2102847589 @default.
- W2295526563 hasRelatedWork W2107794009 @default.
- W2295526563 hasRelatedWork W2154913653 @default.
- W2295526563 hasRelatedWork W2171735771 @default.
- W2295526563 hasRelatedWork W2261387040 @default.
- W2295526563 hasRelatedWork W2338367696 @default.
- W2295526563 hasRelatedWork W2522091208 @default.
- W2295526563 hasRelatedWork W3115076626 @default.
- W2295526563 hasRelatedWork W47563837 @default.
- W2295526563 hasRelatedWork W53716578 @default.
- W2295526563 hasRelatedWork W82080700 @default.
- W2295526563 hasRelatedWork W1485560864 @default.
- W2295526563 isParatext "false" @default.
- W2295526563 isRetracted "false" @default.
- W2295526563 magId "2295526563" @default.
- W2295526563 workType "dissertation" @default.