16 research outputs found
Implementation methodology for using concurrent and collaborative approaches for theorem provers, with case studies of SAT and LCF style provers
Theorem provers are faced with the challenges of size and complexity, fueled by the increasing range
of applications. The use of concurrent/ distributed programming paradigms to engineer better theorem
provers merits serious investigation, as it provides: more processing power and opportunities for
implementing novel approaches to address theorem proving tasks hitherto infeasible in a sequential setting.
Investigation of these opportunities for two diverse theorem prover settings with an emphasis on
desirable implementation criteria is the core focus of this thesis.
Concurrent programming is notoriously error prone, hard to debug and evaluate. Thus, implementation
approaches which promote easy prototyping, portability, incremental development and effective isolation
of design and implementation can greatly aid the enterprise of experimentation with the application
of concurrent techniques to address specific theorem proving tasks. In this thesis, we have explored one
such approach by using Alice ML, a functional programming language with support for concurrency
and distribution, to implement the prototypes and have used programming abstractions to encapsulate
the implementations of the concurrent techniques used. The utility of this approach is illustrated via
proof-of-concept prototypes of concurrent systems for two diverse case studies of theorem proving: the
propositional satisfiability problem (SAT) and LCF style (first-order) theorem proving, addressing some
previously unexplored parallelisation opportunities for each, as follows:.
SAT: We have developed a novel hybrid approach for SAT and implemented a prototype for the same:
DPLL-Stalmarck. It uses two complementary algorithms for SAT, DPLL and Stalmarckâs. The two
solvers run asynchronously and dynamic information exchange is used for co-operative solving. Interaction
of the solvers has been encapsulated as a programming abstraction. Compared to the standalone
DPLL solver, DPLL-Stalmarck shows significant performance gains for two of the three problem classes
considered and comparable behaviour otherwise. As an exploratory research effort, we have developed a
novel algorithm, Concurrent Stalmarck, by applying concurrent techniques to the Stalmarck algorithm.
A proof-of-concept prototype for the same has been implemented. Implementation of the saturation
technique of the Stalmarck algorithm in a parallel setting, as implemented in Concurrent Stalmarck, has
been encapsulated as a programming abstraction.
LCF: Provision of programmable concurrent primitives enables customisation of concurrent techniques
to specific theorem proving scenarios. In this case study, we have developed a multilayered approach to
support programmable, sound extensions for an LCF prover: use programming abstractions to implement
the concurrent techniques; use these to develop novel tacticals (control structures to apply tactics),
incorporating concurrent techniques; and use these to develop novel proof search procedures. This
approach has been implemented in a prototypical LCF style first-order prover, using Alice ML. New
tacticals developed are: fastest-first; distributed composition; crossTalk: a novel tactic which uses dynamic,
collaborative information exchange to handle unification across multiple sub-goals, with shared
meta-variables; a new tactic, performing simultaneous proof-refutation attempts on propositional (sub-
)goals, by invoking an external SAT solver (SAT case study), as a counter-example finder. Examples of
concrete theorem proving scenarios are provided, demonstrating the utility of these extensions. Synthesis
of a variety of automatic proof search procedures has been demonstrated, illustrating the scope of
programmability and customisation, enabled by our multilayered approach
Formal methods and digital systems validation for airborne systems
This report has been prepared to supplement a forthcoming chapter on formal methods in the FAA Digital Systems Validation Handbook. Its purpose is as follows: to outline the technical basis for formal methods in computer science; to explain the use of formal methods in the specification and verification of software and hardware requirements, designs, and implementations; to identify the benefits, weaknesses, and difficulties in applying these methods to digital systems used on board aircraft; and to suggest factors for consideration when formal methods are offered in support of certification. These latter factors assume the context for software development and assurance described in RTCA document DO-178B, 'Software Considerations in Airborne Systems and Equipment Certification,' Dec. 1992
Using features for automated problem solving
We motivate and present an architecture for problem solving where an abstraction
layer of "features" plays the key role in determining methods to apply. The system
is presented in the context of theorem proving with Isabelle, and we demonstrate
how this approach to encoding control knowledge is expressively different to
other common techniques. We look closely at two areas where the feature
layer may offer benefits to theorem proving â semi-automation and learning
â
and find strong evidence that in these particular domains, the approach shows
compelling promise. The system includes a graphical theorem-proving user
interface for Eclipse ProofGeneral and is available from the project web page,
http://feasch.heneveld.org
An integrated approach to high integrity software verification.
Computer software is developed through software engineering. At its most precise, software
engineering involves mathematical rigour as formal methods. High integrity software
is associated with safety critical and security critical applications, where failure
would bring significant costs. The development of high integrity software is subject to
stringent standards, prescribing best practises to increase quality. Typically, these standards
will strongly encourage or enforce the application of formal methods.
The application of formal methods can entail a significant amount of mathematical
reasoning. Thus, the development of automated techniques is an active area of research.
The trend is to deliver increased automation through two complementary approaches.
Firstly, lightweight formal methods are adopted, sacrificing expressive power, breadth of
coverage, or both in favour of tractability. Secondly, integrated solutions are sought,
exploiting the strengths of different technologies to increase automation.
The objective of this thesis is to support the production of high integrity software by
automating an aspect of formal methods. To develop tractable techniques we focus on
the niche activity of verifying exception freedom. To increase effectiveness, we integrate
the complementary technologies of proof planning and program analysis. Our approach
is investigated by enhancing the SPARK Approach, as developed by Altran Praxis Limited.
Our approach is implemented and evaluated as the SPADEase system. The key
contributions of the thesis are summarised below:
âą Configurable and Sound - Present a configurable and justifiably sound approach
to software verification.
âą Cooperative Integration - Demonstrate that more targeted and effective automation
can be achieved through the cooperative integration of distinct technologies.
âą Proof Discovery - Present proof plans that support the verification of exception
freedom.
âą Invariant Discovery - Present invariant discovery heuristics that support the verification
of exception freedom.
âą Implementation as SPADEase - Implement our approach as SPADEase.
âą Industrial Evaluation - Evaluate SPADEase against both textbook and industrial
subprograms
Fourth NASA Langley Formal Methods Workshop
This publication consists of papers presented at NASA Langley Research Center's fourth workshop on the application of formal methods to the design and verification of life-critical systems. Topic considered include: Proving properties of accident; modeling and validating SAFER in VDM-SL; requirement analysis of real-time control systems using PVS; a tabular language for system design; automated deductive verification of parallel systems. Also included is a fundamental hardware design in PVS
Computer Aided Verification
The open access two-volume set LNCS 11561 and 11562 constitutes the refereed proceedings of the 31st International Conference on Computer Aided Verification, CAV 2019, held in New York City, USA, in July 2019. The 52 full papers presented together with 13 tool papers and 2 case studies, were carefully reviewed and selected from 258 submissions. The papers were organized in the following topical sections: Part I: automata and timed systems; security and hyperproperties; synthesis; model checking; cyber-physical systems and machine learning; probabilistic systems, runtime techniques; dynamical, hybrid, and reactive systems; Part II: logics, decision procedures; and solvers; numerical programs; verification; distributed systems and networks; verification and invariants; and concurrency
Computer Aided Verification
The open access two-volume set LNCS 11561 and 11562 constitutes the refereed proceedings of the 31st International Conference on Computer Aided Verification, CAV 2019, held in New York City, USA, in July 2019. The 52 full papers presented together with 13 tool papers and 2 case studies, were carefully reviewed and selected from 258 submissions. The papers were organized in the following topical sections: Part I: automata and timed systems; security and hyperproperties; synthesis; model checking; cyber-physical systems and machine learning; probabilistic systems, runtime techniques; dynamical, hybrid, and reactive systems; Part II: logics, decision procedures; and solvers; numerical programs; verification; distributed systems and networks; verification and invariants; and concurrency
Acquiring data designs from existing data-intensive programs
The problem area addressed in this thesis is extraction of a data design from existing data intensive program code. The purpose of this is to help a software maintainer to understand a software system more easily because a view of a software system at a high abstraction level can be obtained. Acquiring a data design from existing data intensive program code is an important part of reverse engineering in software maintenance. A large proportion of software systems currently needing maintenance is data intensive. The research results in this thesis can be directly used in a reverse engineering tool. A method has been developed for acquiring data designs from existing data intensive programs, COBOL programs in particular. Program transformation is used as the main tool. Abstraction techniques and the method of crossing levels of abstraction are also studied for acquiring data designs. A prototype system has been implemented based on the method developed. This involved implementing a number of program transformations for data abstraction, and thus contributing to the production of a tool. Several case studies, including one case study using a real program with 7000 Hues of source code, are presented. The experiment results show that the Entity-Relationship Attribute Diagrams derived from the prototype can represent the data designs of the original data intensive programs. The original contribution of the thesis is that the approach presented in this thesis can identify and extract data relationships from the existing code by combining analysis of data with analysis of code. The approach is believed to be able to provide better capabilities than other work in the field. The method has indicated that acquiring a data design from existing data intensive program code by program transformation with human assistance is an effective method in software maintenance. Future work is suggested at the end of the thesis including extending the method to build an industrial strength tool