178 research outputs found
Boost the Impact of Continuous Formal Verification in Industry
Software model checking has experienced significant progress in the last two
decades, however, one of its major bottlenecks for practical applications
remains its scalability and adaptability. Here, we describe an approach to
integrate software model checking techniques into the DevOps culture by
exploiting practices such as continuous integration and regression tests. In
particular, our proposed approach looks at the modifications to the software
system since its last verification, and submits them to a continuous formal
verification process, guided by a set of regression test cases. Our vision is
to focus on the developer in order to integrate formal verification techniques
into the developer workflow by using their main software development
methodologies and tools.Comment: 7 page
Counterexample Guided Inductive Optimization Applied to Mobile Robots Path Planning (Extended Version)
We describe and evaluate a novel optimization-based off-line path planning
algorithm for mobile robots based on the Counterexample-Guided Inductive
Optimization (CEGIO) technique. CEGIO iteratively employs counterexamples
generated from Boolean Satisfiability (SAT) and Satisfiability Modulo Theories
(SMT) solvers, in order to guide the optimization process and to ensure global
optimization. This paper marks the first application of CEGIO for planning
mobile robot path. In particular, CEGIO has been successfully applied to obtain
optimal two-dimensional paths for autonomous mobile robots using off-the-shelf
SAT and SMT solvers.Comment: 7 pages, 14rd Latin American Robotics Symposium (LARS'2017
Fault Localization in Multi-Threaded C Programs using Bounded Model Checking (extended version)
Software debugging is a very time-consuming process, which is even worse for
multi-threaded programs, due to the non-deterministic behavior of
thread-scheduling algorithms. However, the debugging time may be greatly
reduced, if automatic methods are used for localizing faults. In this study, a
new method for fault localization, in multi-threaded C programs, is proposed.
It transforms a multi-threaded program into a corresponding sequential one and
then uses a fault-diagnosis method suitable for this type of program, in order
to localize faults. The code transformation is implemented with rules and
context switch information from counterexamples, which are typically generated
by bounded model checkers. Experimental results show that the proposed method
is effective, in such a way that sequential fault-localization methods can be
extended to multi-threaded programs.Comment: extended version of paper published at SBESC'1
SMT-Based Refutation of Spurious Bug Reports in the Clang Static Analyzer
We describe and evaluate a bug refutation extension for the Clang Static
Analyzer (CSA) that addresses the limitations of the existing built-in
constraint solver. In particular, we complement CSA's existing heuristics that
remove spurious bug reports. We encode the path constraints produced by CSA as
Satisfiability Modulo Theories (SMT) problems, use SMT solvers to precisely
check them for satisfiability, and remove bug reports whose associated path
constraints are unsatisfiable. Our refutation extension refutes spurious bug
reports in 8 out of 12 widely used open-source applications; on average, it
refutes ca. 7% of all bug reports, and never refutes any true bug report. It
incurs only negligible performance overheads, and on average adds 1.2% to the
runtime of the full Clang/LLVM toolchain. A demonstration is available at {\tt
https://www.youtube.com/watch?v=ylW5iRYNsGA}.Comment: 4 page
A Privacy-Preserving and Accountable Billing Protocol for Peer-to-Peer Energy Trading Markets
This paper proposes a privacy-preserving and accountable billing (PA-Bill)
protocol for trading in peer-to-peer energy markets, addressing situations
where there may be discrepancies between the volume of energy committed and
delivered. Such discrepancies can lead to challenges in providing both privacy
and accountability while maintaining accurate billing. To overcome these
challenges, a universal cost splitting mechanism is proposed that prioritises
privacy and accountability. It leverages a homomorphic encryption cryptosystem
to provide privacy and employs blockchain technology to establish
accountability. A dispute resolution mechanism is also introduced to minimise
the occurrence of erroneous bill calculations while ensuring accountability and
non-repudiation throughout the billing process. Our evaluation demonstrates
that PA-Bill offers an effective billing mechanism that maintains privacy and
accountability in peer-to-peer energy markets utilising a semi-decentralised
approach.Comment: 6-pages, 1 Figure, Accepted for International Conference on Smart
Energy Systems and Technologies (SEST2023
- …