Automatic software verification: harnessing constraint technologies. As we come to rely on software to manage more and more aspects of our lives, the importance of software reliability increases; yet as programs become increasingly complex, reliability becomes ever more elusive. This project will develop automated tools and techniques to ensure that programs do what they were intended to do.
Analysing Computer Arithmetic to Improve Software Reliability. Most computer programs deal with integers. Automated tools designed to verify the correct behaviour of software usually assume the software deals with idealised mathematical integers, since this simplifies reasoning significantly. In reality, most programs work with integer number representations that approximate the ideal. This compromises the soundness of many verification tools. This project will design sound reasoning tools that ....Analysing Computer Arithmetic to Improve Software Reliability. Most computer programs deal with integers. Automated tools designed to verify the correct behaviour of software usually assume the software deals with idealised mathematical integers, since this simplifies reasoning significantly. In reality, most programs work with integer number representations that approximate the ideal. This compromises the soundness of many verification tools. This project will design sound reasoning tools that are aware of the true nature of computer integer arithmetic.Read moreRead less
RichProlog, a System for Deducing, Inducing and Learning in the Declarative Programming Paradigm. The aim of the project is to contribute to bridge the gap between learning and logic, theoretically and practically. Our purpose is to extend considerably the scope of the declarative programming paradigm, and build a system that can be used to solve learning or discovery problems as encountered in Artificial Intelligence. The system will enable rapid prototyping when applied to problems involving d ....RichProlog, a System for Deducing, Inducing and Learning in the Declarative Programming Paradigm. The aim of the project is to contribute to bridge the gap between learning and logic, theoretically and practically. Our purpose is to extend considerably the scope of the declarative programming paradigm, and build a system that can be used to solve learning or discovery problems as encountered in Artificial Intelligence. The system will enable rapid prototyping when applied to problems involving deduction, induction, and nonmonotonic reasoning. We intend the system to become a standard tool for tackling a broad range of applications, and the underlying theory to provide new insights on the logical foundations of Artificial Intelligence.
Read moreRead less
Design and verification of correct, efficient and secure concurrent systems. This project aims to provide methods for the design and verification of correct, secure and efficient concurrent software that are scalable and mechanised. Computers with multiple processors are now the norm and are used in a wide range of safety, security and mission critical software applications such as transport, health and infrastructure. These multi-core architectures have the potential to lead to important effici ....Design and verification of correct, efficient and secure concurrent systems. This project aims to provide methods for the design and verification of correct, secure and efficient concurrent software that are scalable and mechanised. Computers with multiple processors are now the norm and are used in a wide range of safety, security and mission critical software applications such as transport, health and infrastructure. These multi-core architectures have the potential to lead to important efficiency gains, but can introduce complex and error-prone behaviours that cannot be managed using traditional software development approaches. This project will produce better, scalable and mechanised methods for the design and verification of such software which is expected to reduce the prevalence of failures in efficient, modern software.Read moreRead less
Provable elimination of information leakage through timing channels. This project aims to develop techniques to solve the issue in information security of unauthorised information flow resulting from competition for shared hardware resources. The project will combine operating systems design, formal hardware models, information-flow reasoning and theorem proving to achieve a goal that is widely considered infeasible. The project is expected to result in a system that prevents leakage of critical ....Provable elimination of information leakage through timing channels. This project aims to develop techniques to solve the issue in information security of unauthorised information flow resulting from competition for shared hardware resources. The project will combine operating systems design, formal hardware models, information-flow reasoning and theorem proving to achieve a goal that is widely considered infeasible. The project is expected to result in a system that prevents leakage of critical information, such as encryption keys, through timing channels. This should prevent sophisticated attacks on public clouds, mobile devices and military-grade cross-domain devices.Read moreRead less
Evolutionary multi-objective algorithms for Global Grids. This research investigates alternative software technologies for Grid-based evolutionary multi-objective decision algorithms. By employing the latest adaptive techniques and taking advantage of the low cost Grid infrastructure, new parallel evolutionary systems will be developed that can rapidly supply robust solutions to complex problems. This project will further develop an understanding of scaling issues in parallel evolutionary syste ....Evolutionary multi-objective algorithms for Global Grids. This research investigates alternative software technologies for Grid-based evolutionary multi-objective decision algorithms. By employing the latest adaptive techniques and taking advantage of the low cost Grid infrastructure, new parallel evolutionary systems will be developed that can rapidly supply robust solutions to complex problems. This project will further develop an understanding of scaling issues in parallel evolutionary systems and pave the way for even more widespread application of evolutionary techniques for large scale, data-intensive applications in science and industry.Read moreRead less
Intelligent Model Checking. Real-world systems are typically so complex that software engineers require specialised CAD tools to debug and verify a design. Model checking is a formal method that is used extensively for this purpose, particularly for mission-critical systems. In this work, a new kind of verifying tool, based on model checking, is developed. This new model checker is intelligent because a heuristic search is integrated into the underlying formalism. It is not exhaustive, and is mo ....Intelligent Model Checking. Real-world systems are typically so complex that software engineers require specialised CAD tools to debug and verify a design. Model checking is a formal method that is used extensively for this purpose, particularly for mission-critical systems. In this work, a new kind of verifying tool, based on model checking, is developed. This new model checker is intelligent because a heuristic search is integrated into the underlying formalism. It is not exhaustive, and is more efficient than a traditional model checker during the design phase because it does only a minimum amount of work in its search for a fault.Read moreRead less
A Compositional Model for Verifying and Programming Ecologies of Smart Internet Devices. Emerging in 21st century computing is what we perceive as device ecologies, or collections of devices that can exhibit smart behaviour, automate tasks, interact synergistically with one another, with users and Internet resources, and provide aid and value in daily life and work. Device ecologies will be seen in areas as diverse as e-commerce, health care, home automation, office automation, manufacturing, an ....A Compositional Model for Verifying and Programming Ecologies of Smart Internet Devices. Emerging in 21st century computing is what we perceive as device ecologies, or collections of devices that can exhibit smart behaviour, automate tasks, interact synergistically with one another, with users and Internet resources, and provide aid and value in daily life and work. Device ecologies will be seen in areas as diverse as e-commerce, health care, home automation, office automation, manufacturing, and defense. This project will develop a novel model and language for analyzing and programming device ecologies. This will be an Australian contribution towards techniques for constructing advanced applications that work over the computing infrastructure of the future.Read moreRead less