Introduction |
Correctness Debugging / Part I: |
An Assertion Language for Constraint Logic Programs / Germán Puebla ; Francisco Bueno ; Manuel Hermenegildo1: |
Assertions in Program Validation and Debugging / 1.1: |
Assertion Schemas for Execution States / 1.3: |
An Assertion Schema for Success States / 1.3.1: |
Adding Preconditions to the Success Schema / 1.3.2: |
An Assertion Schema for Call States / 1.3.3: |
An Assertion Schema for Query States / 1.3.4: |
Program-Point Assertions / 1.3.5: |
Logic Formulae about Execution States / 1.4: |
An Assertion Schema for Declarative Semantics / 1.5: |
Assertion Schemas for Program Completeness / 1.6: |
Status of Assertions / 1.7: |
An Assertion Schema for Computations / 1.8: |
Logic Formulae about Computations / 1.8.1: |
Defining Property Predicates / 1.9: |
Declaring Property Predicates / 1.9.1: |
Defining Property Predicates for Execution States / 1.9.2: |
Defining Property Predicates for Computations / 1.9.3: |
Approximating Property Predicates / 1.9.4: |
Syntax of and Extensions to the Assertion Language / 1.10: |
Syntax of the Assertion Language / 1.10.1: |
Grouping Assertions: Compound Assertions / 1.10.2: |
Some Additional Syntactic Sugar / 1.10.3: |
Discussion / 1.11: |
References |
A Generic Preprocessor for Program Validation and Debugging / 2: |
Design of the Preprocessor / 2.1: |
Chapter Outline / 2.1.2: |
Architecture and Operation of the Preprocessor / 2.2: |
The Syntax Checker / 2.2.1: |
The Static Analysers / 2.2.2: |
Consistency of the Analysis Results / 2.2.3: |
The Assertion Normaliser / 2.2.4: |
The Assertion Comparator / 2.2.5: |
Assertions for System Predicates / 2.2.6: |
Assertions for User-Defined Predicates / 2.2.7: |
Compile-Time Checking / 2.3: |
Run-Time Checking / 2.4: |
Evaluating Atomic Logic Formulae / 2.4.1: |
A Program Transformation for Assertion Checking 89 / 2.4.2: |
Customising the Preprocessor for a CLP System: The CiaoPP and CHIPRE Tools / 2.5: |
Describing Built-Ins Using Assertions / 2.5.1: |
System Dependent Code for Run-Time Checking / 2.5.2: |
A Sample Debugging Session with the Ciao System / 2.6: |
Some Practical Hints on Debugging with Assertions / 2.7: |
Assertions with Constraints for CLP Debugging / Claude Laï3: |
Form of Assertions / 3.1: |
Syntax and Meaning of Assertions / 3.2.1: |
The Basic Constructs / 3.2.2: |
Correctness Proofs / 3.3: |
Implementation / 3.3.1: |
Example of a Verification / 3.3.2: |
Incompleteness Introduced by the Solvers / 3.3.3: |
Full Example / 3.3.4: |
Samples of Compilations / 3.3.5: |
Conclusion / 3.4: |
Locating Type Errors in Untyped CLP Programs / Wlodzimierz Drabent ; Jan Maluszyński ; Pawel Pietrzak4: |
The Specification Language / 4.1: |
Calls and Successes of a CLP Program / 4.2.1: |
Describing Sets of Constrained Atoms / 4.2.2: |
An Example Diagnosis Session / 4.3: |
The Diagnosis Method / 4.4: |
Correct and Incorrect Clauses / 4.4.1: |
Incorrectness Diagnosis / 4.4.2: |
Delays / 4.5: |
The Diagnosis Tool / 4.6: |
Limitations of the Approach / 4.7: |
Related Work / 4.8: |
Conclusions and Future Work / 4.9: |
Declarative Diagnosis in the CLP Scheme / Alexandre Tessier ; Gérard Ferrand5: |
Basic Notions of Symptom and Error / 5.1: |
Connection between Symptom and Error via Proof-Trees / 5.3: |
Diagnosis Algorithm / 5.4: |
Abstract Proof-Trees / 5.5: |
A Diagnosis Session / 5.6: |
Performance Debugging / 5.8: |
Visual Tools to Debug Prolog IV Programs / Pascal Bouvier6: |
Presentation of the Execution Tree Viewer / 6.1: |
The Box Model / 6.2.1: |
Execution Trees / 6.2.2: |
The Prolog IV Execution Tree Viewer / 6.2.3: |
Textual Information in the Canvas / 6.2.4: |
Viewer Functions Description / 6.3: |
Colouring Boxes / 6.3.1: |
Replay Mode / 6.3.2: |
"Replay-Left Mode" Option / 6.3.3: |
"Show all Tries" Option / 6.3.4: |
Miscellaneous / 6.3.5: |
Working with the Debugger / 6.4: |
Setting a Temporary Break-Point / 6.4.1: |
Replaying the Execution / 6.4.2: |
About Implementation / 6.5: |
Search-Tree Visualisation / Helmut Simonis ; Abder Aggoun6.6: |
Principles of Operation / 7.1: |
Program Structure / 7.3.1: |
Symptoms / 7.3.2: |
Operating Mode / 7.3.3: |
System Requirements / 7.3.4: |
Interface / 7.4: |
Views / 7.5: |
Types of Views / 7.5.1: |
Tree View / 7.5.2: |
Variable Views / 7.5.3: |
Constraint Views / 7.5.4: |
Propagation View / 7.5.5: |
Current State and Further Development / 7.6: |
Towards a Language for CLP Choice-Tree Visualisation / Christophe Aillaud ; Pierre Deransart7.7: |
CLP: Syntax, Semantics and State Properties / 8.1: |
Syntax / 8.2.1: |
Constraint Domains / 8.2.2: |
Constrained Predication and D-Atom / 8.2.3: |
Operational Semantics / 8.2.4: |
CLP Search-Tree / 8.2.5: |
Labelling / 8.2.6: |
State Properties / 8.2.7: |
Tree Pruning and CLP Choice-Tree / 8.3: |
Unique Minimal Pruned Tree / 8.3.1: |
Minimal Pruned Tree Construction / 8.3.2: |
CLP Choice-Tree / 8.3.3: |
A Language to Specify Views / 8.4: |
Node Selection / 8.4.1: |
Arc Selection / 8.4.2: |
Node and Arc Selection Using Differential Information / 8.4.3: |
View Specification / 8.4.4: |
Implementation and Examples / 8.5: |
Displaying the Full Concrete Choice-Tree / 8.5.1: |
A General Criterion for a More Synthetic View / 8.5.2: |
View of the Labelling / 8.5.3: |
Use of State Properties / 8.5.4: |
Comparison of Labelling Strategies / 8.5.5: |
Tools for Search-Tree Visualisation: The APT Tool / Manuel Carro8.6: |
Visualising Control / 9.1: |
The Programmed Search as a Search Tree / 9.3: |
Representing the Enumeration Process / 9.4: |
Coupling Control Visualisation with Assertions / 9.5: |
The APT Tool / 9.6: |
Event-Based and Time-Based Depiction of Control / 9.7: |
Abstracting Control / 9.8: |
Conclusions / 9.9: |
Tools for Constraint Visualisation: The VIFID/TRIFID Tool / 10: |
Displaying Variables / 10.1: |
Depicting Finite Domain Variables / 10.2.1: |
Depicting Herbrand Terms / 10.2.2: |
Depicting Intervals or Reals / 10.2.3: |
Representing Constraints / 10.3: |
Abstraction / 10.4: |
Abstracting Values / 10.4.1: |
Domain Compaction and New Dimensions / 10.4.2: |
Abstracting Constraints / 10.4.3: |
Debugging Constraint Programs by Store Inspection / Frédéric Goualard ; Frédéric Benhamou10.5: |
Constraint Logic Programming in a Nutshell / 11.1: |
Arising Difficulties when Debugging Constraint Programs / 11.3: |
Constraint Programming Efficiency / 11.3.1: |
Drawbacks of CP Expressiveness / 11.3.2: |
Visualising the Store / 11.4: |
Structuring the Store / 11.4.1: |
S-Boxes / 11.4.2: |
Presentation of the Debugger Prototype / 11.5: |
Implementation of the S-Box Based Debugger / 11.6: |
Modification of the Backtracking Process / 11.6.1: |
Modification of the Propagation Process / 11.6.2: |
Handling the S-Boxes / 11.6.3: |
Complex Constraint Abstraction: Global Constraint Visualisation / Nicolas Beldiceanu ; Eric Bourreau11.7: |
Global Constraint Concepts / 12.1: |
Cumulative / 12.2.1: |
Diffn / 12.2.2: |
Cycle / 12.2.3: |
Among / 12.2.4: |
Class Structure / 12.3: |
Callbacks / 12.3.2: |
API / 12.3.3: |
Interface to Search-Tree Tool / 12.4: |
Use Outside Search-Tree Tool / 12.5: |
Cumulative Visualisers / 12.6: |
Cumulative Resource / 12.6.1: |
Bin Packing / 12.6.2: |
Diffn Visualisers / 12.7: |
Placement 2D / 12.7.1: |
Placement Remains / 12.7.2: |
Cycle Visualiser / 12.8: |
Geographical Tour / 12.8.1: |
Graph Lines / 12.8.2: |
Interaction between Visualisers / 12.9: |
Test Cases / 12.10: |
Using Constraint Visualisation Tools|CHelmut Simonis / Trijntje Cornelissens ; Véronique Dumortier ; Giovanni Fabris ; F. Nanni ; Adriano Tirabosco13: |
Debugging Scenarios / 13.1: |
Finding New Variable/Value Orderings / 13.2.1: |
Comparing Two Heuristics / 13.2.2: |
Adding Redundant Constraints / 13.2.3: |
Discovering Structure in the Problem / 13.2.4: |
Identifying Weak Propagation / 13.2.5: |
Case Studies from Industry / 13.3: |
Scheduling Application Involving Setup Cost / 13.3.1: |
Tank Scheduling Application / 13.3.2: |
Layout of Mechanical Objects: Graph Colouring / 13.3.3: |
Layout of Mechanical Objects: Physical Layout / 13.3.4: |
Analysis and Possible Improvements / 13.4: |
Need for a Debugging Methodology / 13.4.1: |
Program Improvement Due to the Use of Debugging Tools / 13.4.2: |
General Conclusions on the CHIP Graphical Debugging Tools / 13.4.3: |
Suggestions for Extensions to the CHIP Debugging Tools / 13.4.4: |
Author Index / 13.5: |
Subject Index |
Introduction |
Correctness Debugging / Part I: |
An Assertion Language for Constraint Logic Programs / Germán Puebla ; Francisco Bueno ; Manuel Hermenegildo1: |