Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Verification of Safety Functions Implemented in Rust: a Symbolic Execution based approach
Luleå University of Technology, Department of Computer Science, Electrical and Space Engineering, Computer Science.ORCID iD: 0000-0002-1791-535x
Luleå University of Technology.
Luleå University of Technology, Department of Computer Science, Electrical and Space Engineering, Embedded Internet Systems Lab.
Luleå University of Technology, Department of Computer Science, Electrical and Space Engineering, Computer Science.
2019 (English)In: 2019 IEEE 17th International Conference on Industrial Informatics (INDIN), IEEE, 2019, p. 432-439Conference paper, Published paper (Other academic)
Abstract [en]

Symbolic execution allows us to observe and assert properties of program code executing under (partially) unknown inputs and state. In this work we present a case study demonstrating that safety functions implemented in the Rust programming language can be verified by an assertion based approach. To this end, we leverage on previous developments adopting LLVM-KLEE for symbolic execution of Rust programs.In particular we show that reliability can be ensured by proven absence of undefined behavior and that safety properties (expressed as assertions) can be ensured for all reachable paths of the underlying implementation (under symbolic inputs). Moreover, the verification (besides stating assertions) is fully automatic and can be applied without any changes made to the implementation. While assertions have the advantage of being familiar to the mainstream programmer, they lack the expressiveness of dedicated logic developed for model checking. The paper also discusses complexity issues arising from path/state explosion inherent to symbolic execution. The feasibility of the approach is demonstrated on a representative use case implementing a safety function (equality) from the PLCopen library. We obtain complete path- (466) and state- (8) coverage in under 2 seconds for the given example on an i7-7700 laptop computer.

Place, publisher, year, edition, pages
IEEE, 2019. p. 432-439
Series
IEEE International Conference on Industrial Informatics (INDIN), ISSN 1935-4576, E-ISSN 2378-363X
National Category
Computer Sciences
Research subject
Dependable Communication and Computation Systems; Embedded Systems
Identifiers
URN: urn:nbn:se:ltu:diva-78674DOI: 10.1109/INDIN41052.2019.8972014ISI: 000529510400063Scopus ID: 2-s2.0-85079050233OAI: oai:DiVA.org:ltu-78674DiVA, id: diva2:1426544
Conference
2019 IEEE 17th International Conference on Industrial Informatics (INDIN), 22-25 July, 2019, Helsinki, Finland
Note

ISBN för värdpublikation: 978-1-7281-2927-3, 978-1-7281-2928-0

Available from: 2020-04-27 Created: 2020-04-27 Last updated: 2020-06-12Bibliographically approved

Open Access in DiVA

No full text in DiVA

Other links

Publisher's full textScopus

Authority records

Lindner, MarcusEriksson, JohanLindgren, Per

Search in DiVA

By author/editor
Lindner, MarcusFitinghoff, NilsEriksson, JohanLindgren, Per
By organisation
Computer ScienceLuleå University of TechnologyEmbedded Internet Systems Lab
Computer Sciences

Search outside of DiVA

GoogleGoogle Scholar

doi
urn-nbn

Altmetric score

doi
urn-nbn
Total: 211 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf