Abstract

An application of formal verification (using the proof assistant Isabelle/HOL) for ensuring the correctness of scientific data processing software in the crystallographic domain is presented. The proposed process consists of writing a pseudocode that describes an algorithm in a succinct but mathematically unambiguous way, then formulating or reusing necessary Isabelle theories and proving algorithm properties within these theories, and finally implementing the algorithm in a practical programming language. Both the formal proof and the semi-formal algorithm analysis are demonstrated on an example of a simple but important algorithm (widely used in crystallographic computing) that reconstructs a space-group operator list from a subset of symmetry operators. The cod-tools software package that implements the verified algorithm is also presented. On the basis of the reported results, it is argued that broader application of formal methods (e.g. formal verification of algorithm correctness) allows developers to improve the reliability of scientific software. Moreover, the formalized (within the proof assistant) domain-specific theory can be reused and gradually extended, thus continuously increasing the automation level of formal algorithm verification.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.