English
Related papers

Related papers: CurryCheck: Checking Properties of Curry Programs

200 papers

Automatic software verification tools help to find hard-to-detect faults in programs checked against specified requirements non-interactively. Besides, they can prove program correctness formally under certain assumptions. These…

Software Engineering · Computer Science 2023-09-29 Ilja Zakharov , Evgeny Novikov , Ilya Shchepetkov

Mathematics has many useful properties for developing of complex software systems. One is that it can exactly describe a physical situation of the object or outcome of an action. Mathematics support abstraction and this is an excellent…

Software Engineering · Computer Science 2010-04-19 Manoranjan Kumar Singh , Rakesh. L

Property-based random testing a la QuickCheck requires building efficient generators for well-distributed random data satisfying complex logical predicates, but writing these generators can be difficult and error prone. We propose a…

Programming Languages · Computer Science 2019-10-15 Leonidas Lampropoulos , Diane Gallois-Wong , Catalin Hritcu , John Hughes , Benjamin C. Pierce , Li-yao Xia

Functional languages with strong static type systems have beneficial properties to help ensure program correctness and reliability. Surprisingly, their practical significance in applications is low relative to other languages lacking in…

Programming Languages · Computer Science 2016-12-05 Johannes Emerich

In this paper we present CIDER (Curry Integrated Development EnviRonment), an analysis and programming environment for the declarative multi-paradigm language Curry. CIDER is a graphical environment to support the development of Curry…

Programming Languages · Computer Science 2007-05-23 Michael Hanus , Johannes Koj

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

Program logics are a powerful formal method in the context of program verification. Can we develop a counterpart of program logics in the context of language verification? This paper proposes language logics, which allow for statements of…

Programming Languages · Computer Science 2024-08-06 Matteo Cimini

Developing multithreaded software is an extremely challenging task, even for experienced programmers. The challenge does not end after the code is written. There are other tasks associated with a development process that become…

Software Engineering · Computer Science 2014-09-04 Evgeny Vainer , Amiram Yehudai

We recommend a programming construct - availability check - for programs that need to automatically adjust to presence or absence of segments of code. The idea is to check the existence of a valid definition before a function call is…

Programming Languages · Computer Science 2007-05-23 Joy Mukherjee , Srinidhi Varadarajan

We demonstrate a specific method and technology for model-based testing of large software projects with the QuickCheck tool using property-based specifications. Our specifications are very precise, state-full models of the software under…

Software Engineering · Computer Science 2017-03-21 Wojciech Mostowski , Thomas Arts , John Hughes

While Chain-of-Thought (CoT) prompting enhances the reasoning capabilities of large language models, the faithfulness of the generated rationales remains an open problem for model interpretability. We propose a novel theoretical lens for…

Artificial Intelligence · Computer Science 2025-10-02 Elija Perrier

Checking the semantic equivalence of operations is an important task in software development. For instance, regression testing is a routine task performed when software systems are developed and improved, and software package managers…

Programming Languages · Computer Science 2019-09-23 Sergio Antoy , Michael Hanus

$\alpha$Check is a light-weight property-based testing tool built on top of $\alpha$Prolog, a logic programming language based on nominal logic. $\alpha$Prolog is particularly suited to the validation of the meta-theory of formal systems,…

Logic in Computer Science · Computer Science 2016-05-02 James Cheney , Alberto Momigliano , Matteo Pessina

This thesis investigates effectful declarative programming with an emphasis on non-determinism as an effect. On the one hand, we are interested in developing applications using non-determinism as underlying implementation idea. We discuss…

Programming Languages · Computer Science 2020-06-03 Sandra Dylus

In purely functional programming languages imperative features, more generally computational effects are prohibited. However, non-functional lan- guages do involve effects. The theory of decorated logic provides a rigorous for- malism (with…

Logic in Computer Science · Computer Science 2014-11-27 Burak Ekici

This work utilizes the plethora of work on verification of sequential programs for the purpose of verifying concurrent programs. We reduce the verification of a concurrent program to a series of verification tasks of sequential programs.…

Programming Languages · Computer Science 2021-06-03 Dan Rasin , Orna Grumberg , Sharon Shoham

The Unified Modeling Language (UML) is a widely used general purpose modeling language. Together with the Object Constraint Language (OCL), formal models can be described by defining the structure and behavior with UML and additional OCL…

Human-Computer Interaction · Computer Science 2017-01-31 Frank Hilken , Martin Gogolla

Testing probabilistic programs is non-trivial due to their stochastic nature. Given an input, the program may produce different outcomes depending on the underlying stochastic choices in the program. This means testing the expected outcomes…

Software Engineering · Computer Science 2025-09-03 Katrine Christensen , Mahsa Varshosaz , Raúl Pardo

Modern separation logics allow one to prove rich properties of intricate code, e.g. functional correctness and linearizability of non-blocking concurrent code. However, this expressiveness leads to a complexity that makes these logics…

Programming Languages · Computer Science 2021-08-16 Felix A. Wolf , Malte Schwerhoff , Peter Müller

The demonstrated code-understanding capability of LLMs raises the question of whether they can be used for automated program verification, a task that demands high-level abstract reasoning about program properties that is challenging for…

Formal Languages and Automata Theory · Computer Science 2024-04-26 Haoze Wu , Clark Barrett , Nina Narodytska