Netinfo Security ›› 2024, Vol. 24 ›› Issue (3): 374-384.doi: 10.3969/j.issn.1671-1122.2024.03.004

Previous Articles     Next Articles

Array Processing Loop Compression Method for Program Reachability Verification

XU Liangchen1, MENG Zhaoyi2, HUANG Wenchao1(), XIONG Yan1   

  1. 1. School of Computer Science and Technology, University of Science and Technology of China, Hefei 230026, China
    2. School of Computer Science and Technology, Anhui University, Hefei 230601, China
  • Received:2023-11-13 Online:2024-03-10 Published:2024-04-03
  • Contact: HUANG Wenchao E-mail:huangwc@ustc.edu.cn

Abstract:

The security and robustness of computer software have gradually become a very important issue in today’s society, and automatic software formal verification is a highly reliable method to verify the security and robustness of software programs. However, in automatic software formal verification, large-scale arrays and complex loops lead to state explosion, making the verifier unable to complete verification within the specified time. Therefore, how to compress the array size while ensuring the correctness of verification is a subject worth to study. The article proposed the definition of complex loop equivalence classes and some propositions, and proposed an array processing loop compression method for program reachability verification. It first used control flow automata and system dependency graphs to perform static analysis to divide equivalence classes, and then divided equivalence classes according to loop dependencies compress equivalence classes and replaced the verification results of the original program with the verification results of the compressed program. Experiments show that the method proposed in this article can compress the size of the program and improve the verification efficiency while ensuring the correctness of verification.

Key words: equivalence class analysis, software formal verification, static analysis, system dependency graph

CLC Number: