Shengchao Qin

dblp:q/ShengchaoQin · DBLP profile ↗
← Back
143ranked-venue papers
11as first author
42since 2021 · last 2026
0000-0003-3028-8191ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 109 · 9 first-author · 27 since 2021Theory of computation · 14 · 2 first-author · 3 since 2021Applied, interdisciplinary, general and emerging computing · 14 · 1 first-author · 7 since 2021Artificial intelligence and machine learning · 11 · 5 since 2021Graphics, computer vision, multimedia, augmented reality and games · 6 · 2 since 2021Systems, architecture and hardware · 1Computer networks · 1 · 1 since 2021Databases, data management, data science and information retrieval · 1 · 1 since 2021
YearPublicationVenuePosition
2026 Automated LTL Specification Generation from Industrial Aerospace Requirements
abstract
Abstract In the development and verification of safety-critical aero-space software, Linear Temporal Logic (LTL) has been widely used to specify complex system properties derived from requirements. However, a significant gap remains in industrial practice: translating natural language (NL) requirements into formal LTL properties is a labor-intensive and error-prone process that requires rare expertise in both aerospace control engineering and formal methods. While recent NL-to-LTL tools ( e.g. , NL2SPEC, NL2TL, NL2LTL) are capable of automating parts of this process, they often fail on real requirement documents in industrial settings, due to complex domain terminology or implicit temporal and logical structure. To address these challenges, we present Aero Req2LTL , a framework that automates LTL property generation for aerospace requirements using large language models (LLMs), with two key industrial innovations: (i) a data dictionary that normalizes technical jargon into precise atomic propositions; and (ii) a template-based requirement language that makes temporal cues and logical relations explicit before translation. On a real aerospace dataset, Aero Req2LTL achieves 85% precision and 88% recall in LTL generation, and its outputs can be directly consumed by existing verification tools.
Cheng Wen 0002, Rui Chen 0042, Bin Gu 0006, Shengchao Qin, Cong Tian 0001, Mengfei Yang
FM (2)6
2026 Preserving Concurrency-Revealing Seeds in Fuzzing of Concurrent Programs via Tuple-Based Coverage Evaluation
Cheng Wen 0002, Jie Su 0002, Zhiwu Xu 0001, Bin Yu 0008, Shengchao Qin, Cong Tian 0001
SANER6
2026 How Well Does Knowledge Injection Enhance LLM-Aided Formal Protocol Modeling?
Yajia Lin, Jie Su 0002, Cheng Wen 0002, Cong Tian 0001, Zhenhua Dun, Shengchao Qin
SANER7
2026 Synergizing LLM-Driven Semantic Reasoning with Assertion-Guided Analysis for Enhanced Vulnerability Detection
Jie Su 0002, Cheng Wen 0002, Cong Tian 0001, Zhenhua Dun, Shengchao Qin
SANER7
2026 Towards Accurate Thread Sharing Analysis via Synchronization-Aware Dynamic Tracing
Xinyin Liao, Cheng Wen 0002, Jie Su 0002, Yuandao Cai, Shengchao Qin
TASE8
2026 Enhancing LLM-Based Proof Synthesis for Rust Programs via Semantic Chunking and Hierarchical Context Expansion
Cheng Wen 0002, Zhiwu Xu 0001, Dugang Liu, Jialun Cao, Shengchao Qin, Cong Tian 0001
TASE7
2026 Two birds one stone: Effective static detection of resource and communication deadlocks in Rust programs
Kaiwen Zhang 0010, Guanjun Liu, Yuandao Cai, Shengchao Qin
Autom. Softw. Eng.5
2026 Adversarial rain attack and defensive deraining for DNN perception
Liming Zhai, Qing Guo 0003, Felix Juefei-Xu, Xiaofei Xie, Lei Ma 0003, Wei Feng 0005, Shengchao Qin, Yang Liu 0003
Neural Networks7
2026 A Tale of 1001 LoC: Potential Runtime Error-Guided Specification Synthesis for Verifying Large-Scale Programs
abstract
Fully automated verification of large-scale software and hardware systems is arguably the holy grail of formal methods. Large language models (LLMs) have recently demonstrated their potential for enhancing the degree of automation in formal verification by, e.g., generating formal specifications as essential to deductive verification, yet exhibit poor scalability due to long-context reasoning limitations and, more importantly, the difficulty of inferring complex, interprocedural specifications. This paper presents Preguss – a modular, finegrained framework for automating the generation and refinement of formal specifications. Preguss synergizes between static analysis and deductive verification by steering two components in a divide-and-conquer fashion: (i) potential runtime error-guided construction and prioritization of verification units, and (ii) LLM-aided synthesis of interprocedural specifications at the unit level. We show that Preguss substantially outperforms state-of-the-art LLM-based approaches and, in particular, it enables highly automated RTE-freeness verification for real-world programs with over a thousand LoC, with a reduction of 80.6%~88.9% human verification effort.
Zhongyi Wang 0004, Tengjie Lin, Mingshuai Chen, Haokun Li, Mingqi Yang, Xiao Yi, Shengchao Qin, Yixing Luo, Liqiang Lu, Jianwei Yin
Proc. ACM Program. Lang.7
2026 CtxFuzz: Discovering heap-based memory vulnerabilities through context heap operation sequence guided fuzzing
Cheng Wen 0002, Zhiyuan Fu, Shengchao Qin
Sci. Comput. Program.4
2025 ICM-Assistant: Instruction-tuning Multimodal Large Language Models for Rule-based Explainable Image Content Moderation
abstract
Controversial contents largely inundate the Internet, infringing various cultural norms and child protection standards. Traditional Image Content Moderation (ICM) models fall short in producing precise moderation decisions for diverse standards, while recent multimodal large language models (MLLMs), when adopted to general rule-based ICM, often produce classification and explanation results that are inconsistent with human moderators. Aiming at flexible, explainable, and accurate ICM, we design a novel rule-based dataset generation pipeline, decomposing concise human-defined rules and leveraging well-designed multi-stage prompts to enrich short explicit image annotations. Our ICM-Instruct dataset includes detailed moderation explanation and moderation Q-A pairs. Built upon it, we create our ICM-Assistant model in the framework of rule-based ICM, making it readily applicable in real practice. Our ICM-Assistant model demonstrates exceptional performance and flexibility. Specifically, it significantly outperforms existing approaches on various sources, improving both the moderation classification (36.8% on average) and moderation explanation quality (26.6% on average) consistently over existing MLLMs. Caution: Content includes offensive language or images.
Mengyang Wu, Yuzhi Zhao, Jialun Cao, Mingjie Xu, Zhongming Jiang, Qinbin Li, Guang-Neng Hu, Shengchao Qin, Chi-Wing Fu
AAAI9
2025 From Informal to Formal - Incorporating and Evaluating LLMs on Natural Language Requirements to Verifiable Formal Proofs
abstract
Jialun Cao, Yaojie Lu, Meiziniu Li, Haoyang Ma, Haokun Li, Mengda He, Cheng Wen, Le Sun, Hongyu Zhang, Shengchao Qin, Shing-Chi Cheung, Cong Tian. Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2025.
Jialun Cao, Yaojie Lu 0001, Meiziniu Li, Haokun Li, Mengda He, Cheng Wen 0002, Le Sun 0001, Hongyu Zhang 0002, Shengchao Qin, Shing-Chi Cheung, Cong Tian 0001
ACL (1)10
2025 KG-RAG: Enhancing GUI Agent Decision-Making via Knowledge Graph-Driven Retrieval-Augmented Generation
abstract
Ziyi Guan, Jason Chun Lok Li, Zhijian Hou, Pingping Zhang, Donglai Xu, Yuzhi Zhao, Mengyang Wu, Jinpeng Chen, Thanh-Toan Nguyen, Pengfei Xian, Wenao Ma, Shengchao Qin, Graziano Chesi, Ngai Wong. Proceedings of the 2025 Conference on Empirical Methods in Natural Language Processing. 2025.
Jason Chun Lok Li, Zhijian Hou, Donglai Xu, Yuzhi Zhao, Mengyang Wu, Jinpeng Chen 0003, Thanh-Toan Nguyen, Pengfei Xian, Wenao Ma, Shengchao Qin, Graziano Chesi, Ngai Wong 0001
EMNLP12
2025 LLM-Aided Automatic Modeling for Security Protocol Verification
abstract
Symbolic protocol analysis serves as a pivotal technique for protocol design, security analysis, and the safeguarding of information assets. Several modern tools such as Tamarin and ProVerif have been proven successful in modeling and verifying real-world protocols, including complex protocols like TLS 1.3 and 5G AKA. However, developing formal models for protocol verification is a non-trivial task, which hinders the wide adoption of these powerful tools in practical protocol analysis. In this work, we aim to bridge the gap by developing an automatic method for generating symbolic protocol models using Large Language Models (LLMs) from protocol descriptions in natural language document. Although LLMs are powerful in various code generation tasks, it is shown to be ineffective in generating symbolic models (according to our empirical study). Therefore, rather than applying LLMs naively, we carefully decompose the symbolic protocol modeling task into several stages so that a series of formal models are incrementally developed towards generating the final correct symbolic model. Specifically, we apply LLMs for semantic parsing, enable lightweight manual interaction for disambiguation, and develop algorithms to transform the intermediate models for final symbolic model generation. To ensure the correctness of the generated symbolic model, each stage is designed based on a formal execution model and the model transformations are proven sound. To the best of our knowledge, this is the first work aiming to generate symbolic models for protocol verification from natural language documents. We also introduce a benchmark for symbolic protocol model generation, with 18 real-world security protocol's text description and their corresponding symbolic models. We then demonstrate the potential of our tool, which successfully generated correct models of moderate scale in 10 out of 18 cases. Our tool is released at [1].
Ziyu Mao, Jingyi Wang 0004, Jun Sun 0001, Shengchao Qin, Jiawen Xiong
ICSE4
2025 Formally Verifying the State Machine of TLS 1.3 Handshake in OpenSSL
Jingjing Guan, Hui Li 0070, Binghan Wang, Qiuye Wang, Shengchao Qin, Mengda He, Md. Armanuzzaman, Ziming Zhao 0001
INFOCOM7
2025 Bridging Natural Language and Formal Specification-Automated Translation of Software Requirements to LTL via Hierarchical Semantics Decomposition Using LLMs
abstract
Automating the translation of natural language (NL) software requirements into formal specifications remains a critical challenge in scaling formal verification practices to industrial settings, particularly in safety-critical domains. Existing approaches, both rule-based and learning-based, face significant limitations. While large language models (LLMs) like GPT4o demonstrate proficiency in semantic extraction, they still encounter difficulties in addressing the complexity, ambiguity, and logical depth of real-world industrial requirements. In this paper, we propose Req2LTL, a modular framework that bridges NL and Linear Temporal Logic (LTL) through a hierarchical intermediate representation called OnionL. Req2LTL leverages LLMs for semantic decomposition and combines them with deterministic rule-based synthesis to ensure both syntactic validity and semantic fidelity. Our comprehensive evaluation demonstrates that Req2LTL achieves 88.4% semantic accuracy and 100% syntactic correctness on real-world aerospace requirements, significantly outperforming existing methods.
Cheng Wen 0002, Zhexin Su, Cong Tian 0001, Shengchao Qin, Mengfei Yang
ASE6
2025 Enhancing deep learning for demand forecasting to address large data gaps
abstract
The COVID-19 pandemic, with its unprecedented challenges and disruptions, triggered a profound transformation in the retail industry . Health and safety regulations including periodic lockdowns , supply chain disruptions, and economic uncertainty affected the way businesses operate and led to a drastic change in consumer behaviour. This triggered the modification of traditional sales trends, which in turn impacted the accuracy of existing demand forecasting methods, and will affect their future performance. Moreover, the reliance of machine learning algorithms on historical sales data for training made them ill-equipped to adapt to these abrupt sales pattern shifts. Therefore, innovative solutions to address the complexities arising from this new landscape are needed. This paper introduces a framework aimed at enhancing demand forecasting accuracy in the post-pandemic period. Central to this framework is a feature engineering approach involving the creation of a predictor variable that encapsulates the level of restrictions imposed during the pandemic across seven distinct categories. This granular approach not only accounts for lockdowns and store closures but also considers indirect factors influencing retail sales, such as remote work arrangements and school closures. An extensive empirical evaluation of the proposed approach was conducted on a real-world retail dataset obtained from Charles Clinkard, a UK-based footwear retailer, demonstrating consistent improvements in forecasting accuracy across four deep probabilistic models and three levels of product aggregation in a real-life setting. Further validation utilising the Retail Sales Index dataset, which reflects monthly sales across various retail sectors in Great Britain, was also undertaken using six forecasting models, corroborating our initial findings. Overall, we show that leveraging historical sales data spanning the pandemic period – or, in general, any period where the data has inherent bias – is still viable for training machine learning models to forecast the demand, provided that an effective feature engineering approach is implemented.
Chirine Riachy, Mengda He, Sina Joneidy, Shengchao Qin, Tim Payne, Graeme Boulton, Annalisa Occhipinti, Claudio Angione
Expert Syst. Appl.4
2025 Parf: An Adaptive Abstraction-Strategy Tuner for Static Analysis
Zhongyi Wang 0004, Mingshuai Chen, Teng-Jie Lin, Linyu Yang, Junhao Zhuo, Qiu-Ye Wang, Shengchao Qin, Xiao Yi, Jianwei Yin
J. Comput. Sci. Technol.7
2024 Enchanting Program Specification Synthesis by Large Language Models Using Static Analysis and Program Verification
abstract
Abstract Formal verification provides a rigorous and systematic approach to ensure the correctness and reliability of software systems. Yet, constructing specifications for the full proof relies on domain expertise and non-trivial manpower. In view of such needs, an automated approach for specification synthesis is desired. While existing automated approaches are limited in their versatility, i.e. , they either focus only on synthesizing loop invariants for numerical programs, or are tailored for specific types of programs or invariants. Programs involving multiple complicated data types ( e.g. , arrays, pointers) and code structures ( e.g. , nested loops, function calls) are often beyond their capabilities. To help bridge this gap, we present AutoSpec , an automated approach to synthesize specifications for automated program verification. It overcomes the shortcomings of existing work in specification versatility, synthesizing satisfiable and adequate specifications for full proof. It is driven by static analysis and program verification, and is empowered by large language models (LLMs). AutoSpec addresses the practical challenges in three ways: (1) driving AutoSpec by static analysis and program verification, LLMs serve as generators to generate candidate specifications, (2) programs are decomposed to direct the attention of LLMs, and (3) candidate specifications are validated in each round to avoid error accumulation during the interaction with LLMs. In this way, AutoSpec can incrementally and iteratively generate satisfiable and adequate specifications. The evaluation shows its effectiveness and usefulness, as it outperforms existing works by successfully verifying 79% of programs through automatic specification synthesis, a significant improvement of 1.592x. It can also be successfully applied to verify the programs in a real-world X509-parser project.
Cheng Wen 0002, Jialun Cao, Jie Su 0002, Zhiwu Xu 0001, Shengchao Qin, Mengda He, Haokun Li, Shing-Chi Cheung, Cong Tian 0001
CAV (2)5
2024 Graph Convolutional Network Robustness Verification Algorithm Based on Dual Approximation
Dongdong An, Jianqi Shi, Yanhong Huang, Yang Yang 0141, Shengchao Qin
ICFEM9
2024 MemSpate: Memory Usage Protocol Guided Fuzzing
Zhiyuan Fu, Cheng Wen 0002, Zhiwu Xu 0001, Shengchao Qin
ICFEM5
2024 NL2CTL: Automatic Generation of Formal Requirements Specifications via Large Language Models
Mengyan Zhao, Yanhong Huang, Jianqi Shi, Shengchao Qin, Yang Yang 0141
ICFEM5
2024 RPG: Rust Library Fuzzing with Pool-based Fuzz Target Generation and Generic Support
abstract
Rust libraries are ubiquitous in Rust-based software development. Guaranteeing their correctness and reliability requires thorough analysis and testing. Fuzzing is a popular bug-finding solution, yet it requires writing fuzz targets for libraries. Recently, some automatic fuzz target generation methods have been proposed. However, two challenges remain: (1) how to generate diverse API sequences that prioritize unsafe code and interactions to reveal bugs in Rust libraries; (2) how to provide support for the generic APIs and verify both syntactic and semantic validity of the fuzz targets to enable more comprehensive testing of Rust libraries. In this paper, we propose RPG, an automatic fuzz target synthesis technique to support Rust library fuzzing. RPG uses a pool-based search to generate diverse and unsafe API sequences, and synthesizes fuzz targets with generic support and validity check. The experimental results demonstrate that RPG enhances both the quality of the generated fuzz targets and the bug-finding ability through pool-based generation and generic support, substantially outperforming the state-of-the-art. Moreover, RPG has discovered 25 previously unknown bugs from 50 well-known Rust libraries available on Crates.io.
Zhiwu Xu 0001, Bohao Wu, Cheng Wen 0002, Shengchao Qin, Mengda He
ICSE5
2024 Parf: Adaptive Parameter Refining for Abstract Interpretation
abstract
Abstract interpretation is a key formal method for the static analysis of programs. The core challenge in applying abstract interpretation lies in the configuration of abstraction and analysis strategies encoded by a large number of external parameters of static analysis tools. To attain low false-positive rates (i.e., accuracy) while preserving analysis efficiency, tuning the parameters heavily relies on expert knowledge and is thus difficult to automate. In this paper, we present a fully automated framework called Parf to adaptively tune the external parameters of abstract interpretation-based static analyzers. Parf models various types of parameters as random variables subject to probability distributions over latticed parameter spaces. It incrementally refines the probability distributions based on accumulated intermediate results generated by repeatedly sampling and analyzing, thereby ultimately yielding a set of highly accurate parameter settings within a given time budget. We have implemented Parf on top of Frama-C/Eva - an off-the-shelf open-source static analyzer for C programs - and compared it against the expert refinement strategy and Frama-C/Eva's official configurations over the Frama-C OSCS benchmark. Experimental results indicate that Parf achieves the lowest number of false positives on 34/37 (91.9%) program repositories with exclusively best results on 12/37 (32.4%) cases. In particular, Parf exhibits promising performance for analyzing complex, large-scale real-world programs.
Zhongyi Wang 0004, Linyu Yang, Mingshuai Chen, Yixuan Bu, Qiuye Wang, Shengchao Qin, Xiao Yi, Jianwei Yin
ASE7
2024 CtxFuzz: Discovering Heap-Based Memory Vulnerabilities Through Context Heap Operation Sequence Guided Fuzzing
Cheng Wen 0002, Shengchao Qin
TASE3
2024 CFStra: Enhancing Configurable Program Analysis Through LLM-Driven Strategy Selection Based on Code Features
Jie Su 0002, Liansai Deng, Cheng Wen 0002, Shengchao Qin, Cong Tian 0001
TASE4
2024 Trace Semantics for C++11 Memory Model
abstract
The C and C++ languages introduced the relaxed-memory concurrency into the language specification for efficiency purposes in 2011. Trace semantics can provide the mathematical foundation for the proposed C++11 memory model, and there is a lack of investigation of trace semantics for C++11. The Promising Semantics (PS) of Kang et al. provides the standard SC-style operational semantics for the C++11 concurrency model, where “SC” refers to “Sequential Consistency”. Inspired by PS, in this article we first investigate the trace semantics for the relaxed read and write accesses under C++11, acting in the denotational semantics style. In our semantic model, a trace is in the form of a sequence of snapshots, and the snapshots record the modification in the relevant global or local variables, and the thread view. Moreover, the trace semantics for the release/acquire accesses under C++11 is also explored, based on the separated thread views and newly added message views. When considering this trace model, different accesses bring in their unique snapshots, and make distinguished effects on the production of the sequences. For any given program, the proposed trace semantics in this article produces all the valid traces directly. Furthermore, our trace semantics, together with that for TSO and MCA ARMv8, has the possibility to be the foundation of the meta model of the trace semantics for weak memory models.
Lili Xiao, Huibiao Zhu, Sini Chen, Mengda He, Shengchao Qin
Formal Aspects Comput.5
2024 Automatically Inspecting Thousands of Static Bug Warnings with Large Language Model: How Far Are We?
abstract
Static analysis tools for capturing bugs and vulnerabilities in software programs are widely employed in practice, as they have the unique advantages of high coverage and independence from the execution environment. However, existing tools for analyzing large codebases often produce a great deal of false warnings over genuine bug reports. As a result, developers are required to manually inspect and confirm each warning, a challenging, time-consuming, and automation-essential task. This article advocates a fast, general, and easily extensible approach called Llm4sa that automatically inspects a sheer volume of static warnings by harnessing (some of) the powers of Large Language Models (LLMs). Our key insight is that LLMs have advanced program understanding capabilities, enabling them to effectively act as human experts in conducting manual inspections on bug warnings with their relevant code snippets. In this spirit, we propose a static analysis to effectively extract the relevant code snippets via program dependence traversal guided by the bug warning reports themselves. Then, by formulating customized questions that are enriched with domain knowledge and representative cases to query LLMs, Llm4sa can remove a great deal of false warnings and facilitate bug discovery significantly. Our experiments demonstrate that Llm4sa is practical in automatically inspecting thousands of static warnings from Juliet benchmark programs and 11 real-world C/C++ projects, showcasing a high precision (81.13%) and a recall rate (94.64%) for a total of 9,547 bug warnings. Our research introduces new opportunities and methodologies for using the LLMs to reduce human labor costs, improve the precision of static analyzers, and ensure software trustworthiness
Cheng Wen 0002, Yuandao Cai, Jie Su 0002, Zhiwu Xu 0001, Dugang Liu, Shengchao Qin, Zhong Ming 0001, Cong Tian 0001
ACM Trans. Knowl. Discov. Data7
2023 Detecting API-Misuse Based on Pattern Mining via API Usage Graph with Parameters
Zhiwu Xu 0001, Shengchao Qin
TASE3
2023 Baton: symphony of random testing and concolic testing through machine learning and taint analysis
Bihuan Chen 0001, Yang Liu 0003, Xin Peng 0001, Yijian Wu, Shengchao Qin
Sci. China Inf. Sci.5
2023 Output Range Analysis for Feed-Forward Deep Neural Networks via Linear Programming
abstract
The success of deep neural networks and their potential use in many safety-critical applications has motivated research on formal verification of deep neural networks. A fundamental primitive enabling the formal analysis of neural networks is the output range analysis. Existing approaches on output range analysis either focus on some simple activation functions, such as$\text{relu,}$or compute a relaxed result for some activation functions, such as exponential linear unit$\text{({elu}}$). In this article, we propose an approach to compute the output range for feed-forward deep neural networks via linear programming. The key idea is to encode the activation functions, such as$\text{{elu}}$and$\text{sigmoid}$, as linear constraints in term of the line between the left and right end-points of the input range and the tangent lines on some special points in the input range. A strategy to partition the network to get a tighter range is presented. The experimental results show that our approach gets a tighter result than RobustVerifier on$\text{{elu}}$networks and$\text{sigmoid}$networks. Moreover, our approach performs better than (the linear encodings implemented in) Crown on$\text{{elu}}$networks with$\alpha =0.5, 1.0$and$\text{sigmoid}$networks, and better than CNN-Cert and DeepCert on$\text{{elu}}$networks with$\alpha = 0.5$or 1.0. For$\text{{elu}}$networks with$\alpha = 2.0$, our approach can achieve results that are closed to Crown, CNN-Cert, and DeepCert. Finally, we also found that the network partition helps to achieve a tighter result as well as to improve the efficiency for$\text{{elu}}$networks.
Zhiwu Xu 0001, Yazheng Liu, Shengchao Qin, Zhong Ming 0001
IEEE Trans. Reliab.3
2022 Algebraic Semantics for C++11 Memory Model
abstract
The C++11 standard introduced a language level weak memory model (i.e., the C++11 memory model) to improve the performance of the execution of C/C++ programs. Algebra is well-suited for direct use by engineers in symbolic calculation of parameters. It is a challenge to investigate the algebraic semantics for the C++11 memory model. Inspired by the promising semantics, in this paper, we explore the algebraic laws for the C++11 memory model, including a set of sequential and parallel expansion laws. We introduce the concept of guarded choice, and every program under the C++11 memory model can be converted into the head normal form of guarded choice. In addition, the proposed algebraic laws are implemented in the rewriting engine Maude.
Lili Xiao, Huibiao Zhu, Mengda He, Shengchao Qin
COMPSAC4
2022 Controlled Concurrency Testing via Periodical Scheduling
abstract
Controlled concurrency testing (CCT) techniques have been shown promising for concurrency bug detection. Their key insight is to control the order in which threads get executed, and attempt to explore the space of possible interleavings of a concurrent program to detect bugs. However, various challenges remain in current CCT techniques, rendering them ineffective and ad-hoc. In this paper, we propose a novel CCT technique Period. Unlike previous works, Period models the execution of concurrent programs as periodical execution, and systematically explores the space of possible inter-leavings, where the exploration is guided by periodical scheduling and influenced by previously tested interleavings. We have evaluated Period on 10 real-world CVEs and 36 widely-used benchmark programs, and our experimental results show that Period demonstrates superiority over other CCT techniques in both effectiveness and runtime overhead. Moreover, we have discovered 5 previously unknown concurrency bugs in real-world programs.
Cheng Wen 0002, Mengda He, Bohao Wu, Zhiwu Xu 0001, Shengchao Qin
ICSE5
2022 Preface
Tao Xie 0001, Shengchao Qin, Jun Sun 0001, Lei Bu, Ge Li 0001
J. Comput. Sci. Technol.2
2022 Selected papers from The 13th International Symposium on Theoretical Aspects of Software Engineering 29 July - 1 August 2019, Guilin, China
Dominique Méry, Shengchao Qin
Sci. Comput. Program.2
2021 Bias Field Poses a Threat to DNN-Based X-Ray Recognition
abstract
Chest X-ray plays a key role in screening and diagnosis of many lung diseases including the COVID-19. Many works construct deep neural networks (DNNs) for chest X-ray images to realize automated and efficient diagnosis of lung diseases. However, bias field caused by the improper medical image acquisition process widely exists in the chest X-ray images while the robustness of DNNs to the bias field is rarely explored, posing a threat to the X-ray-based automated diagnosis system. In this paper, we study this problem based on the adversarial attack and propose a brand new attack, i.e., adversarial bias field attack where the bias field instead of the additive noise works as the adversarial perturbations for fooling DNNs. This novel attack poses a key problem: how to locally tune the bias field to realize high attack success rate while maintaining its spatial smoothness to guarantee high realisticity. These two goals contradict each other and thus has made the attack significantly challenging. To overcome this challenge, we propose the adversarial-smooth bias field attack that can locally tune the bias field with joint smooth & adversarial constraints. As a result, the adversarial X-ray images can not only fool the DNNs effectively but also retain very high level of realisticity. We validate our method on real chest X-ray datasets with powerful DNNs, e.g., ResNet50, DenseNet121, and MobileNet, and show different properties to the state-of-the-art attacks in both image realisticity and attack transferability. Our method reveals the potential threat to the DNN-based X-ray automated diagnosis and can definitely benefit the development of bias-field-robust automated diagnosis system.
Binyu Tian, Qing Guo 0005, Felix Juefei-Xu, Wen Le Chan, Yupeng Cheng, Xiaohong Li 0001, Xiaofei Xie, Shengchao Qin
ICME8
2021 Demystifying "bad" error messages in data science libraries
abstract
Error messages are critical starting points for debugging. Unfortunately, they seem to be notoriously cryptic, confusing, and uninformative. Yet, it still remains a mystery why error messages receive such bad reputations, especially given that they are merely very short pieces of natural language text. In this paper, we empirically demystify the causes and fixes of "bad" error messages, by qualitatively studying 201 Stack Overflow threads and 335 GitHub issues. We specifically focus on error messages encountered in data science development, which is an increasingly important but not well studied domain. We found that the causes of "bad" error messages are far more complicated than poor phrasing or flawed articulation of error message content. Many error messages are inherently and inevitably misleading or uninformative, since libraries do not know user intentions and cannot "see" external errors. Fixes to error-message-related issues mostly involve source code changes, while exclusive message content updates only take up a small portion. In addition, whether an error message is informative or helpful is not always clear-cut; even error messages that clearly pinpoint faults and resolutions can still cause confusion for certain users. These findings thus call for a more in-depth investigation on how error messages should be evaluated and improved in the future.
Yida Tao, Yepang Liu 0001, Jifeng Xuan, Zhiwu Xu 0001, Shengchao Qin
ESEC/SIGSOFT FSE6
2021 A Timed Automata based Automatic Framework for Verifying STL Properties of Simulink Models
abstract
Simulink has been widely used in model-based design and development. While we witness a growing demand on testing and verification for safety-critical systems, it remains a challenge to verify Simulink models, due largely to a lack of standardized formal semantics for Simulink. In this paper, we propose a comprehensive framework that allows us to automatically verify Simulink models. Our proposed framework is equipped with Signal Temporal Logic (STL) for system requirements specification and employs a formal method to translate Simulink models into UPPAAL timed automata, which can then be verified automatically by UPPAAL (against their STL specification). A novelty of our work is the integration of Simulink models with STL, allowing us to express and then verify complex time properties that may be found difficult by existing work. In our translation of Simulink models, we adopt symbolic execution to reduce the size of the translated automata that can produce accurate results. We also demonstrate the feasibility and effectiveness of the proposed framework via a case study of an autonomous driving system.
Jianqi Shi, Yanhong Huang, Shengchao Qin
TASE5
2021 Preface
Tao Xie 0001, Shengchao Qin
J. Comput. Sci. Technol.2
2021 A Multi-Agent Spatial Logic for Scenario-Based Decision Modeling and Verification in Platoon Systems
Yanhong Huang, Jianqi Shi, Shengchao Qin
J. Comput. Sci. Technol.4
2021 Speeding Up Data Manipulation Tasks with Alternative Implementations: An Exploratory Study
abstract
As data volume and complexity grow at an unprecedented rate, the performance of data manipulation programs is becoming a major concern for developers. In this article, we study how alternative API choices could improve data manipulation performance while preserving task-specific input/output equivalence. We propose a lightweight approach that leverages the comparative structures in Q&A sites to extracting alternative implementations. On a large dataset of Stack Overflow posts, our approach extracts 5,080 pairs of alternative implementations that invoke different data manipulation APIs to solve the same tasks, with an accuracy of 86%. Experiments show that for 15% of the extracted pairs, the faster implementation achieved >10x speedup over its slower alternative. We also characterize 68 recurring alternative API pairs from the extraction results to understand the type of APIs that can be used alternatively. To put these findings into practice, we implement a tool, AlterApi7 , to automatically optimize real-world data manipulation programs. In the 1,267 optimization attempts on the Kaggle dataset, 76% achieved desirable performance improvements with up to orders-of-magnitude speedup. Finally, we discuss notable challenges of using alternative APIs for optimizing data manipulation programs. We hope that our study offers a new perspective on API recommendation and automatic performance optimization.
Yida Tao, Shan Tang, Yepang Liu 0001, Zhiwu Xu 0001, Shengchao Qin
ACM Trans. Softw. Eng. Methodol.5
2021 Automatically 'Verifying' Discrete-Time Complex Systems through Learning, Abstraction and Refinement
abstract
Precisely modeling complex systems like cyber-physical systems is challenging, which often renders model-based system verification techniques like model checking infeasible. To overcome this challenge, we propose a method called LAR to automatically `verify' such complex systems through a combination of learning, abstraction and refinement from a set of system log traces. We assume that log traces and sampling frequency are adequate to capture `enough' behaviour of the system. Given a safety property and the concrete system log traces as input, LAR automatically learns and refines system models, and produces two kinds of outputs. One is a counterexample with a bounded probability of being spurious. The other is a probabilistic model based on which the given property is `verified'. The model can be viewed as a proof obligation, i.e., the property is verified if the model is correct. It can also be used for subsequent system analysis activities like runtime monitoring or model-based testing. Our method has been implemented as a self-contained software toolkit. The evaluation on multiple benchmark systems as well as a real-world water treatment system shows promising results.
Jingyi Wang 0004, Jun Sun 0001, Shengchao Qin, Cyrille Jégourel
IEEE Trans. Software Eng.3
2020 Navigating Discrete Difference Equation Governed WMR by Virtual Linear Leader Guided HMPC
abstract
In this paper, we revisit model predictive control (MPC) for the classical wheeled mobile robot (WMR) navigation problem. We prove that the reachable set based hierarchical MPC (HMPC), a state-of-the-art MPC, cannot handle WMR navigation in theory due to the non-existence of non-trivial linear system with an under-approximate reachable set of WMR. Nevertheless, we propose a virtual linear leader guided MPC (VLL-MPC) to enable HMPC structure. Different from current HMPCs, we use a virtual linear system with an under-approximate path set rather than the traditional trace set to guide the WMR. We provide a valid construction of the virtual linear leader. We prove the stability of VLL-MPC, and discuss its complexity. In the experiment, we demonstrate the advantage of VLL-MPC empirically by comparing it with NMPC, LMPC and anytime RRT* in several scenarios.
Chao Huang 0015, Xin Chen 0027, Enyi Tang, Mengda He, Lei Bu, Shengchao Qin, Yifeng Zeng
ICRA6
2020 Typestate-guided fuzzer for discovering use-after-free vulnerabilities
abstract
Existing coverage-based fuzzers usually use the individual control flow graph (CFG) edge coverage to guide the fuzzing process, which has shown great potential in finding vulnerabilities. However, CFG edge coverage is not effective in discovering vulnerabilities such as use-after-free (UaF). This is because, to trigger UaF vulnerabilities, one needs not only to cover individual edges, but also to traverse some (long) sequence of edges in a particular order, which is challenging for existing fuzzers. To this end, we propose to model UaF vulnerabilities as typestate properties, and develop a typestate-guided fuzzer, named UAFL, for discovering vulnerabilities violating typestate properties. Given a typestate property, we first perform a static typestate analysis to find operation sequences potentially violating the property. Our fuzzing process is then guided by the operation sequences in order to progressively generate test cases triggering property violations. In addition, we also employ an information flow analysis to improve the efficiency of the fuzzing process. We have performed a thorough evaluation of UAFL on 14 widely-used real-world programs. The experiment results show that UAFL substantially outperforms the state-of-the-art fuzzers, including AFL, AFLFast, FairFuzz, MOpt, Angora and QSYM, in terms of the time taken to discover vulnerabilities. We have discovered 10 previously unknown vulnerabilities, and received 5 new CVEs.
Haijun Wang 0002, Xiaofei Xie, Yi Li 0008, Cheng Wen 0002, Yuekang Li, Yang Liu 0003, Shengchao Qin, Hongxu Chen 0001, Yulei Sui
ICSE7
2020 MemLock: memory usage guided fuzzing
abstract
Uncontrolled memory consumption is a kind of critical software security weaknesses. It can also become a security-critical vulnerability when attackers can take control of the input to consume a large amount of memory and launch a Denial-of-Service attack. However, detecting such vulnerability is challenging, as the state-of-the-art fuzzing techniques focus on the code coverage but not memory consumption. To this end, we propose a memory usage guided fuzzing technique, named MemLock, to generate the excessive memory consumption inputs and trigger uncontrolled memory consumption bugs. The fuzzing process is guided with memory consumption information so that our approach is general and does not require any domain knowledge. We perform a thorough evaluation for MemLock on 14 widely-used real-world programs. Our experiment results show that MemLock substantially outperforms the state-of-the-art fuzzing techniques, including AFL, AFLfast, PerfFuzz, FairFuzz, Angora and QSYM, in discovering memory consumption bugs. During the experiments, we discovered many previously unknown memory consumption bugs and received 15 new CVEs.
Cheng Wen 0002, Haijun Wang 0002, Yuekang Li, Shengchao Qin, Yang Liu 0003, Zhiwu Xu 0001, Hongxu Chen 0001, Xiaofei Xie, Geguang Pu, Ting Liu 0002
ICSE4
2020 Understanding Performance Concerns in the API Documentation of Data Science Libraries
abstract
The development of efficient data science applications is often impeded by unbearably long execution time and rapid RAM exhaustion. Since API documentation is the primary information source for troubleshooting, we investigate how performance concerns are documented in popular data science libraries. Our quantitative results reveal the prevalence of data science APIs that are documented in performance-related context and the infrequent maintenance activities on such documentation. Our qualitative analyses further reveal that crowd documentation like Stack Overflow and GitHub are highly complementary to official documentation in terms of the API coverage, the knowledge distribution, as well as the specific information conveyed through performance-related content. Data science practitioners could benefit from our findings by learning a more targeted search strategy for resolving performance issues. Researchers can be more assured of the advantages of integrating both the official and the crowd documentation to achieve a holistic view on the performance concerns in data science development.
Yida Tao, Jiefang Jiang, Yepang Liu 0001, Zhiwu Xu 0001, Shengchao Qin
ASE5
2020 Analyzing Cryptographic API Usages for Android Applications Using HMM and N-Gram
abstract
A recent research shows that 88 % of Android applications that use cryptographic APIs make at least one mistake. For this reason, several tools have been proposed to detect crypto API misuses, such as CryptoLint, CMA, and CogniCryptSAsT. However, these tools depend heavily on manually designed rules, which require much cryptographic knowledge and could be error-prone. In this paper, we propose an approach based on probabilistic models, namely, hidden Markov model and n-gram model, to analyzing crypto API usages in Android applications. The difficulty lies in that crypto APIs are sensitive to not only API orders, but also their arguments. To address this, we have created a dataset consisting of crypto API sequences with arguments, wherein symbolic execution is performed. Finally, we have also conducted some experiments on our models, which shows that ( i) our models are effective in capturing the usages, detecting and locating the misuses; (ii) our models perform better than the ones without symbolic execution, especially in misuse detection; and (iii) compared with CogniCryptSAsT, our models can detect several new misuses.
Zhiwu Xu 0001, Xiongya Hu, Yida Tao, Shengchao Qin
TASE4
2020 An Axiomatic Approach to BigrTiMo
abstract
BigrTiMo [1], a process algebra that combines the rTiMo calculus [2] and the Bigraph model [3], is capable of specifying a rich variety of properties for structure-aware mobile systems. Compared with the rTiMo model, our BigrTiMo calculus can specify not only time, mobility and the local communication (the two communication components should be at the same location), but also the remote communication (the two communication components can be at the different locations). In this paper, we present an axiomatic approach to BigrTiMo program language verification based on Hoare-style [4] proof rules. In order to describe the timing of observable actions and the state of the bigraph, we extend the assertion language with primitives. Moreover, we prove the soundness of our proof rules and show the application of the proof rules via an example.
Wanling Xie, Huibiao Zhu, Shengchao Qin
TASE3
2019 Enhancing Symbolic Execution of Heap-Based Programs with Separation Logic for Test Input Generation
Long H. Pham, Quang Loc Le, Quoc-Sang Phan, Jun Sun 0001, Shengchao Qin
ATVA5
2019 Bi-Abductive Inference for Shape and Ordering Properties
abstract
In separation logic, bi-abduction - a combination of abductive inference and frame inference - is the key enabler for compositional reasoning, helping to scale up verification significantly. Indeed, the success of bi-abduction led to the development of Infer, the tool used daily to verify Facebook's codebase of millions of lines of code. However, this success currently stays largely within the shape domain. To extend this impact towards the combination of shape and arithmetic domains, in this work, we present a novel one-stage bi-abductive procedure for a combination of data structures and ordering values. The procedure is designed in the spirit of the Unfold-and-Match paradigm where the inference is utilized to derive any mismatched portion. We demonstrate our proposal through several interesting examples to show that it is promising for an automated verification of heap-manipulating programs.
Christopher Curry, Quang Loc Le, Shengchao Qin
ICECCS3
2019 How Do API Selections Affect the Runtime Performance of Data Analytics Tasks?
abstract
As data volume and complexity grow at an unprecedented rate, the performance of data analytics programs is becoming a major concern for developers. We observed that developers sometimes use alternative data analytics APIs to improve program runtime performance while preserving functional equivalence. However, little is known on the characteristics and performance attributes of alternative data analytics APIs. In this paper, we propose a novel approach to extracting alternative implementations that invoke different data analytics APIs to solve the same tasks. A key appeal of our approach is that it exploits the comparative structures in Stack Overflow discussions to discover programming alternatives. We show that our approach is promising, as 86% of the extracted code pairs were validated as true alternative implementations. In over 20% of these pairs, the faster implementation was reported to achieve a 10x or more speedup over its slower alternative. We hope that our study offers a new perspective of API recommendation and motivates future research on optimizing data analytics programs.
Yida Tao, Shan Tang, Yepang Liu 0001, Zhiwu Xu 0001, Shengchao Qin
ASE5
2019 Locating vulnerabilities in binaries via memory layout recovering
abstract
Locating vulnerabilities is an important task for security auditing, exploit writing, and code hardening. However, it is challenging to locate vulnerabilities in binary code, because most program semantics (e.g., boundaries of an array) is missing after compilation. Without program semantics, it is difficult to determine whether a memory access exceeds its valid boundaries in binary code. In this work, we propose an approach to locate vulnerabilities based on memory layout recovery. First, we collect a set of passed executions and one failed execution. Then, for passed and failed executions, we restore their program semantics by recovering fine-grained memory layouts based on the memory addressing model. With the memory layouts recovered in passed executions as reference, we can locate vulnerabilities in failed execution by memory layout identification and comparison. Our experiments show that the proposed approach is effective to locate vulnerabilities on 24 out of 25 DARPA’s CGC programs (96%), and can effectively classifies 453 program crashes (in 5 Linux programs) into 19 groups based on their root causes.
Haijun Wang 0002, Xiaofei Xie, Shangwei Lin 0001, Yun Lin 0001, Yuekang Li, Shengchao Qin, Yang Liu 0003, Ting Liu 0002
ESEC/SIGSOFT FSE6
2019 Type Learning for Binaries and Its Applications
abstract
Binary type inference is a challenging problem due partly to the fact that during the compilation much type-related information has been lost. Most existing research work resorts to program analysis techniques, which can be either too heavyweight to be viable in practice or too conservative to be able to infer types with high accuracy. In this paper, we propose a new approach to learning types for binary code. Motivated by “duck typing,” our approach learn types for recovered variables from their features and properties (e.g., related representative instructions). We first use machine learning to train a classifier with basic types as its levels from binaries with debugging information. The classifier is then used to learn types for new and unseen binaries. While for composite types, such as pointer and struct, a points-to analysis is performed. Finally, several experiments are conducted to evaluate our approach. The results demonstrate that our approach is more precise, both in terms of correct types and compatible types, than the commercial tool Hex-Rays, the open source tool Snowman, and a recent tool EKLAVYA using machine learning. We also show that the type information our proposed system learns is capable of helping detect malware.
Zhiwu Xu 0001, Cheng Wen 0002, Shengchao Qin
IEEE Trans. Reliab.3
2018 Automated Modular Verification for Relaxed Communication Protocols
Andreea Costea, Wei-Ngan Chin, Shengchao Qin, Florin Craciun
APLAS3
2018 Towards 'Verifying' a Water Treatment System
Jingyi Wang 0004, Jun Sun 0001, Yifan Jia 0002, Shengchao Qin, Zhiwu Xu 0001
FM4
2018 Variant Region Types
abstract
Region-based memory management has been shown to be an effective alternative that can co-exist with garbage collectors in memory managed languages especially for Real-Time and Big Data applications. In this paper we propose a novel variant region type system that extends our previous Java region types to Generic Java. The main difficulties are given by the type variables used by Generic Java. Our proposal is based on a modular flow analysis that captures regions lifetime relations via subtyping constraints at the method boundary. Our variant region type system guarantees that well-typed Generic Java programs use lexically-scoped regions and never create dangling references in the store and on the program stack.
Florin Craciun, Wei-Ngan Chin, Shengchao Qin
ICECCS3
2018 UTP Semantics for BigrTiMo
Wanling Xie, Huibiao Zhu, Shengchao Qin
ICFEM3
2018 CDGDroid: Android Malware Detection Based on Deep Learning Using CFG and DFG
Zhiwu Xu 0001, Kerong Ren, Shengchao Qin, Florin Craciun
ICFEM3
2018 Frame Inference for Inductive Entailment Proofs in Separation Logic
Quang Loc Le, Jun Sun 0001, Shengchao Qin
TACAS (1)3
2018 Towards a Program Logic for C11 Release-Sequences
abstract
By accepting order weakening for memory operations, the C11 memory model allows C/C++ programs to take advantage of modern hardware architectures, where weak/relaxed memory models are now the norm. However, the weakened C11 memory model introduces many complex and counterintuitive behaviours, rendering it more difficult for people to understand or reason about concurrent C11 programs. Several program logics (RSL, GPS, FSL, GPS+) have been proposed over the last few years to support formal reasoning for C11 programs, but each of them deals with only a specific subset of C11 programs, mainly due to the high complexity of the weakened memory model. Notably none of these program logics supports the reasoning of release-sequences - a highly flexible synchronisation mechanism in C11. Very recently, Doko and Vafeiadis propose a way in their FSL++ logic to reason about C11 programs using release-sequences, but their solution is restricted to those scenarios where only atomic update operations are between the release head and the receiver. In this paper we propose a new program logic that offers full support for reasoning about C11 programs using release-sequences. Our proposed logic is built on top of our previous program logic GPS+, but with much finer control over the resource transmission by introducing restricted-shareable assertions and an enhanced protocol system. We also illustrate our approach by verifying release-sequence programs that existing logics would not be able to.
Mengda He, Shengchao Qin, João F. Ferreira 0001
TASE2
2018 A UTP semantics for communicating processes with shared variables and its formal encoding in PVS
abstract
Abstract CSP# (communicating sequential programs) is a modelling language designed for specifying concurrent systems by integrating CSP-like compositional operators with sequential programs updating shared variables. In this work, we define an observation-oriented denotational semantics in an open environment for the CSP# language based on the UTP framework. To deal with shared variables, we lift traditional event-based traces into mixed traces which consist of state-event pairs for recording process behaviours. To capture all possible concurrency behaviours between action/channel-based communications and global shared variables, we construct a comprehensive set of rules on merging traces from processes which run in parallel/interleaving. We also define refinement to check process equivalence and present a set of algebraic laws which are established based on our denotational semantics. We further encode our proposed denotational semantics into the PVS theorem prover. The encoding not only ensures the semantic consistency, but also builds up a theoretic foundation for machine-assisted verification of CSP# specifications.
Ling Shi 0002, Yang Liu 0003, Jun Sun 0001, Jin Song Dong 0001, Shengchao Qin
Formal Aspects Comput.6
2018 State-taint analysis for detecting resource bugs
Zhiwu Xu 0001, Cheng Wen 0002, Shengchao Qin
Sci. Comput. Program.3
2018 Comparative modelling and verification of Pthreads and Dthreads
abstract
Abstract The POSIX threads (Pthreads) library is a thread API for C/C++ to control parallel threads and spawn concurrent process flows. Programming in Pthreads usually suffers from undesirable deadlock, data race, and race condition problems due to the potential nondeterministic execution behaviors between parallel threads. Dthreads, as another multithreading model that re‐implements Pthreads, was proposed by Liu et al for efficient deterministic multithreading. They found out that, under specific test cases, Dthreads can effectively prevent data races. However, no comparison test has been made with Pthreads. To perform a formal comparison between Pthreads and Dthreads over deadlocks, data races, and race conditions, in this paper, we adopt CSP (communicating sequential processes) as a formal model for specifying part of API functions in Pthreads and Dthreads and illustrate the model construction using 4 classical example programs. By feeding the models into the model checker PAT (process analysis toolkit), we have verified that deadlocks and data races exist in Pthreads, but do not exist in Dthreads, for the considered programs. We have also found that neither of them can prevent race conditions. Our comparative modelling and verification of Pthreads and Dthreads show that though Dthreads cannot prevent all the deadlock situations, shown by verification results of another 2 example programs, Dthreads is better than Pthreads on eliminating data races and preventing deadlocks. Considering limited scalability of Dthreads, we have introduced a new programming model to support coarse granularity in bank transfer. Our modelling is also extended by covering the synchronization operations in Liu et al work.
Yuan Fei, Huibiao Zhu, Xi Wu 0005, Huixing Fang, Shengchao Qin
J. Softw. Evol. Process.5
2017 Detecting Energy Bugs in Android Apps Using Static Analysis
Shengchao Qin, Zhendong Su 0001, Jian Zhang 0001, Jun Yan 0009
ICFEM3
2017 Improving Probability Estimation Through Active Probabilistic Model Learning
Jingyi Wang 0004, Xiaohong Chen 0002, Jun Sun 0001, Shengchao Qin
ICFEM4
2017 Learning Types for Binaries
Zhiwu Xu 0001, Cheng Wen 0002, Shengchao Qin
ICFEM3
2017 Switched Linear Multi-Robot Navigation Using Hierarchical Model Predictive Control
abstract
Multi-robot navigation control in the absence of reference trajectory is rather challenging as it is expected to ensure stability and feasibility while still offer fast computation on control decisions. The intrinsic high complexity of switched linear dynamical robots makes the problem even more challenging. In this paper, we propose a novel HMPC based method to address the navigation problem of multiple robots with switched linear dynamics. We develop a new technique to compute the reachable sets of switched linear systems and use them to enable the parallel computation of control parameters. We present theoretical results on stability, feasibility and complexity of the proposed approach, and demonstrate its empirical advance in performance against other approaches.
Chao Huang 0015, Xin Chen 0027, Yifan Zhang 0005, Shengchao Qin, Yifeng Zeng, Xuandong Li
IJCAI4
2017 Time-sensitive information flow control in timed event-B
abstract
Protecting confidential data in today's computing environments is an important problem. Information flow control can help to avoid information leakage and violations introduced by executing the software applications. In software development cycle, it is important to handle security related issues from the beginning specifications at the level of abstract. Mu [1] investigated the problem of preserving information flow security in the Event-B specification models. A typed Event-B model was presented to enforce information flow security and to prevent direct flows introduced by the system. However, in practice, timing behaviours of programs can also introduce a covert flow. The problem of run-time flow monitoring and controlling must also be addressed. This paper investigates information flow control in the Event-B specification language with timing constructs. We present a timed Event-B system by introducing timers and relevant time constraints into the system events. We suggest a time-sensitive flow security condition for the timed Event-B systems, and present a type system to close the covert channels of timing flows for the system by ensuring the security condition. We then investigate how to refine timed events during the stepwise refinement modelling to satisfy the security condition.
Chunyan Mu, Shengchao Qin
TASE2
2017 Core Hybrid Event-B II: Multiple cooperating Hybrid Event-B machines
Richard Banach, Michael J. Butler, Shengchao Qin, Huibiao Zhu
Sci. Comput. Program.3
2017 Automated specification inference in a combined domain via user-defined predicates
Shengchao Qin, Guanhua He, Wei-Ngan Chin, Florin Craciun, Mengda He, Zhong Ming 0001
Sci. Comput. Program.1
2017 Language Inclusion Checking of Timed Automata with Non-Zenoness
abstract
Given a timed automaton P modeling an implementation and a timed automaton S as a specification, the problem of language inclusion checking is to decide whether the language of P is a subset of that of S. It is known to be undecidable. The problem gets more complicated if non-Zenoness is taken into consideration. A run is Zeno if it permits infinitely many actions within finite time. Otherwise it is non-Zeno. Zeno runs might present in both P and S. It is necessary to check whether a run is Zeno or not so as to avoid presenting Zeno runs as counterexamples of language inclusion checking. In this work, we propose a zone-based semi-algorithm for language inclusion checking with non-Zenoness. It is further improved with simulation reduction based on LU-simulation. Though our approach is not guaranteed to terminate, we show that it does in many cases through empirical study. Our approach has been incorporated into the PAT model checker, and applied to multiple systems to show its usefulness.
Xinyu Wang 0001, Jun Sun 0001, Ting Wang 0004, Shengchao Qin
IEEE Trans. Software Eng.4
2016 Formalization and Verification of the Powerlink Protocol Using CSP
abstract
As an integral part of the Ethernet standard IEEE 802.3, the Ethernet Powerlink protocol is widely used in the automation industry. It is a software-based solution and achieves some real-time capabilities. It satisfies data transmission demands by guaranteeing communication with very high speed and accuracy. In effort to make implementing Powerlink protocol easier, we build a formal Powerlink model via Communicating Sequential Processes (CSP) and implement it in the model checker Process Analysis Toolkit (PAT). Based on the model, we simulate Managing Node (MN) and Controlled Node (CN) behaviors in a Powerlink cycle. We verify and evaluate the scheduling algorithm given in the official tutorial, and present an improved algorithm. At last, we verify some properties including deadlock about the Powerlink protocol and whether it exhibits problematic behavior when it is operating.
Haiping Pang, Yijia Ruan, Yanhong Huang, Jianqi Shi, Shengchao Qin
APSEC6
2016 Concurrent On-the-Fly SCC Detection for Automata-Based Model Checking with Fairness Assumption
abstract
Model checking is an automated technique for verifying temporal logic properties of finite state systems. Tarjan's algorithm for detecting Strongly Connected Components (SCCs) is a widely used depth-first search procedure for Automatabased (LTL) model checking. It works on the SCC detection on-the-fly with the composition of transition systems and Büchi Automaton (state space generation), which has been deployed as sequential implementations in many tools. However, these implementations suffer from heavy time cost for systems which involve a large number of SCC explorations. To address this issue, in this paper, we develop a concurrent SCC detection approach for the on-the-fly generated state space in LTL model checking by expanding the existing concurrent Tarjan's algorithm. Besides, we involve fairness checking. Different that the previous work, which performs fairness checking after the generation of a complete SCC, in our approach we perform fairness checking during SCC generation to improve efficiency. We implement our approach in PAT model checker. Our experimental results show that our approach achieves up to 2X speedup for the complete SCC detection in large-scale system models compared to the sequential on-the-fly model checking in PAT. Besides, our parallel on-the-fly fairness checking approach speedups fairness checking around 2X~45X.
Zhimin Wu, Akin Günay, Yang Liu 0003, Shengchao Qin
ICECCS5
2016 Hierarchical Model Predictive Control for Multi-Robot Navigation
Chao Huang 0015, Xin Chen 0027, Yifan Zhang 0005, Shengchao Qin, Yifeng Zeng, Xuandong Li
IJCAI4
2016 Reasoning about Fences and Relaxed Atomics
abstract
For efficiency reasons, weak (or relaxed) memory is now the norm on modern architectures. To cater for this trend, modern programming languages are adapting their memory models. The new C11 memory model [1] allows several levels of memory weakening, including non-atomics, relaxed atomics, release-acquire atomics, and sequentially consistent atomics. Under such weak memory models, multithreaded programs exhibit more behaviours, some of which would have been inconsistent under the traditional strong (i.e. sequentially consistent) memory model. This makes the task of reasoning about concurrent programs even more challenging. The GPS framework, recently developed by Turon et al.[22], has made a step forward towards tackling this challenge. By integrating ghost states, per-location protocols and separation logic, GPS can successfully verify programs with release-acquire atomics. In this paper, we present a program logic, an enhancement of the GPS framework, that can support the verification of a bigger class of C11 programs, that is, programs with release-acquire atomics, relaxed atomics and release-acquire fences. Key elements of our proposed logic include two new types of assertions, a more expressive resource model and a set of newly-designed verification rules.
Mengda He, Viktor Vafeiadis, Shengchao Qin, João F. Ferreira 0001
PDP3
2016 State-Taint Analysis for Detecting Resource Bugs
abstract
To verify whether a program uses resources in a valid manner is vital for program correctness. A number of solutions have been proposed to ensure such a property for resource usage. But most of them are sophisticated to use for resource bugs detection in practice and do not concern about the issue that an opened resource should be used. This open-but-not-used problem can cause resource starvation in some case as well. In particular, resources of smartphones are not only scarce but also energy-hungry. The misuse of resources could not only cause the system to run out of resources but also lead to a shorter battery life. That is the so-call energy leak problem. Aiming to provide a lightweight method and to detect as many resource bugs as possible, we propose a statetaint analysis in this paper. First, take the open-but-not-used problem into account, we specify the appropriate usage of resources as resource protocols. Then we propose a taint-like analysis which takes resource protocols as a guide to detect resource bugs. As an application, we enrich the resource usage protocols by taking into account energy leaks and use the refined protocols to guide the analysis for energy leak detection. We implement the analysis as a prototype tool called statedroid. Using this tool, we conduct experiments on several real Android applications and find several energy leaks.
Zhiwu Xu 0001, Dongxiao Fan, Shengchao Qin
TASE3
2016 Maximizing influence under influence loss constraint in social networks
Yifeng Zeng, Xuefeng Chen 0001, Gao Cong, Shengchao Qin, Jing Tang 0001, Yanping Xiang
Expert Syst. Appl.4
2015 On Information Coverage for Location Category Based Point-of-Interest Recommendation
abstract
Point-of-interest(POI) recommendation becomes a valuable service in location-based social networks. Based on the norm that similar users are likely to have similar preference of POIs, the current recommendation techniques mainly focus on users' preference to provide accurate recommendation results. This tends to generate a list of homogeneous POIs that are clustered into a narrow band of location categories(like food, museum, etc.) in a city. However, users are more interested to taste a wide range of flavors that are exposed in a global set of location categories in the city.In this paper, we formulate a new POI recommendation problem, namely top-K location category based POI recommendation, by introducing information coverage to encode the location categories of POIs in a city.The problem is NP-hard. We develop a greedy algorithm and further optimization to solve this challenging problem. The experimental results on two real-world datasets demonstrate the utility of new POI recommendations and the superior performance of the proposed algorithms.
Xuefeng Chen 0001, Yifeng Zeng, Gao Cong, Shengchao Qin, Yanping Xiang, Yuan-Shun Dai
AAAI4
2015 Probabilistic Denotational Semantics for an Interrupt Modelling Language
abstract
Interrupts play an important role in real time and embedded systems. It is purposely designed to handle unexpected and emergent issues. However, the randomicity of interrupts brings some potential safety problems, i.e., too frequently interrupt handling would cause the interrupted program to miss its deadline. It is therefore difficult to precisely predict and formally reason about a program's behavior in the presence of interrupts. In this paper, we move one step forward by proposing a probabilistic denotational model for an interrupt modeling language that is capable of describing programs with nested interrupts, to characterise the formal semantics of such programs from a quantitative perspective under Hoare and He's UTP framework. On top of the denotational model, we also present a set of algebraic laws involving distinct features. Our model sets up a semantic foundation for the analysis and reasoning about programs with nested interrupts for embedded systems.
Yanhong Huang, Shengchao Qin, Jifeng He 0001
ICECCS3
2015 GPU Accelerated On-the-Fly Reachability Checking
abstract
Model checking suffers from the infamous state space explosion problem. In this paper, we propose an approach, named GPURC, to utilize the Graphics Processing Units (GPUs) to speed up the reachability verification. The key idea is to achieve a dynamic load balancing so that the many cores in GPUs are fully utilized during the state space exploration. To this end, we firstly construct a compact data encoding of the input transition systems to reduce the memory cost and fit the calculation in GPUs. To support a large number of concurrent components, we propose a multi-integer encoding with conflict-release accessing approach. We then develop a BFS-based state space generation algorithm in GPUs, which makes full use of the GPU memory hierarchy and the latest dynamic parallelism feature in CUDA to achieve a high parallelism. GPURC also supports a parallel collaborative event synchronization approach and integrates a GPU hashing method to reduce the cost of data accessing. The experiments show that GPURC can give significant performance speedup (average 50X and up to 100X) compared with the traditional sequential algorithms.
Zhimin Wu, Yang Liu 0003, Jun Sun 0001, Jianqi Shi, Shengchao Qin
ICECCS5
2015 Optimal Route Search with the Coverage of Users' Preferences
Yifeng Zeng, Xuefeng Chen 0001, Xin Cao 0001, Shengchao Qin, Marc Cavazza, Yanping Xiang
IJCAI4
2015 Termination and non-termination specification inference
abstract
Techniques for proving termination and non-termination of imperative programs are usually considered as orthogonal mechanisms. In this paper, we propose a novel mechanism that analyzes and proves both program termination and non-termination at the same time. We first introduce the concept of second-order termination constraints and accumulate a set of relational assumptions on them via a Hoare-style verification. We then solve these assumptions with case analysis to determine the (conditional) termination and non- termination scenarios expressed in some specification logic form. In contrast to current approaches, our technique can construct a summary of terminating and non-terminating behaviors for each method. This enables modularity and reuse for our termination and non-termination proving processes. We have tested our tool on sample programs from a recent termination competition, and compared favorably against state-of-the-art termination analyzers.
Ton Chanh Le, Shengchao Qin, Wei-Ngan Chin
PLDI2
2015 TLV: abstraction through testing, learning, and validation
abstract
A (Java) class provides a service to its clients (i.e., programs which use the class). The service must satisfy certain specifications. Different specifications might be expected at different levels of abstraction depending on the client's objective. In order to effectively contrast the class against its specifications, whether manually or automatically, one essential step is to automatically construct an abstraction of the given class at a proper level of abstraction. The abstraction should be correct (i.e., over-approximating) and accurate (i.e., with few spurious traces). We present an automatic approach, which combines testing, learning, and validation, to constructing an abstraction. Our approach is designed such that a large part of the abstraction is generated based on testing and learning so as to minimize the use of heavy-weight techniques like symbolic execution. The abstraction is generated through a process of abstraction/refinement, with no user input, and converges to a specific level of abstraction depending on the usage context. The generated abstraction is guaranteed to be correct and accurate. We have implemented the proposed approach in a toolkit named TLV and evaluated TLV with a number of benchmark programs as well as three real-world ones. The results show that TLV generates abstraction for program analysis and verification more efficiently.
Jun Sun 0001, Yang Liu 0003, Shangwei Lin 0001, Shengchao Qin
ESEC/SIGSOFT FSE5
2015 Denotational semantics and its algebraic derivation for an event-driven system-level language
abstract
Abstract As a system-level modelling language, SystemC possesses several novel features such as delayed notifications, notification cancelling, notification overriding and delta-cycle. It also has real-time and shared-variable features. Previously we have studied an operational semantics for SystemC Peng et al. (An operational semantics of an event-driven system-level simulator, pp 190–200, 2006 ) and bisimulation has been introduced based on some aspects of reasonable abstractions. The denotational method is another approach to studying the semantics of a programming language. It provides the mathematical meaning to programs and can predict the behaviour of programs. Due to the novel features of SystemC, it is challenging to study the denotational semantics for SystemC. In this paper, we applyUnifying Theories of Programming(abbreviated asUTP) Hoare and He (Unifying theories of programming, 1998 ) in exploring the denotational semantics. Two trace variables are introduced, one to record the state behaviours and another to record the event behaviours. The timed model is formalized in a threedimensional structure. A set of algebraic laws is explored, which can be proved via the presented denotational semantics. In this paper, we also consider the linking between denotational semantics and algebraic semantics. The linking is obtained by deriving the denotational semantics from algebraic semantics for SystemC. A complete set of parallel expansion laws is explored, where the location status of an instantaneous action is studied. The location status indicates an instantaneous action is due to which exact parallel component. We introduce the concept of head normal form for each program and every program is expressed in the form of guarded choice with location status. Based on this, the derivation strategy for deriving denotational semantics from algebraic semantics is provided.
Huibiao Zhu, Jifeng He 0001, Shengchao Qin, Phillip J. Brooke
Formal Aspects Comput.3
2015 Semantic theories of programs with nested interrupts
Yanhong Huang, Jifeng He 0001, Huibiao Zhu, Jianqi Shi, Shengchao Qin
Frontiers Comput. Sci.6
2015 Core Hybrid Event-B I: Single Hybrid Event-B machines
Richard Banach, Michael J. Butler, Shengchao Qin, Nitika Verma, Huibiao Zhu
Sci. Comput. Program.3
2014 Shape Analysis via Second-Order Bi-Abduction
Quang Loc Le, Cristian Gherghina, Shengchao Qin, Wei-Ngan Chin
CAV3
2014 Choreography Scenario-Based Test Data Generation
abstract
Web service choreography specifies a sequence of interactions among multiple services. How to test if a Web service conforms with given choreography specification is a challenging question. It is important to generate test data (i.e. XML instance) based on the choreography. Since choreography scenarios describe expected interactions among multiple participants, it is possible to generate test data based on those scenarios. This paper presents a set of test data generating rules and algorithms based on refined type trees, which are obtained from choreography scenario and corresponding XML Schema type document. We have built a prototype tool to support automatic test data generation and illustrate the process of generating XML instances via a purchase order choreography scenario example.
Jun Yan 0009, Jian Zhang 0001, Shengchao Qin
TASE6
2014 Automatically refining partial specifications for heap-manipulating programs
Shengchao Qin, Guanhua He, Chenguang Luo, Wei-Ngan Chin
Sci. Comput. Program.1
2014 Automated verification of the FreeRTOS scheduler in Hip/Sleek
João F. Ferreira 0001, Cristian Gherghina, Guanhua He, Shengchao Qin, Wei-Ngan Chin
Int. J. Softw. Tools Technol. Transf.4
2014 Expressive program verification via structured specifications
Cristian Gherghina, Cristina David, Shengchao Qin, Wei-Ngan Chin
Int. J. Softw. Tools Technol. Transf.3
2013 Data-Race-Freedom of Concurrent Programs
abstract
Reasoning about access isolation in a program that uses locks, transactions or both to coordinate accesses to shared memory is complex and error-prone. The programmer must understand when accesses issued to the same memory by distinct threads, under possibly different coordination semantics, are isolated, otherwise, data races are introduced. We present a program analysis that guarantees a program is data-race-free irrespective of whether locks, transactions or both are used to coordinate accesses to memory. Our framework entails two main steps: (i) a program is statically executed to determine its memory space and the types of accesses it issues to that memory, then (ii) our isolation algorithm checks that the accesses issued by the program do not result in a data race. To the best of our knowledge our work is the first to guarantee the data-race-freedom of concurrent programs that use locks, transactions or both to coordinate accesses to mutable memory.
Granville Barnett, Shengchao Qin
APSEC (1)2
2013 Linking the Semantics of BPEL Using Maude
abstract
Web services have become more and more important in these years. It is of key importance for enterprise web applications to combine different services available to accomplish complex business process. BPEL4WS (BPEL) is the OASIS standard for web services composition and orchestration. It contains several distinct features, including scope-based compensation and fault handling mechanism. We have already studied the semantics for BPEL, including the operational semantics, algebraic semantics and their linking theory. This paper considers the mechanical approach to linking the operational semantics and algebraic semantics for BPEL. Our approach is to generate operational semantics from algebraic semantics, and to use equational and rewriting logic system Maude to mechanize the linking between the two semantics. Firstly, we investigate the algebraic laws in the Maude approach. Based on the algebraic semantics, the generation of head normal form is explored. Secondly, we consider the Maude approach to deriving the operational semantics from algebraic semantics, where the derivation strategy is based on the concept of head normal form. Our mechanical approach using Maude can visually show the head normal form of each program, as well as the execution steps of a program based on the derivation strategy. Finally, we also mechanize the derived operational semantics. The results mechanized from the second and third exploration indicate that the transition system of the derived operational semantics is the same as the one based on the derivation strategy.
Huibiao Zhu, Shengchao Qin, Phillip J. Brooke, Xi Wu 0005
APSEC (1)3
2013 Verifying Simulink diagrams via a Hybrid Hoare Logic Prover
abstract
Simulink is an industrial de-facto standard for building executable models of embedded systems and their environments, facilitating validation by simulation. Due to the inherent incompleteness of this form of system validation, complementing simulation by formal verification would be desirable. A prerequisite for such an approach is a formal semantics of Simulink's graphical models. In this paper, we show how to encode Simulink diagrams into Hybrid CSP (HCSP), a formal modelling language encoding hybrid system dynamics by means of an extension of CSP. The translation from Simulink to HCSP is fully automatic. We furthermore discuss how to utilize a Hybrid Hoare Logic Prover to verify the translated HCSP models. We demonstrate our approach on a combined scenario originating from the Chinese High-speed Train Control System at Level 3 (CTCS-3).
Liang Zou, Naijun Zhan, Shuling Wang 0003, Martin Fränzle, Shengchao Qin
EMSOFT5
2013 Linking Algebraic Semantics and Operational Semantics for Web Services Using Maude
abstract
Web services have become more and more important in these years. It is of key importance for enterprise web applications to combine different services available to accomplish complex business processes. BPEL4WS (BPEL) is the OASIS standard for web services composition and orchestration. It contains several distinct features, including scope-based compensation and fault handling mechanism. We have already studied the semantics for BPEL, including the operational semantics, algebraic semantics and their linking theory. This paper considers the mechanical approach to linking the algebraic semantics and operational semantics for BPEL. Our approach is to generate operational semantics from algebraic semantics, and to use equational and rewriting logic system Maude to mechanize the linking between the two semantics. Firstly, we investigate the algebraic laws in the Maude approach. Based on the algebraic semantics, the generation of head normal form is explored. Secondly, we consider the Maude approach to deriving the operational semantics from algebraic semantics, where the derivation strategy is based on the concept of head normal form. Our mechanical approach using Maude can visually show the head normal form of each program, as well as the execution steps of a program based on the derivation strategy.
Huibiao Zhu, Shengchao Qin, Phillip J. Brooke, Xi Wu 0005
ICECCS3
2013 Automated Specification Discovery via User-Defined Predicates
Guanhua He, Shengchao Qin, Wei-Ngan Chin, Florin Craciun
ICFEM2
2013 Deadline Analysis of AUTOSAR OS Periodic Tasks in the Presence of Interrupts
Yanhong Huang, João F. Ferreira 0001, Guanhua He, Shengchao Qin, Jifeng He 0001
ICFEM4
2013 A UTP Semantics for Communicating Processes with Shared Variables
Ling Shi 0002, Yang Liu 0003, Jun Sun 0001, Jin Song Dong 0001, Shengchao Qin
ICFEM6
2013 Algorithms for checking channel passing in web service choreography
Chao Cai 0002, Liyang Peng, Xiangpeng Zhao, Zongyan Qiu, Shengchao Qin
Frontiers Comput. Sci.6
2013 Loop invariant synthesis in a combined abstract domain
Shengchao Qin, Guanhua He, Chenguang Luo, Wei-Ngan Chin, Xin Chen 0027
J. Symb. Comput.1
2012 A Composable Mixed Mode Concurrency Control Semantics for Transactional Programs
Granville Barnett, Shengchao Qin
ICFEM2
2012 The Rely/Guarantee Approach to Verifying Concurrent BPEL Programs
Huibiao Zhu, Qiwen Xu, Chris Ma, Shengchao Qin, Zongyan Qiu
SEFM4
2012 A Timed CSP Model for the Time-Triggered Language Giotto
abstract
Giotto is a time-triggered embedded programming language which provides an abstract programming model for hard real-time applications. It effectively decouples the implementation from the design. A Giotto program focuses on the functionality and timing of periodic tasks. All the actions, e.g., task invocations, actuator updates, and mode switches, described in Giotto programs are triggered by real time. We take the views of the concerns of Giotto programs, including the reaction to the environment, the communication between tasks, the timing predictability, etc. Our goal is to simulate Giotto programs using a timed CSP-based model which can effectively express the concerns and can be used to verify safety properties. This paper is a first step that presents the timed CSP model for Giotto programs. We also give a case study to illustrate the utility of the timed CSP model. Based on the existing research for CSP with time, we believe that our model can support to analyze and verify safety properties of Giotto programs.
Yanhong Huang, Shengchao Qin, Guanhua He, João F. Ferreira 0001
SEW3
2012 LBI Cut Elimination Proof with BI-MultiCut
abstract
Cut elimination in sequent calculus is indispensable in bounding the number of distinct formulas to appear during a backward proof search. A usual approach to prove cut admissibility is permutation of derivation trees. Extra care must be taken, however, when contraction appears as an explicit inference rule. In G1i for example, a simple-minded permutation strategy comes short around contraction interacting directly with cut formulas, which entails irreducibility of the derivation height of Cut instances. One of the practices employed to overcome this issue is the use of MultiCut (the “mix” rule) which takes into account the eject of contraction within. A more recent substructural logic BI inherits the characteristics of the intuitionistic logic but also those of multiplicative linear logic (without exponentials). Following Pym's original work, the cut admissibility in LBI (the original BI sequent calculus) is supposed to hold with the same tweak. However, there is a critical issue in the approach: MultiCut does not take care of the eject of structural contraction that LBI permits. In this paper, we show a proper proof of the LBI cut admissibility based on another derivable rule BI-MultiCut.
Ryuta Arisaka, Shengchao Qin
TASE2
2012 Moverness for Locks and Transactions
abstract
Locks are pervasive in multithreaded code. For software transactional memory (STM) to be widely adopted there must be a consensus on a semantics for programs that entail both locks and transactions, particularly for weakly isolated STMs. For instance, in a weakly isolated STM, use of both locks and transactions to access the same data may introduce data races. In response we present a simple and intuitive semantics that guarantees ordered linearisation points for conflicting locks and transactions. Our approach allows us to classify the moverness of locks and transactions, making reasoning about parallel compositions trivial. Under our semantics we show locks to be left movers and transactions right movers, and the serialisability of conflicting locks and transactions.
Granville Barnett, Shengchao Qin
TASE2
2012 Automated Verification of the FreeRTOS Scheduler in HIP/SLEEK
abstract
Automated verification of operating system kernels is a challenging problem, partly due to the use of shared mutable data structures. In this paper, we show how we can automatically verify memory safety and functional correctness of the task scheduler component of the FreeRTOS kernel using the verification system HIP/SLEEK. We show how some of HIP/SLEEK features like user-defined predicates and lemmas make the specifications highly expressive and the verification process viable. To the best of our knowledge, this is the first code-level verification of memory safety and functional correctness properties of the FreeRTOS scheduler. The outcome of our experiment confirms that HIP/SLEEK can indeed be used to verify code that is used in production. Moreover, since the properties that we verify are quite general, we envisage that the same approach can be adopted to verify the scheduler of other operating systems.
João F. Ferreira 0001, Guanhua He, Shengchao Qin
TASE3
2012 The stochastic semantics and verification for periodic control systems
Mengfei Yang, Zheng Wang 0005, Geguang Pu, Shengchao Qin, Bin Gu 0006, Jifeng He 0001
Sci. China Inf. Sci.4
2012 Automated verification of shape, size and bag properties via user-defined predicates in separation logic
Wei-Ngan Chin, Cristina David, Huu Hai Nguyen, Shengchao Qin
Sci. Comput. Program.4
2011 A Specialization Calculus for Pruning Disjunctive Predicates to Support Verification
Wei-Ngan Chin, Cristian Gherghina, Razvan Voicu, Quang Loc Le, Florin Craciun, Shengchao Qin
CAV6
2011 Structured Specifications for Better Verification of Heap-Manipulating Programs
Cristian Gherghina, Cristina David, Shengchao Qin, Wei-Ngan Chin
FM3
2011 Automatically Refining Partial Specifications for Program Verification
Shengchao Qin, Chenguang Luo, Wei-Ngan Chin, Guanhua He
FM1
2011 Towards an Axiomatic Verification System for JavaScript
abstract
JavaScript as a Web scripting language has been widely used following the fast growth of Internet. Due to the flexible and dynamic features offered by the JavaScript language, it has become a challenging problem to statically reason about code written in JavaScript. As a first step towards building a mechanised verification system for JavaScript, we present, in this paper, an axiomatic verification system for a core subset of JavaScript based on a variant of separation logic. We have also defined a big-step operational semantics with respect to which we have demonstrated the soundness of our verification system.
Shengchao Qin, Aziem Chawdhary, Wei Xiong 0007, Malcolm Munro, Zongyan Qiu, Huibiao Zhu
TASE1
2010 Loop Invariant Synthesis in a Combined Domain
Shengchao Qin, Guanhua He, Chenguang Luo, Wei-Ngan Chin
ICFEM1
2010 Verifying Heap-Manipulating Programs with Unknown Procedure Calls
Shengchao Qin, Chenguang Luo, Guanhua He, Florin Craciun, Wei-Ngan Chin
ICFEM1
2010 Stack Bound Inference for Abstract Java Bytecode
abstract
Ubiquitous embedded systems are often resource-constrained. Developing software for these systems should take into account resources such as memory space. In this paper, we develop and implement an analysis framework to infer statically stack usage bounds for assembly-level programs in abstract Java Byte code. Our stack bound inference process, extended from a theoretical framework proposed earlier by some of the authors, is composed of deductive inference rules in multiple passes. Based on these rules, a usable tool has been developed for processing programs to capture the stack memory needs of each procedure in terms of the symbolic values of its parameters. The final result contains path-sensitive information to achieve better precision. The tool invokes a Presburger solver to perform fixed point analysis for loops and recursive procedures. Our initial experiments have confirmed the viability and power of the approach.
Zongyan Qiu, Shengchao Qin, Wei-Ngan Chin
TASE3
2010 Verifying pointer safety for programs with unknown calls
Chenguang Luo, Florin Craciun, Shengchao Qin, Guanhua He, Wei-Ngan Chin
J. Symb. Comput.3
2009 Memory Usage Verification Using Hip/Sleek
Guanhua He, Shengchao Qin, Chenguang Luo, Wei-Ngan Chin
ATVA2
2009 An Interval-Based Inference of Variant Parametric Types
Florin Craciun, Wei-Ngan Chin, Guanhua He, Shengchao Qin
ESOP4
2008 A Heap Model for Java Bytecode to Support Separation Logic
abstract
Memory usage analysis is an important problem for resource-constrained mobile devices, especially under mission- or safety-critical circumstances. Program codes running on or being downloaded into such devices are often available in low-level bytecode forms. We propose in this paper a formal heap model for Java bytecode language, on top of which we can then provide separation logic support for further memory usage verification. Our low-level heap model for Java bytecode would allow us to reason about the size and alignment properties of primitive values stored in the heap. To support type-related reasoning such as guaranteeing type and alignment safety, this model is also lifted with both base types and user-defined classes. Based on such model, we have also defined a separation logic proof system whose assertions are interpreted using the lifted heap with types. We envision, with further extension, the system would provide good support for memory usage analysis and verification for mobile devices.
Chenguang Luo, Guanhua He, Shengchao Qin
APSEC3
2008 A Formal Soundness Proof of Region-Based Memory Management for Object-Oriented Paradigm
Florin Craciun, Shengchao Qin, Wei-Ngan Chin
ICFEM2
2008 Analysing memory resource bounds for low-level programs
abstract
Embedded systems are becoming more widely used but these systems are often resource constrained. Programming models for these systems should take into formal consideration resources such as stack and heap. In this paper, we show how memory resource bounds can be inferred for assembly-level programs. Our inference process captures the memory needs of each method in terms of the symbolic values of its parameters. For better precision, we infer path-sensitive information through a novel guarded expression format. Our current proposal relies on a Presburger solver to capture memory requirements symbolically, and to perform fixpoint analysis for loops and recursion. Apart from safety in memory adequacy, our proposal can provide estimate on memory costs for embedded devices and improve performance via fewer runtime checks against memory bound.
Wei-Ngan Chin, Huu Hai Nguyen, Corneliu Popeea, Shengchao Qin
ISMM4
2008 Enhancing modular OO verification with separation logic
abstract
Conventional specifications for object-oriented (OO) programs must adhere to behavioral subtyping in support of class inheritance and method overriding. However, this requirement inherently weakens the specifications of overridden methods in superclasses, leading to imprecision during program reasoning. To address this, we advocate a fresh approach to OO verification that focuses on the distinction and relation between specifications that cater to calls with static dispatching from those for calls with dynamic dispatching. We formulate a novel specification subsumption that can avoid code re-verification, where possible. Using a predicate mechanism, we propose a flexible scheme for supporting class invariant and lossless casting. Our aim is to lay the foundation for a practical verification system that is precise, concise and modular for sequential OO programs. We exploit the separation logic formalism to achieve this.
Wei-Ngan Chin, Cristina David, Huu Hai Nguyen, Shengchao Qin
POPL4
2008 Verifying BPEL-Like Programs with Hoare Logic
abstract
The WS-BPEL language has become a de facto standard for modeling Web-based business processes. One of its essential features is the fully programmable compensation mechanism. To understand it better, many works have mainly focused on formal semantic models for WS-BPEL. In this paper, we make one step forward by investigating the verification problem for business processes written in BPEL-like languages. We propose a set of proof rules in Hoare-logic style as an axiomatic verification system for a BPEL-like core language containing key features such as data states, fault and compensation handling. We also propose a big-step operational semantics which incorporates all these key features. Our verification rules are proven sound with respect to this underlying semantics. The application of the verification rules is illustrated via the proof search process for a nontrivial example.
Chenguang Luo, Shengchao Qin, Zongyan Qiu
TASE2
2008 Verifying BPEL-like programs with Hoare logic
Chenguang Luo, Shengchao Qin, Zongyan Qiu
Frontiers Comput. Sci. China2
2008 Timed Automata Patterns
abstract
Timed Automata have proven to be useful for specification and verification of real-time systems. System design using Timed Automata relies on explicit manipulation of clock variables. A number of automated analyzers for Timed Automata have been developed. However, Timed Automata lack of composable patterns for high-level system design. Logic-based specification languages like Timed CSP and TCOZ are well suited for presenting compositional models of complex real-time systems. In this work, we define a set of composable Timed Automata patterns based on hierarchical constructs in timed enriched process algebras. The patterns facilitate hierarchical design of complex systems using Timed Automata. They also allow a systematic translation from Timed CSP/TCOZ models to Timed Automata so that analyzers for Timed Automata can be used to reason about TCOZ models. A prototype has been developed to support system design using Timed Automata patterns or, if given a TCOZ specification, to automate the translation from TCOZ to Timed Automata.
Jin Song Dong 0001, Ping Hao, Shengchao Qin, Jun Sun 0001, Wang Yi 0001
IEEE Trans. Software Eng.3
2007 Automated Verification of Shape, Size and Bag Properties
abstract
In recent years, separation logic has emerged as a contender for formal reasoning of heap-manipulating imperative programs. Recent works have focused on specialised provers that are mostly based on fixed sets of predicates. To improve expressivity, we have proposed a prover that can automatically handle user-defined predicates. These shape predicates allow programmers to describe a wide range of data structures with their associated size properties. In the current work, we shall enhance this prover by providing support for a new type of constraints, namely bag (multi-set) constraints. With this extension, we can capture the reachable nodes (or values) inside a heap predicate as a bag constraint. Consequently, we are able to prove properties about the actual values stored inside a data structure.
Wei-Ngan Chin, Cristina David, Huu Hai Nguyen, Shengchao Qin
ICECCS4
2007 Linking Object-Z with Spec#
abstract
Formal specifications have been a focus of software engineering research for many years and have been applied in a wide variety of settings. Their use in software engineering not only promotes high-level verification via theorem proving or model checking, but also inspires the "correct-by- construction" approach to software development via formal refinement. Although this correct-by-construction method proves to work well for small software systems, it is still a Utopia in the development of large and complex software systems. This paper moves one step forward in this direction by designing and implementing a sound linkage between the high level specification language Object-Z and the object-oriented specification language Spec#. Such a linkage would allow system requirements to be specified in a high-level formal language but validated and used in program language level. This linking process can be readily integrated with an automated program refinement procedure to achieve correctness-by-construction. In case no such procedures are applicable, the obtained contract- based specification can guide programmers to manually generate program code, which can then be verified against the obtained specification using any available program verifiers.
Shengchao Qin, Guanhua He
ICECCS1
2007 Realizing Live Sequence Charts in SystemVerilog
abstract
The design of an embedded control system starts with an investigation of properties and behaviors of the process evolving within its environment, and an analysis of the requirement for its safety performance. In early stages, system requirements are often specified as scenarios of behavior using sequence charts for different use cases. This specification must be precise, intuitive and expressive enough to capture different aspects of embedded control systems. As a rather rich and useful extension to the classical message sequence charts, Live Sequence Charts (LSC), which provide a rich collection of constructs for specifying both possible and mandatory behaviors, are very suitable for designing an embedded control system. However, it is not a trivial task to realize a high-level design model in executable program codes effectively and correctly. This paper tackles the challenging task by providing a mapping algorithm to automatically synthesize SystemVerilog programs from given LSC specifications.
Hai H. Wang, Shengchao Qin, Jun Sun 0001, Jin Song Dong 0001
TASE2
2007 Automated Verification of Shape and Size Properties Via Separation Logic
Huu Hai Nguyen, Cristina David, Shengchao Qin, Wei-Ngan Chin
VMCAI3
2006 HighSpec: a tool for building and checking OZTA models
abstract
HighSpec is an interactive system for composing and checking OZTA specifications. The integrated high level specification language, OZTA, is a combination of Object-Z (OZ) and Timed Automata (TA). Building on the strength of Object-Z's in specifying data structures and Timed Automata's in modelling dynamic and real-time behaviors, OZTA is well suited for presenting complete and coherent requirement models for complex real-time systems. HighSpec supports editing, type-checking as well as projecting OZTA models into TA models and Alloy Models so that TA model checkers-UPPAAL and the Alloy Analyzer can be utilized for verification. Most importantly, HighSpec supports a novel yet effective mechanism advocated by OZTA for structural TA design, i.e., using a set of composable timed patterns to capture high level timing requirements and process behaviors and generate the TA part of model in a top-down way. HighSpec can also generate LaTeX document as an alternative media for the spread and read of established OZTA models.
Jin Song Dong 0001, Ping Hao, Xian Zhang 0007, Shengchao Qin
ICSE4
2006 Integrating Probability with Time and Shared-Variable Concurrency
abstract
Complex software systems typically involve features like time, concurrency and probability, where probabilistic computations play an increasing role. It is challenging to formalize languages comprising all these features. In this paper, we integrate probability, time and concurrency in one single model, where the concurrency feature is modelled using shared-variable based communication. The probability feature is represented by a probabilistic nondeterministic choice, probabilistic guarded choice and a probabilistic version of parallel composition. We formalize an operational semantics for such an integration. Based on this model we define a bisimulation relation, from which an observational equivalence between probabilistic programs is investigated and a collection of algebraic laws are explored. We also implement a prototype of the operational semantics to animate the execution of probabilistic programs
Huibiao Zhu, Shengchao Qin, Jifeng He 0001, Jonathan P. Bowen
SEW2
2005 The Semantics and Tool Support of OZTA
Jin Song Dong 0001, Ping Hao, Shengchao Qin, Xian Zhang 0007
ICFEM3
2005 Verifying safety policies with size properties and alias controls
abstract
Many software properties can be analysed through a relational size analysis on each function's inputs and outputs. Such relational analysis (through a form of dependent typing) has been successfully applied to declarative programs, and to restricted imperative programs; but it has been elusive for object-based programs. The main challenge is that objects may mutate and they may be aliased. In this paper, we show how safety policies of programs can be analysed by tracking size properties of objects and be enforced by objects' invariants and the preconditions of methods. We propose several new ideas to allow both mutability and sharing of objects, whilst aiming for precision in our analysis. We introduce the concept of size-immutability to facilitate sharing, and also a set of alias controls to track unaliased objects whose size properties may change. We formalise our results through a set of advanced type checking rules for an object-based imperative language. We re-affirm the utility of the proposed type system by showing how a variety of software properties can be automatically verified according to size-inspired safety policies.
Wei-Ngan Chin, Siau-Cheng Khoo, Shengchao Qin, Corneliu Popeea, Huu Hai Nguyen
ICSE3
2005 Memory Usage Verification for OO Programs
Wei-Ngan Chin, Huu Hai Nguyen, Shengchao Qin, Martin C. Rinard
SAS3
2004 A Relational Model for Object-Oriented Designs
Jifeng He 0001, Zhiming Liu 0001, Shengchao Qin
APLAS4
2004 Timed Patterns: TCOZ to Timed Automata
Jin Song Dong 0001, Ping Hao, Shengchao Qin, Jun Sun 0001, Wang Yi 0001
ICFEM3
2004 An Automatic Mapping from Statecharts to Verilog
Viet-Anh Vu Tran, Shengchao Qin, Wei-Ngan Chin
ICTAC2
2004 Generating MSCs from an Integrated Formal Specification Language
Jin Song Dong 0001, Shengchao Qin, Jun Sun 0001
IFM2
2004 Region inference for an object-oriented language
abstract
Region-based memory management offers several important potential advantages over garbage collection, including real-time performance, better data locality, and more efficient use of limited memory. Researchers have advocated the use of regions for functional, imperative, and object-oriented languages. Lexically scoped regions are now a core feature of the Real-Time Specification for Java (RTSJ)[5].Recent research in region-based programming for Java has focused on region checking, which requires manual effort to augment the program with region annotations. In this paper, we propose an automatic region inference system for a core subset of Java. To provide an inference method that is both precise and practical, we support classes and methods that are region-polymorphic, with region-polymorphic recursion for methods. One challenging aspect is to ensure region safety in the presence of features such as class subtyping, method overriding, and downcast operations. Our region inference rules can handle these object-oriented features safely without creating dangling references.
Wei-Ngan Chin, Florin Craciun, Shengchao Qin, Martin C. Rinard
PLDI3
2003 The Equivalence of Statecharts
Zongyan Qiu, Shengchao Qin
ICFEM3
2002 Hardware/Software Partitioning in Verilog
Shengchao Qin, Jifeng He 0001, Zongyan Qiu, Naixiao Zhang
ICFEM1
2002 An Algebraic Hardware/Software Partitioning Algorithm
Shengchao Qin, Jifeng He 0001, Zongyan Qiu, Naixiao Zhang
J. Comput. Sci. Technol.1
2001 Partitioning Program into Hardware and Software
abstract
Hardware and software co-design is a design technique which delivers computer systems comprising hardware and software components. A critical phase of the codesign process is to decompose a program into hardware and software.. This paper proposes an algebraic partitioning method whose correctness is verified in the algebra of programs. We introduce the program analysis phase before program partitioning and develop a collection of syntax-based splitting rules, where the former provides information for moving operations from software to hardware and reducing the interaction between components, and the latter supports a compositional approach to program partitioning.
Shengchao Qin, Jifeng He 0001
APSEC1