Denis Cousineau’s scientific contributions

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (5)


Carriage line control: System description
Carriage line control: Ladder program
Timing chart specification for the Carriage line control
Toy example of a WhyML program with a formal contract
WhyML function for SET instruction

+20

Automated Formal Analysis of Temporal Properties of Ladder Programs
  • Article
  • Publisher preview available

November 2022

·

238 Reads

·

5 Citations

International Journal on Software Tools for Technology Transfer

Cláudio Belo Lourenço

·

Denis Cousineau

·

Florian Faissole

·

[...]

·

Programmable Logic Controllers are industrial digital computers used as automation controllers in manufacturing processes. The Ladder language is a programming language used to develop software for such controllers. In this work, we consider the description of the expected behaviour of a Ladder program under the form of a timing chart, describing a scenario of execution. Our aim is to prove that the given Ladder program conforms to the expected temporal behaviour given by such a timing chart. Our approach amounts to translating the Ladder code, together with the timing chart, into a program for the Why3 environment for deductive program verification. The verification proceeds with the generation of verification conditions: mathematical formulas to be checked valid using automated theorem provers. The ultimate goal is twofold. On the one hand, by obtaining a complete proof, one verifies the conformity of the Ladder code with respect to the timing chart with a high degree of confidence. On the other hand, in the case the proof is not fully completed, one obtains a counterexample, illustrating a possible execution scenario of the Ladder code which does not conform to the timing chart.

View access options

Automated Verification of Temporal Properties of Ladder Programs

August 2021

·

13 Reads

·

3 Citations

Lecture Notes in Computer Science

Programmable Logic Controllers (PLCs) are industrial digital computers used as automation controllers in manufacturing processes. The Ladder language is a programming language used to develop PLC software. Our aim is to prove that a given Ladder program conforms to an expected temporal behaviour given as a timing chart, describing scenarios of execution. We translate the Ladder code and the timing chart into a program for the Why3 environment, within which the verification proceeds by generating verification conditions, to be checked valid using automated theorem provers. The ultimate goal is two-fold: first, by obtaining a complete proof, we can verify the conformance of the Ladder code with respect to the timing chart with a high degree of confidence. Second, when the proof is not fully completed, we obtain a counterexample, illustrating a possible execution scenario of the Ladder code which does not conform to the timing chart.


Figure 1: Ladder program example
Figure 2: Why3 formalization of Ladder BCD instruction
Figure 3: Prototype architecture
Figure 4: Graphical feedback
Automated Deductive Verification for Ladder Programming

December 2019

·

113 Reads

Ladder Logics is a programming language standardized in IEC 61131-3 and widely used for programming industrial Programmable Logic Controllers (PLC). A PLC program consists of inputs (whose values are given at runtime by factory sensors), outputs (whose values are given at runtime to factory actuators), and the logical expressions computing output values from input values. Due to the graphical form of Ladder programs, and the amount of inputs and outputs in typical industrial programs, debugging such programs is time-consuming and error-prone. We present, in this paper, a Why3-based tool prototype we have implemented for automating the use of deductive verification in order to provide an easy-to-use and robust debugging tool for Ladder programmers.


Figure 1: Ladder program example
Figure 2: Why3 formalization of Ladder BCD instruction
Figure 3: Prototype architecture
Figure 4: Graphical feedback
Automated Deductive Verification for Ladder Programming

December 2019

·

254 Reads

·

4 Citations

Electronic Proceedings in Theoretical Computer Science

Ladder Logics is a programming language standardized in IEC 61131-3 and widely used for programming industrial Programmable Logic Controllers (PLC). A PLC program consists of inputs (whose values are given at runtime by factory sensors), outputs (whose values are given at runtime to factory actuators), and the logical expressions computing output values from input values. Due to the graphical form of Ladder programs, and the amount of inputs and outputs in typical industrial programs, debugging such programs is time-consuming and error-prone. We present, in this paper, a Why3-based tool prototype we have implemented for automating the use of deductive verification in order to provide an easy-to-use and robust debugging tool for Ladder programmers.


Fast, Automatic, and Nearly Complete Structural Unit-Test Generation Combining Genetic Algorithms and Formal Methods

September 2019

·

37 Reads

·

4 Citations

Lecture Notes in Computer Science

Software testing is a time consuming and error prone activity, mostly manual in most industries. One approach to increase productivity is to automatically generate tests. In this paper, we focus on automatic generation of structural unit tests of safety-critical embedded software. Our purpose is to make a tool that integrates seamlessly with existing test processes in industry. We use genetic algorithms and automatic stub generation to quickly and automatically produce test cases satisfying test objectives of a given coverage criteria, using only the software under test as input. Moreover, we combine those genetic algorithms with formal methods to determine unfeasible test objectives and help on the coverage of difficult test objectives. We implemented our approach in a tool and tested it on a real-world industrial project, demonstrating that our approach can reliably generate test cases when feasible or demonstrate they are unfeasible for 99% of the MC/DC test objectives in about half an hour for 82,000 lines of C code with integer data.

Citations (4)


... Статья [24] посвящена дедуктивной верификации программ, написанных на языке LD из стандарта IEC 61131-3. Темпоральные требования к LD-программам задаются с помощью временных диаграмм. ...

Reference:

Pattern-based approach to automation of deductive verification of process-oriented programs: patterns, lemmas and algorithms
Automated Formal Analysis of Temporal Properties of Ladder Programs

International Journal on Software Tools for Technology Transfer

... This article is an extension of a former version published in the proceedings of the FMICS conference (Formal Methods for Industrial Critical Systems) in 2021 [5]. The contributions and the structure of this article are as follows. ...

Automated Verification of Temporal Properties of Ladder Programs
  • Citing Chapter
  • August 2021

Lecture Notes in Computer Science

... Our main goal is the verification that a Ladder diagram conforms to such a timing chart specification. A first idea would be to envision the use of deductive verification techniques, in the wake of our previous work on Ladder instruction-level verification [11]. However, not all variables used in the Ladder program of Fig. 2 are addressed by the timing chart. ...

Automated Deductive Verification for Ladder Programming

Electronic Proceedings in Theoretical Computer Science

... Static analysis based on abstract interpretation can be an efficient technique for detecting unreachable branches but it cannot generate test input values and because of the overapproximation which is inherent in this approach, it cannot guarantee detection of all unreachable branches. It can be used in exhaustive branch coverage as a prelude to automatic test generation in order to reduce the number of test objectives [5]. ...

Fast, Automatic, and Nearly Complete Structural Unit-Test Generation Combining Genetic Algorithms and Formal Methods
  • Citing Chapter
  • September 2019

Lecture Notes in Computer Science