Verification of non-functional programs using interpretations in type theory

被引:48
|
作者
Filliâtre, JC [1 ]
机构
[1] Univ Paris 11, LRI, F-91405 Orsay, France
关键词
D O I
10.1017/S095679680200446X
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We study the problem of certifying programs combining imperative and functional features within the general framework of type theory. Type theory is a powerful specification language which is naturally suited for the proof of purely functional programs. To deal with imperative programs, we propose a logical interpretation of an annotated program as a partial proof of its specification. The construction of the corresponding partial proof term is based on a static analysis of the effects of the program which excludes aliases. The missing subterms in the partial proof term are seen as proof obligations, whose actual proofs are left to the user. We show that the validity of those proof obligations implies the total correctness of the program. This work has been implemented in the Coq proof assistant. It appears as a tactic taking an annotated program as argument and generating a set of proof obligations. Several nontrivial algorithms have been certified using this tactic.
引用
收藏
页码:709 / 745
页数:37
相关论文
共 50 条
  • [1] Type-Driven Verification of Non-functional Properties
    Brown, Christopher
    Barwell, Adam D.
    Marquer, Yoann
    Minh, Celine
    Zendra, Olivier
    [J]. PROCEEDINGS OF THE 21ST INTERNATIONAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING (PPDP 2019), 2019,
  • [2] On the Role of Non-functional Properties in Compiler Verification
    Knoop, Jens
    Zimmermann, Wolf
    [J]. LEVERAGING APPLICATIONS OF FORMAL METHODS, VERIFICATION, AND VALIDATION, PT II, 2010, 6416 : 491 - +
  • [3] Understanding multidimensional verification: Where functional meets non-functional
    Lai, Xinhui
    Balakrishnan, Aneesh
    Lange, Thomas
    Jenihhin, Maksim
    Ghasempouri, Tara
    Raik, Jaan
    Alexandrescu, Dan
    [J]. MICROPROCESSORS AND MICROSYSTEMS, 2019, 71
  • [4] Towards Multidimensional Verification: Where Functional Meets Non-Functional
    Jenihhin, Maksim
    Lai, Xinhui
    Ghasempouri, Tara
    Raik, Jaan
    [J]. 2018 IEEE NORDIC CIRCUITS AND SYSTEMS CONFERENCE (NORCAS): NORCHIP AND INTERNATIONAL SYMPOSIUM OF SYSTEM-ON-CHIP (SOC), 2018,
  • [5] Verification of Functional and Non-functional Requirements of Web Service Composition
    Chen, Manman
    Tan, Tian Huat
    Sun, Jun
    Liu, Yang
    Pang, Jun
    Li, Xiaohong
    [J]. FORMAL METHODS AND SOFTWARE ENGINEERING, 2013, 8144 : 313 - 328
  • [6] Verification of non-functional properties of a composable architecture with Petrinets
    Richling, J
    Popova-Zeugmann, L
    Werner, M
    [J]. FUNDAMENTA INFORMATICAE, 2002, 51 (1-2) : 185 - 200
  • [7] Classifying functional and non-functional model neurons using the theory of rough sets
    Tomasz G Smolinski
    Astrid A Prinz
    [J]. BMC Neuroscience, 11 (Suppl 1)
  • [8] Are "Non-functional" Requirements really Non-functional?
    Eckhardt, Jonas
    Vogelsang, Andreas
    Fernandez, Daniel Mendez
    [J]. 2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2016, : 832 - 842
  • [9] Eliciting non-functional requirements interactions using the personal construct theory
    Gonzalez-Baixauli, Bruno
    Sampaio do Prado Leite, Julio Cesar
    Laguna, Miguel A.
    [J]. RE'06: 14TH IEEE INTERNATIONAL REQUIREMENTS ENGINEERING CONFERENCE, PROCEEDINGS, 2006, : 347 - +
  • [10] Service Elicitation of non-functional requirements: An Approach using Activity Theory
    Goncalves, Antonio
    Correia, Anacleto
    Fernandes, Joao
    [J]. 2015 10TH IBERIAN CONFERENCE ON INFORMATION SYSTEMS AND TECHNOLOGIES (CISTI), 2015,