English
Related papers

Related papers: Overcoming Restraint: Composing Verification of Fo…

200 papers

We present a formal model of Checked C, a dialect of C that aims to enforce spatial memory safety. Our model pays particular attention to the semantics of dynamically sized, potentially null-terminated arrays. We formalize this model in…

Programming Languages · Computer Science 2022-02-01 Liyi Li , Yiyun Liu , Deena L. Postol , Leonidas Lampropoulos , David Van Horn , Michael Hicks

Motivated by applications in automated verification of higher-order functional programs, we develop a notion of constrained Horn clauses in higher-order logic and a decision problem concerning their satisfiability. We show that, although…

Programming Languages · Computer Science 2017-08-02 Toby Cathcart Burn , C. -H. Luke Ong , Steven J. Ramsay

The success of several constraint-based modeling languages such as OPL, ZINC, or COMET, appeals for better software engineering practices, particularly in the testing phase. This paper introduces a testing framework enabling automated test…

Software Engineering · Computer Science 2015-03-17 Nadjib Lazaar , Arnaud Gotlieb , Lebbah Yahia

While hardware generators have drastically improved design productivity, they have introduced new challenges for the task of verification. To effectively cover the functionality of a sophisticated generator, verification engineers require…

Ensuring the safety of complex dynamical systems often relies on Hamilton-Jacobi (HJ) Reachability Analysis or Control Barrier Functions (CBFs). Both methods require computing a function that characterizes a safe set that can be made…

Systems and Control · Electrical Eng. & Systems 2025-10-03 Jixian Liu , Enrique Mallada

A software element defined in one place is typically used in many places. When it is changed, all its occurrences may need to be changed too, which can severely hinder software evolution. This has led to the support of encapsulation in…

Software Engineering · Computer Science 2013-12-11 Mikal Ziane , Mel Ó Cinnéide

Dynamically typed programming languages like R allow programmers to write generic, flexible and concise code and to interact with the language using an interactive Read-eval-print-loop (REPL). However, this flexibility has its price: As the…

Computation · Statistics 2021-01-14 Michel Lang

The focus of the tool FTOS is to alleviate designers' burden by offering code generation for non-functional aspects including fault-tolerance mechanisms. One crucial aspect in this context is to ensure that user-selected mechanisms for the…

Distributed, Parallel, and Cluster Computing · Computer Science 2009-05-26 Chih-Hong Cheng , Christian Buckl , Javier Esparza , Alois Knoll

With the advent of AI-based coding engines, it is possible to convert natural language requirements to executable code in standard programming languages. However, AI-generated code can be unreliable, and the natural language requirements…

Software Engineering · Computer Science 2024-11-06 Martin Mirchev , Andreea Costea , Abhishek Kr Singh , Abhik Roychoudhury

Concurrent separation logic with fractional permissions (CSLPerm) provides a promising reasoning system to verify most complex sequential and concurrent fine-grained programs. The logic with strong and weak separating conjunctions offers a…

Logic in Computer Science · Computer Science 2025-10-07 Quang Loc Le

In this thesis a comprehensive verification framework is proposed to contend with some important issues in composability verification and a verification process is suggested to verify composability of different kinds of systems models, such…

Software Engineering · Computer Science 2023-01-10 Imran Mahmood

We present Hindley-Milner-Cousots (HMC), an algorithm that allows any interprocedural analysis for first-order imperative programs to be used to verify safety properties of typed higher-order functional programs. HMC works as follows.…

Programming Languages · Computer Science 2011-01-04 Ranjit Jhala , Rupak Majumdar , Andrey Rybalchenko

We present a type system and inference algorithm for a rich subset of JavaScript equipped with objects, structural subtyping, prototype inheritance, and first-class methods. The type system supports abstract and recursive objects, and is…

Programming Languages · Computer Science 2016-10-19 Satish Chandra , Colin S. Gordon , Jean-Baptiste Jeannin , Cole Schlesinger , Manu Sridharan , Frank Tip , Youngil Choi

Refactoring is modifying a program without changing its external behavior. In this paper, we make the concept of external behavior precise for a simple answer set programming language. Then we describe a proof assistant for the task of…

Logic in Computer Science · Computer Science 2023-05-30 Jorge Fandinno , Zachary Hansen , Yuliya Lierler , Vladimir Lifschitz , Nathan Temple

Proving correctness of distributed or concurrent algorithms is a mind-challenging and complex process. Slight errors in the reasoning are difficult to find, calling for computer-checked proof systems. In order to build computer-checked…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-11-21 Armando Castañeda , Aurélie Hurault , Philippe Quéinnec , Matthieu Roy

The structure of component and connector (C&C) models, which are used in many application domains of software engineering, consists of components at different containment levels, their typed input and output ports, and the connectors…

Software Engineering · Computer Science 2014-06-30 Shahar Maoz , Jan Oliver Ringert , Bernhard Rumpe

A program invariant is a property that holds for every execution of the program. Recent work suggest to infer likely-only invariants, via dynamic analysis. A likely invariant is a property that holds for some executions but is not…

Software Engineering · Computer Science 2007-05-23 Tristan Denmat , Arnaud Gotlieb , Mireille Ducasse

Incremental computations attempt to exploit input similarities over time, reusing work that is unaffected by input changes. To maximize this reuse in a general-purpose programming setting, programmers need a mechanism to identify dynamic…

Programming Languages · Computer Science 2021-03-24 Matthew A. Hammer , Jana Dunfield , Kyle Headley , Monal Narasimhamurthy , Dimitrios J. Economou

Compiler correctness proofs for higher-order concurrent languages are difficult: they involve establishing a termination-preserving refinement between a concurrent high-level source language and an implementation that uses low-level shared…

Programming Languages · Computer Science 2017-01-23 Joseph Tassarotti , Ralf Jung , Robert Harper

An important step toward adoption of formal methods in software development is support for mainstream programming languages. Unfortunately, these languages are often rather complex and come with substantial standard libraries. However, by…

Software Engineering · Computer Science 2018-06-01 Vladimír Štill , Petr Ročkai , Jiří Barnat