Safe modification of pointer programs in refinement calculus

被引:0
|
作者
Nishimura, Susumu [1 ]
机构
[1] Kyoto Univ, Grad Sch Sci, Dept Math, Sakyo Ku, Kyoto 6068502, Japan
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper discusses stepwise refinement of pointer programs in the framework of refinement calculus. We augment the underlying logic with formulas of separation logic and then introduce a pair of new predicate transformers, called separating assertion and separating assumption. The new predicate transformers are derived from separating conjunction and separating implication, which are fundamental logical connectives in separation logic. They represent primitive forms of heap allocation/deallocation operators and the basic pointer statements can be specified by means of them. We derive several refinement laws that are useful for stepwise refinement and demonstrate the use of the laws in the context of correctness preserving transformations that are intended for improved memory usage. The formal development is carried out in the framework of higher-order logic and is based on Back and Preoteasa's axiomatization of state space and its extension to the heap storage [BP05, Pre06]. All the results have been implemented and verified in the theorem prover PVS.
引用
收藏
页码:284 / 304
页数:21
相关论文
共 50 条
  • [1] A refinement calculus for logic programs
    Hayes, I
    Colvin, R
    Hemer, D
    Strooper, P
    Nickson, R
    THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2002, 2 : 425 - 460
  • [2] Building BSP programs using the refinement calculus
    Skillicorn, DB
    PARALLEL AND DISTRIBUTED PROCESSING, 1998, 1388 : 790 - 795
  • [3] REFINEMENT CALCULUS .2. PARALLEL AND REACTIVE PROGRAMS
    BACK, RJR
    LECTURE NOTES IN COMPUTER SCIENCE, 1990, 430 : 67 - 93
  • [4] REFINEMENT CALCULUS .1. SEQUENTIAL NONDETERMINISTIC PROGRAMS
    BACK, RJR
    VONWRIGHT, J
    LECTURE NOTES IN COMPUTER SCIENCE, 1990, 430 : 42 - 66
  • [5] Towards a refinement calculus for concurrent real-time programs
    Peuker, S
    Hayes, I
    FORMAL METHODS AND SOFTWARE ENGINEERING, PROCEEDINGS, 2002, 2495 : 335 - 346
  • [6] A Graph-Based Implementation for Mechanized Refinement Calculus of OO Programs
    Liu, Zhiming
    Morisset, Charles
    Wang, Shuling
    FORMAL METHODS: FOUNDATIONS AND APPLICATIONS, 2011, 6527 : 258 - +
  • [7] Automated verification of pointer programs in pointer logic
    Wang Z.
    Chen Y.
    Wang Z.
    Hua B.
    Frontiers of Computer Science in China, 2008, 2 (4): : 380 - 397
  • [8] THE REFINEMENT CALCULUS
    WOODCOCK, JCP
    LECTURE NOTES IN COMPUTER SCIENCE, 1991, 552 : 80 - 95
  • [9] A trace-based refinement calculus for shared-variable parallel programs
    Dingel, J
    ALGEBRAIC METHODOLOGY AND SOFTWARE TECHNOLOGY, 1999, 1548 : 231 - 247
  • [10] A refinement calculus for Statecharts
    Scholz, P
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, 1998, 1382 : 285 - 301