100% found this document useful (3 votes)
29 views

Get Principles and Practice of Constraint Programming 26th International Conference CP 2020 Louvain La Neuve Belgium September 7 11 2020 Proceedings Helmut Simonis Free All Chapters

International

Uploaded by

thuumrugan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
29 views

Get Principles and Practice of Constraint Programming 26th International Conference CP 2020 Louvain La Neuve Belgium September 7 11 2020 Proceedings Helmut Simonis Free All Chapters

International

Uploaded by

thuumrugan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 54

Download the full version of the textbook now at textbookfull.

com

Principles and Practice of Constraint


Programming 26th International Conference CP
2020 Louvain la Neuve Belgium September 7 11
2020 Proceedings Helmut Simonis
https://textbookfull.com/product/principles-and-
practice-of-constraint-programming-26th-
international-conference-cp-2020-louvain-la-neuve-
belgium-september-7-11-2020-proceedings-helmut-
simonis/

Explore and download more textbook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Principles and Practice of Constraint Programming 25th


International Conference CP 2019 Stamford CT USA September
30 October 4 2019 Proceedings Thomas Schiex
https://textbookfull.com/product/principles-and-practice-of-
constraint-programming-25th-international-conference-cp-2019-stamford-
ct-usa-september-30-october-4-2019-proceedings-thomas-schiex/
textbookfull.com

Principles and Practice of Constraint Programming 20th


International Conference CP 2014 Lyon France September 8
12 2014 Proceedings 1st Edition Barry O’Sullivan (Eds.)
https://textbookfull.com/product/principles-and-practice-of-
constraint-programming-20th-international-conference-cp-2014-lyon-
france-september-8-12-2014-proceedings-1st-edition-barry-osullivan-
eds/
textbookfull.com

Principles and Practice of Constraint Programming 22nd


International Conference CP 2016 Toulouse France September
5 9 2016 Proceedings 1st Edition Michel Rueher (Eds.)
https://textbookfull.com/product/principles-and-practice-of-
constraint-programming-22nd-international-conference-cp-2016-toulouse-
france-september-5-9-2016-proceedings-1st-edition-michel-rueher-eds/
textbookfull.com

Art Nouveau Animal Designs and Patterns 60 Plates in Full


Color Dover Pictorial Archive 2nd Edition Verneuil

https://textbookfull.com/product/art-nouveau-animal-designs-and-
patterns-60-plates-in-full-color-dover-pictorial-archive-2nd-edition-
verneuil/
textbookfull.com
Until Now: Happily Ever Alpha World and Swift Family
Crossover 1st Edition Leslie Pike & Boom Factory
Publishing [Pike
https://textbookfull.com/product/until-now-happily-ever-alpha-world-
and-swift-family-crossover-1st-edition-leslie-pike-boom-factory-
publishing-pike/
textbookfull.com

Geology of Coal Deposits of South Limburg, The


Netherlands: Including Adjacent German and Belgian Areas
J.H.L. Voncken
https://textbookfull.com/product/geology-of-coal-deposits-of-south-
limburg-the-netherlands-including-adjacent-german-and-belgian-areas-j-
h-l-voncken/
textbookfull.com

How to Fry Everything: A Fried Cookbook Filled with


Delicious Fried Recipes (2nd Edition) Booksumo Press

https://textbookfull.com/product/how-to-fry-everything-a-fried-
cookbook-filled-with-delicious-fried-recipes-2nd-edition-booksumo-
press/
textbookfull.com

Acute Stroke Management in the First 24 Hours: A Practical


Guide for Clinicians Maxim Mokin

https://textbookfull.com/product/acute-stroke-management-in-the-
first-24-hours-a-practical-guide-for-clinicians-maxim-mokin/

textbookfull.com

Paint Play Explore First Edition Rae Missigman

https://textbookfull.com/product/paint-play-explore-first-edition-rae-
missigman/

textbookfull.com
The Battle of the Classics How a Nineteenth Century Debate
Can Save the Humanities Today 1st Edition Eric Adler

https://textbookfull.com/product/the-battle-of-the-classics-how-a-
nineteenth-century-debate-can-save-the-humanities-today-1st-edition-
eric-adler/
textbookfull.com
Helmut Simonis (Ed.)
LNCS 12333

Principles and Practice


of Constraint Programming
26th International Conference, CP 2020
Louvain-la-Neuve, Belgium, September 7–11, 2020
Proceedings
Lecture Notes in Computer Science 12333

Founding Editors
Gerhard Goos
Karlsruhe Institute of Technology, Karlsruhe, Germany
Juris Hartmanis
Cornell University, Ithaca, NY, USA

Editorial Board Members


Elisa Bertino
Purdue University, West Lafayette, IN, USA
Wen Gao
Peking University, Beijing, China
Bernhard Steffen
TU Dortmund University, Dortmund, Germany
Gerhard Woeginger
RWTH Aachen, Aachen, Germany
Moti Yung
Columbia University, New York, NY, USA
More information about this series at http://www.springer.com/series/7408
Helmut Simonis (Ed.)

Principles and Practice


of Constraint Programming
26th International Conference, CP 2020
Louvain-la-Neuve, Belgium, September 7–11, 2020
Proceedings

123
Editor
Helmut Simonis
Insight Centre for Data Analytics,
School for Computer Science
and Information Technology
University College Cork
Cork, Ireland

ISSN 0302-9743 ISSN 1611-3349 (electronic)


Lecture Notes in Computer Science
ISBN 978-3-030-58474-0 ISBN 978-3-030-58475-7 (eBook)
https://doi.org/10.1007/978-3-030-58475-7
LNCS Sublibrary: SL2 – Programming and Software Engineering

© Springer Nature Switzerland AG 2020


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
The use of general descriptive names, registered names, trademarks, service marks, etc. in this publication
does not imply, even in the absence of a specific statement, that such names are exempt from the relevant
protective laws and regulations and therefore free for general use.
The publisher, the authors and the editors are safe to assume that the advice and information in this book are
believed to be true and accurate at the date of publication. Neither the publisher nor the authors or the editors
give a warranty, expressed or implied, with respect to the material contained herein or for any errors or
omissions that may have been made. The publisher remains neutral with regard to jurisdictional claims in
published maps and institutional affiliations.

This Springer imprint is published by the registered company Springer Nature Switzerland AG
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland
Preface

This volume contains the papers presented at the 26th International Conference on
Principles and Practice of Constraint Programming (CP 2020), held during
September 7–11, 2020. The conference was originally planned to be held at UC
Louvain, Belgium. Due to the COVID-19 pandemic, we were forced to run the con-
ference as a virtual event instead.
There were 122 submissions for the conference. The Program Committee decided to
accept 55 papers. As is customary for the CP conference series, we offered multiple
tracks for submitted papers to widen the scope of the conference and attract papers at
the interface of Constraint Programming and other disciplines. This year there were
tracks for:
– Technical Track
– Application Track
– Constraint Programming, Data Science and Machine Learning
– Testing and Verification
– Constraint Programming and Operations Research
– Computational Sustainability
I want to thank the application track chair, Andreas Schutt (Data61, Australia), the
CP/ML track chair, Michele Lombardi (DISI, University of Bologna, Italy), and the
chair for the Testing and Verification track, Nadjib Lazaar (LIRMM, France), for their
dedicated work. They selected and invited track specific Program Committees, helped
with the paper assignment across the different tracks, and managed the discussion and
final paper selection after the review phase.
The paper selection in the other tracks was supported by a Senior Program
Committee, who not only encouraged and guided the discussion of papers during
reviewing, but also provided meta-reviews as summaries and basis for the paper
selection.
The Program Committee for this year’s conference faced a special challenge as the
time given for reviewing was very compressed. The original submission deadline was
shifted by more than five weeks to counteract the impact of the COVID-19 lock-down
in many countries around the world. I was very impressed by, and thankful for, the
quality and detail of the reviews provided.
The reviewer assignment was decided for all tracks at the same time, to balance the
workload of all reviewers. For this, we used an extended version of a Constraint
Programming model developed and used last year by the CP 2019 program chairs,
Thomas Schiex and Simon de Givry.
Besides the paper tracks, the conference also had many other elements, handled by
special chairs. Maria-Andreina Francisco Rodriguez (Uppsalla University, Sweden)
organized the workshops on the first day of the conference, Lars Kotthoff (University
of Wyoming, USA) selected three tutorials for the main conference, and Edward Lam
vi Preface

(Monash University, Australia) and Kuldeep Meel (National University of Singapore,


Singapore) organized the Doctoral Program. All of these events were heavily affected
by the virtualization of the conference, requiring new ideas and methods.
The biggest change, caused by the virtual conference, was for the conference chairs,
Tias Guns (VUB, Belgium), Siegfried Nijssen, and Pierre Schaus (both UC Louvain).
Having planned a beautiful conference on the campus of UC Louvain, they had to
completely rethink the organization, planning, and finances for a very different type of
conference.
Special thanks go to the publicity chair, Hélène Verhaeghe (UC Louvain), and local
publicity chair, Bernard Fortz (ULB, Belgium), for dealing with information updates
and handling communications with the overall community. The help of the president
of the Association for Constraint Programming, Maria Garcia de la Banda (Monash
University), and the conference coordinator of the ACP Executive Committee,
Claude-Guy Quimper (Laval University, Canada), especially during the initial lock-
down phase due to the COVID-19 pandemic, is gratefully acknowledged.
My final thanks go to the authors of paper submissions for CP 2020, writing their
papers in a very challenging situation: without your work, for both successful and
unsuccessful papers, we would not had this interesting conference program.

July 2020 Helmut Simonis


Organization

Senior Program Committee


Maria Garcia De La Banda Monash University, Australia
Emmanuel Hebrard LAAS, CNRS, France
Ines Lynce INESC-ID/IST, Universidade de Lisboa, Portugal
Laurent Michel University of Connecticut, USA
Michela Milano DISI, University of Bologna, Italy
Claude-Guy Quimper Laval University, Canada
Pierre Schaus UC Louvain, Belgium
Christine Solnon CITI Inria, INSA Lyon, France
Kostas Stergiou University of Western Macedonia, Greece
Peter J. Stuckey Monash University, Australia
Roland Yap National University of Singapore, Singapore

Program Committee
Ignasi Abío Barcelogic, Spain
Deepak Ajwani University College Dublin, Ireland
Özgür Akgün University of St Andrews, UK
Carlos Ansótegui Universitat de Lleida, Spain
Ekaterina Arafailova Tesco, UK
Behrouz Babaki Polytechnique Montreal, Canada
Sébastien Bardin CEA LIST, France
Roman Barták Charles University, Czech Republic
Chris Beck University of Toronto, Canada
Nicolas Beldiceanu IMT Atlantique (LS2N), France
Gleb Belov Monash University, Australia
Stefano Bistarelli Università di Perugia, Italy
Miquel Bofill Universitat de Girona, Spain
Andrea Borghesi University of Bologna, Italy
Ken Brown University College Cork, Ireland
David Browne Insight Centre for Data Analytics, Ireland
Hadrien Cambazard G-SCOP, Grenoble INP, CNRS, Joseph Fourier
University, France
Roberto Castañeda Lozano The University of Edinburgh, UK
Berthe Y. Choueiry University of Nebraska-Lincoln, USA
Andre Augusto Cire University of Toronto, Canada
Laura Climent University College Cork, Ireland
Martin Cooper IRIT, Université Paul Sabatier, France
Patrick De Causmaecker UC Leuven, Belgium
Allegra De Filippo DISI, University of Bologna, Italy
viii Organization

Simon de Givry INRA MIAT, France


Sophie Demassey CMA, MINES ParisTech, France
Catherine Dubois ENSIIE-Samovar, France
Guillaume Escamocher Insight Centre for Data Analytics, Ireland
Johannes K. Fichte TU Dresden, Germany
Pierre Flener Uppsala University, Sweden
Robert Fourer AMPL Optimization Inc., USA
Maria Andreina Francisco Uppsala University, Sweden
Carmen Gervet Université de Montpellier, France
Arnaud Gotlieb SIMULA Research Laboratory, Norway
Stefano Gualandi Università degli studi di Pavia, Italy
Tias Guns Vrije Universiteit Brussel (VUB), Belgium
Tarik Hadzic United Technologies Research Center, Ireland
John Hooker Carnegie Mellon University, USA
Peter Jeavons University of Oxford, UK
Christopher Jefferson University of St Andrews, UK
Serdar Kadioglu Oracle Corporation, USA
George Katsirelos MIA Paris, INRAE, AgroParisTech, France
Philip Kilby Data61, The Australian National University, Australia
Lars Kotthoff University of Wyoming, USA
Mikael Z. Lagerkvist KTH Royal Institute of Technology, Sweden
Edward Lam Monash University, Australia
Christophe Lecoutre CRIL, University of Artois, Franc
Jimmy Lee The Chinese University of Hong Kong, Hong Kong,
China
Kevin Leo Monash University, Australia
Xavier Lorca IMT Mines Albi, France
Michael Maher Reasoning Research Institute, Australia
Arnaud Malapert Université Côte d’Azur, CNRS, I3S, France
Ciaran McCreesh University of Glasgow, UK
Christopher Mears Redbubble, Australia
Kuldeep S. Meel National University of Singapore, Singapore
Deepak Mehta United Technologies Research Center, Ireland
Ian Miguel University of St Andrews, UK
Peter Nightingale University of York, UK
Barry O’Sullivan University College Cork, Ireland
Cemalettin Ozturk Raytheon Technologies, United Technologies Research
Center, Ireland
Alexandre Papadopoulos Spotify, France
Anastasia Paparrizou CRIL-CNRS, University of Artois, France
Justin Pearson Uppsala University, Sweden
Marie Pelleau Université Côte d’Azur, CNRS, I3S, France
Laurent Perron Google, France
Gilles Pesant Polytechnique Montréal, Canada
Andreas Podelski University of Freiburg, Germany
Enrico Pontelli New Mexico State University, USA
Organization ix

Cédric Pralet ONERA Toulouse, France


Steve Prestwich Insight Centre for Data Analytics, Ireland
Patrick Prosser University of Glasgow, UK
Charles Prud’Homme TASC (CNRS/Inria), Mines Nantes, France
Luis Quesada Insight Centre for Data Analytics, University College
Cork, Ireland
Jean-Charles Regin University Nice-Sophia Antipolis, I3S, CNRS, France
Andrea Rendl Satalia, UK
Roberto Rossi The University of Edinburgh, UK
Louis-Martin Rousseau Polytechnique Montreal, Canada
Domenico Salvagnin University of Padova, Italy
Scott Sanner University of Toronto, Canada
Thomas Schiex INRAE, France
Meinolf Sellmann GE Research, USA
Paul Shaw IBM, France
Mohamed Siala Insight Centre for Data Analytics, University College
Cork, Ireland
Stefan Szeider TU Wien, Austria
Guido Tack Monash University, Australia
Gilles Trombettoni LIRMM, University of Montpellier, France
Peter van Beek University of Waterloo, Canada
Pascal Van Hentenryck Georgia Institute of Technology, USA
Willem-Jan Van Hoeve Carnegie Mellon University, USA
Petr Vilím IBM, Czech Republic
Mohamed Wahbi United Technologies Research Center, Ireland
Mark Wallace Monash University, Australia
Toby Walsh The University of New South Wales, Australia
Nic Wilson Insight Centre for Data Analytics, University College
Cork, Ireland
Armin Wolf Fraunhofer Institute, Germany
Lebbah Yahia University of Oran 1, Algeria
Makoto Yokoo Kyushu University, Japan
Neil Yorke-Smith Delft University of Technology, The Netherlands
Neng-Fa Zhou CUNY Brooklyn College, Graduate Center, USA

Additional Reviewers

Arbelaez, Alejandro Dimitropoulos, Nikos


Babaki, Behrouz Ganian, Robert
Baldo, Federico Garraffa, Michele
Castiñeiras, Ignacio Gualandi, Stefano
Cerutti, Federico Guimarans, Daniel
Chen, Violet Gupta, Gopal
de Haan, Ronald Hall, Julian
Detassis, Fabrizio Hecher, Markus
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
x Organization

Hoenicke, Jochen Prestwich, Steve


Hu, Hao Quimper, Claude-Guy
Hurley, Barry Refalo, Philippe
Isoart, Nicolas Ruffini, Manon
Koshimura, Miyuki Santini, Francesco
Kotthoff, Lars Savvaris, Al
Liu, Fanghui Serret, Michel Fabrice
Lo Bianco, Giovanni Sioutis, Michael
Mattmüller, Robert Tardivo, Fabio
Mercanti, Ivan Trimble, James
Nordström, Jakob Tsoupidi, Rodothea Myrsini
Ojeda, Jesus van Driel, Ronald
Ornek, Arslan Vilim, Petr
Ouali, Abdelkader Villaret, Mateu
Palak, Gokce Vinyals, Marc
Peitl, Tomáš Wilson, Nic
Pettersson, William Woodward, Robert
Philipp, Tobias
Contents

Technical Track

Dashed Strings and the Replace(-all) Constraint . . . . . . . . . . . . . . . . . . . . . 3


Roberto Amadini, Graeme Gange, and Peter J. Stuckey

Combinatorial Search in CP-Based Iterated Belief Propagation . . . . . . . . . . . 21


Behrouz Babaki, Bilel Omrani, and Gilles Pesant

Replication-Guided Enumeration of Minimal Unsatisfiable Subsets . . . . . . . . 37


Jaroslav Bendík and Ivana Černá

Solving Satisfaction Problems Using Large-Neighbourhood Search . . . . . . . . 55


Gustav Björdal, Pierre Flener, Justin Pearson, Peter J. Stuckey,
and Guido Tack

Quantum-Accelerated Global Constraint Filtering . . . . . . . . . . . . . . . . . . . . 72


Kyle E. C. Booth, Bryan O’Gorman, Jeffrey Marshall, Stuart Hadfield,
and Eleanor Rieffel

Pure MaxSAT and Its Applications to Combinatorial Optimization


via Linear Local Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Shaowei Cai and Xindi Zhang

Tractable Fragments of Temporal Sequences of Topological Information . . . . 107


Quentin Cohen-Solal

Strengthening Neighbourhood Substitution . . . . . . . . . . . . . . . . . . . . . . . . . 126


Martin C. Cooper

Effective Encodings of Constraint Programming Models to SMT . . . . . . . . . 143


Ewan Davidson, Özgür Akgün, Joan Espasa, and Peter Nightingale

Watched Propagation of 0-1 Integer Linear Constraints . . . . . . . . . . . . . . . . 160


Jo Devriendt

Bounding Linear Programs by Constraint Propagation:


Application to Max-SAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Tomáš Dlask and Tomáš Werner

On Relation Between Constraint Propagation and Block-Coordinate


Descent in Linear Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Tomáš Dlask and Tomáš Werner
xii Contents

DPMC: Weighted Model Counting by Dynamic Programming


on Project-Join Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Jeffrey M. Dudek, Vu H. N. Phan, and Moshe Y. Vardi

Aggregation and Garbage Collection for Online Optimization . . . . . . . . . . . . 231


Alexander Ek, Maria Garcia de la Banda, Andreas Schutt,
Peter J. Stuckey, and Guido Tack

Treewidth-Aware Quantifier Elimination and Expansion for QCSP . . . . . . . . 248


Johannes K. Fichte, Markus Hecher, and Maximilian F. I. Kieler

A Time Leap Challenge for SAT-Solving . . . . . . . . . . . . . . . . . . . . . . . . . 267


Johannes K. Fichte, Markus Hecher, and Stefan Szeider

Breaking Symmetries with RootClique and LexTopSort . . . . . . . . . . . . . . . . 286


Johannes K. Fichte, Markus Hecher, and Stefan Szeider

Towards Faster Reasoners by Using Transparent Huge Pages . . . . . . . . . . . . 304


Johannes K. Fichte, Norbert Manthey, Julian Stecklina,
and André Schidler

The Argmax Constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323


Graeme Gange and Peter J. Stuckey

Certifying Solvers for Clique and Maximum Common (Connected)


Subgraph Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Stephan Gocht, Ross McBride, Ciaran McCreesh, Jakob Nordström,
Patrick Prosser, and James Trimble

Phase Transition Behavior in Knowledge Compilation . . . . . . . . . . . . . . . . . 358


Rahul Gupta, Subhajit Roy, and Kuldeep S. Meel

A Faster Exact Algorithm to Count X3SAT Solutions . . . . . . . . . . . . . . . . . 375


Gordon Hoi, Sanjay Jain, and Frank Stephan

Visualizations to Summarize Search Behavior. . . . . . . . . . . . . . . . . . . . . . . 392


Ian S. Howell, Berthe Y. Choueiry, and Hongfeng Yu

Parallelization of TSP Solving in CP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410


Nicolas Isoart and Jean-Charles Régin

Using Resolution Proofs to Analyse CDCL Solvers. . . . . . . . . . . . . . . . . . . 427


Janne I. Kokkala and Jakob Nordström

Core-Guided Model Reformulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445


Kevin Leo, Graeme Gange, Maria Garcia de la Banda,
and Mark Wallace
Contents xiii

Filtering Rules for Flow Time Minimization in a Parallel Machine


Scheduling Problem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Margaux Nattaf and Arnaud Malapert

MaxSAT-Based Postprocessing for Treedepth. . . . . . . . . . . . . . . . . . . . . . . 478


Vaidyanathan Peruvemba Ramaswamy and Stefan Szeider

Perturbing Branching Heuristics in Constraint Solving . . . . . . . . . . . . . . . . . 496


Anastasia Paparrizou and Hugues Wattez

Finding the Hardest Formulas for Resolution . . . . . . . . . . . . . . . . . . . . . . . 514


Tomáš Peitl and Stefan Szeider

HADDOCK: A Language and Architecture for Decision


Diagram Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Rebecca Gentzel, Laurent Michel, and W.-J. van Hoeve

Towards a Generic Interval Solver for Differential-Algebraic CSP. . . . . . . . . 548


Simon Rohou, Abderahmane Bedouhene, Gilles Chabert,
Alexandre Goldsztejn, Luc Jaulin, Bertrand Neveu, Victor Reyes,
and Gilles Trombettoni

abstractXOR: A global constraint dedicated to differential cryptanalysis . . . . . 566


Loïc Rouquette and Christine Solnon

In Pursuit of an Efficient SAT Encoding for the Hamiltonian


Cycle Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
Neng-Fa Zhou

Large Neighborhood Search for Temperature Control


with Demand Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
Edward Lam, Frits de Nijs, Peter J. Stuckey, Donald Azuatalam,
and Ariel Liebman

Solving the Group Cumulative Scheduling Problem with CPO and ACO . . . . 620
Lucas Groleaz, Samba N. Ndiaye, and Christine Solnon

A Branch-and-bound Algorithm to Rigorously Enclose


the Round-Off Errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
Rémy Garcia, Claude Michel, and Michel Rueher

Application Track

Leveraging Reinforcement Learning, Constraint Programming


and Local Search: A Case Study in Car Manufacturing . . . . . . . . . . . . . . . . 657
Valentin Antuori, Emmanuel Hebrard, Marie-José Huguet,
Siham Essodaigui, and Alain Nguyen
xiv Contents

Computing the Local Aromaticity of Benzenoids Thanks


to Constraint Programming. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
Yannick Carissan, Chisom-Adaobi Dim, Denis Hagebaum-Reignier,
Nicolas Prcovic, Cyril Terrioux, and Adrien Varet

Using Constraint Programming to Generate Benzenoid Structures


in Theoretical Chemistry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
Yannick Carissan, Denis Hagebaum-Reignier, Nicolas Prcovic,
Cyril Terrioux, and Adrien Varet

RobTest: A CP Approach to Generate Maximal Test Trajectories


for Industrial Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
Mathieu Collet, Arnaud Gotlieb, Nadjib Lazaar, Mats Carlsson,
Dusica Marijan, and Morten Mossige

A Two-Phase Constraint Programming Model for Examination Timetabling


at University College Cork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
Begum Genc and Barry O’Sullivan

Exact Approaches to the Multi-agent Collective Construction Problem. . . . . . 743


Edward Lam, Peter J. Stuckey, Sven Koenig, and T. K. Satish Kumar

The CONFIDENCE Constraint: A Step Towards Stochastic CP Solvers . . . . . . . 759


Alexandre Mercier-Aubin, Ludwig Dumetz, Jonathan Gaudreault,
and Claude-Guy Quimper

Parity (XOR) Reasoning for the Index Calculus Attack . . . . . . . . . . . . . . . . 774


Monika Trimoska, Sorina Ionica, and Gilles Dequen

Constraint-Based Software Diversification for Efficient Mitigation


of Code-Reuse Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
Rodothea Myrsini Tsoupidi, Roberto Castañeda Lozano,
and Benoit Baudry

CP and Data Science and Machine Learning

Pushing Data into CP Models Using Graphical Model Learning


and Solving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
Céline Brouard, Simon de Givry, and Thomas Schiex

Generating Random Logic Programs Using Constraint Programming . . . . . . . 828


Paulius Dilkas and Vaishak Belle

Towards Formal Fairness in Machine Learning . . . . . . . . . . . . . . . . . . . . . . 846


Alexey Ignatiev, Martin C. Cooper, Mohamed Siala,
Emmanuel Hebrard, and Joao Marques-Silva
Contents xv

Verifying Equivalence Properties of Neural Networks with ReLU


Activation Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868
Marko Kleine Büning, Philipp Kern, and Carsten Sinz

Learning the Satisfiability of Pseudo-Boolean Problem with Graph


Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
Minghao Liu, Fan Zhang, Pei Huang, Shuzi Niu, Feifei Ma,
and Jian Zhang

A Machine Learning Based Splitting Heuristic


for Divide-and-Conquer Solvers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
Saeed Nejati, Ludovic Le Frioux, and Vijay Ganesh

Theoretical and Experimental Results for Planning with Learned Binarized


Neural Network Transition Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 917
Buser Say, Jo Devriendt, Jakob Nordström, and Peter J. Stuckey

Omissions in Constraint Acquisition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935


Dimosthenis C. Tsouros, Kostas Stergiou, and Christian Bessiere

Computing Optimal Decision Sets with SAT . . . . . . . . . . . . . . . . . . . . . . . 952


Jinqiang Yu, Alexey Ignatiev, Peter J. Stuckey, and Pierre Le Bodic

Author Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971


Technical Track
Dashed Strings and the Replace(-all)
Constraint

Roberto Amadini1(B) , Graeme Gange2 , and Peter J. Stuckey2


1
University of Bologna, Bologna, Italy
[email protected]
2
Monash University, Melbourne, VIC, Australia
{graeme.gange,peter.stuckey}@monash.edu

Abstract. Dashed strings are a formalism for modelling the domain of


string variables when solving combinatorial problems with string con-
straints. In this work we focus on (variants of) the Replace constraint,
which aims to find the first occurrence of a query string in a target string,
and (possibly) replaces it with a new string. We define a Replace propa-
gator which can also handle Replace-Last (for replacing the last occur-
rence) and Replace-All (for replacing all the occurrences). Empirical
results clearly show that string constraint solving can draw great benefit
from this approach.

1 Introduction

In the past decade the interest in solving string constraints has considerably
grown in disparate application domains such as test-case generation, software
analysis and verification, model checking, web security, database query process-
ing, bionformatics (see, e.g., [3,8,9,11–15,18,24,29]).
Among the most effective paradigms for string constraint solving we men-
tion Satisfiability Modulo Theory (SMT), which relies on (extensions of) the
theory of word equations, and Constraint Programming (CP), which basically
uses an unfolding-based approach to eventually decompose a string variable into
sequences of integer variables representing the string characters.
A promising CP approach, on which this paper focuses, is based on dashed
strings. Given a fixed finite alphabet Σ and a maximum string length λ, dashed
strings are a particular class of regular expressions denoting sets of concrete
strings W ⊆ {w ∈ Σ ∗ | |w| ≤ λ} through the concatenation of distinct sets of
characters called blocks. Dashed strings are used to represent in a compact way
the domain of string variables without eagerly unfolding them into λ integer
variables. This can make a huge difference, especially when λ is big.
Several algorithms for dashed strings have been defined to propagate string
constraints like (in-)equality, concatenation, length, or regular expression mem-
bership. Most of them are based on the concept of dashed strings equation [7].
In this paper, we focus on a well-known constraint frequently occurring in
problems derived from software verification and testing: the Replace constraint.
c Springer Nature Switzerland AG 2020
H. Simonis (Ed.): CP 2020, LNCS 12333, pp. 3–20, 2020.
https://doi.org/10.1007/978-3-030-58475-7_1
4 R. Amadini et al.

Despite being a construct heavily used in modern programming, very few solvers
have implemented Replace, and its variants, due its non trivial semantics. For
this reason, few benchmarks exist.
Given an input string x, a query string q and a new string q  we have that
Replace(x, q, q  ) is the string obtained by replacing the first occurrence of q in
x with q  (Replace(x, q, q  ) = x if q does not occur in x). Common variants
are Replace-Last (that replaces the last occurrence of the query string) and
Replace-All (that replaces all the occurrences of the query string).
At present, no dashed string propagator has been defined for Replace (in
[5] it is simply decomposed into other string constraints). This approach is sound
but certainly improvable. In this work we define a unified propagation algorithm
that (i) improves the precision and the efficiency of Replace propagation, and
(ii) is general enough to propagate Replace-Last and Replace-All. The
latter in particular cannot be decomposed into basic constraints because we do
not know a priori how many times the query string occurs.
Empirical results show that the approach we propose significantly outper-
forms the performance of the decomposition approach and state-of-the-art SMT
solvers.
Paper structure. In Sect. 2 we give preliminary notions. In Sect. 3 we explain
how we propagate Replace and related constraints. In Sect. 4 we report the
empirical results, before discussing the related works in Sect. 5 and concluding
in Sect. 6.

2 Dashed Strings
Let Σ be a finite alphabet and Σ ∗ the set of all the strings over Σ. We denote
with  the empty string and with |w| the length of w ∈ Σ ∗ . We use 1-based
notation for (dashed) strings: w[i] is the i-th symbol of w for i = 1, . . . , |w|.
The concatenation of v, w ∈ Σ ∗ is denoted by v ·w (or simply vw) while wn =
n−1
ww is the concatenation of w for n > 0 times (w0 = ). The concatenation
of V, W ⊆ Σ ∗ is denoted with V · W = {vw | v ∈ V, w ∈ W } (or simply V W )
while W n = W W n−1 is the concatenation of W for n times (W 0 = {}). In this
work we focus on bounded-length strings, i.e., we fix an upper bound λ ∈ N and
only consider strings in SλΣ = {w ∈ Σ ∗ | |w| ≤ λ}.
A dashed string X = S1l1 ,u1 · · · Sklk ,uk is a concatenation of k = |X|> 0 blocks
such that, for i = 1, . . . , k: (i) Si ⊆ Σ; (ii) 0 ≤ li ≤ ui ≤ λ; (iii) ui + j=i lj ≤ λ.
For each block X[i] = Sili ,ui we call Si the base and (li , ui ) the cardinality,
where li = lb(Sili ,ui ) is the lower bound while ui = ub(Sili ,ui ) is
the upper bound
n
of X[i]. We
n extend this notation to dashed strings: lb(X) = i=1 lb(X[i]) and
ub(X) = i=1 ub(X[i]). Intuitively, lb(X) and ub(X) are respectively the lower
and the upper bound on the length of each concrete string denoted by X.
The primary goal of dashed strings is to compactly represent sets of strings,
so we define a function γ such that γ(S l,u ) = {w ∈ S ∗ | l ≤ |w| ≤
u} ⊆ SλΣ is the language denoted by block S l,u (in particular γ(∅0,0 ) = {}
for the null block ∅0,0 ). We extend γ to dashed strings: γ(S1l1 ,u1 · · · Sklk ,uk ) =
Dashed Strings and the Replace(-all) Constraint 5

(γ(S1l1 ,u1 ) . . . γ(Sklk ,uk )) ∩ SλΣ . Blocks of the form S 0,u are called nullable because
 ∈ γ(S 0,u ). A dashed string X is known if γ(X) = {w}, i.e., it represents a
single, “concrete” string w ∈ SλΣ .
We call DSλΣ the set of all the dashed strings. Note that, while SλΣ is finite,
λ
DSΣ is countable: λ bounds the cardinalities of the blocks, but not the number
of blocks that may appear in a dashed string. For example, given distinct char-
acters a, b ∈ Σ we can generate an infinite sequence of dashed strings in DSλΣ :
{a}0,1 {b}0,1 , {a}0,1 {b}0,1 {a}0,1 , {a}0,1 {b}0,1 {a}0,1 {b}0,1 , . . . .
A dashed string X = S1l1 ,u1 S2l2 ,u2 · · · Sklk ,uk is normalised if: (i) Si = Si+1 ,
(ii) Si = ∅ ⇔ li = ui = 0, (iii) X = ∅0,0 ∨ Si = ∅ for i = 1, . . . , k. The
operator Norm normalises a dashed string (note γ(X) = γ(Norm(X))). We
denote the set of normalised dashed strings as DSλΣ = {Norm(X) | X ∈ DSλΣ }.
Normalisation is fundamental to remove a large number of “spurious” dashed
strings from DSλΣ , i.e., distinct dashed strings denoting the same language. If
not otherwise specified, we will always refer to normalised dashed strings.
We define the partial order such that X Y ⇔ (X = Y ∨ γ(X) ⊂ γ(Y ))
to model the relation “is more precise than or equal to” between dashed strings,
i.e., we consider X more precise than Y if γ(X) ⊂ γ(Y ).1 Note that the poset
(DSλΣ , ) is well-founded but not a lattice: in general, we may not be able to
determine the dashed string which best represents two or more concrete strings.
For example, the set {ab, ba} has two minimal representations {a}0,1 {b}1,1 {a}0,1
and {b}0,1 {a}1,1 {b}0,1 which are not comparable according to .
From a graphical perspective, we can see a block S l,u as a continuous segment
of length l followed by a dashed segment of length u − l. The continuous one
indicates that exactly l characters of S must occur in each concrete string of
γ(X); the dashed one indicates that k ≤ u − l characters of S may occur.
Consider dashed string X = {B,b}1,1 {o}2,4 {m}1,1 {!}0,3 of Fig. 1. Each string of
γ(X) must start with ‘B’ or ‘b’, followed by 2 to 4 ‘o’s, one ‘m’, and 0 to 3 ‘!’s.

2.1 Positions and Equation


A convenient way to refer a dashed string is through its positions. Given
X = S1l1 ,u1 · · · Sklk ,uk , a positions is a pair (i, j) where index i ∈ {1, . . . , k} refers
to block X[i] and offset j indicates how many characters from the beginning of
X[i] we are considering. As shown in Fig. 1, indexes are 1-based while offsets are
0-based: position (i, 0) refers to the beginning of X[i] and can be equivalently
identified with the end of X[i − 1], i.e., with position (i − 1, ui−1 ). For conve-
nience, we consider (k + 1, 0) equivalent to (k, uk ) and (0, 0) to (1, 0). Given
X = S1l1 ,u1 · · · Sklk ,uk and positions (i, j), (i , j  ) we denote with X[(i, j), (i , j  )]

1
 is not defined as X  Y ⇐⇒ γ(X) ⊆ γ(Y ) because otherwise  would be
a pre-order but not a partial order in general, e.g., if λ = 2 then X = {a, b, c}0,2
and Y = {a, b}0,2 {b, c}0,2 {a, c}0,2 are such that γ(X) ⊆ γ(Y ) and γ(Y ) ⊆ γ(X) so
X  Y and Y  X but X = Y .
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
6 R. Amadini et al.

Fig. 1. Representation of {B,b}1,1 {o}2,4 {m}1,1 {!}0,3 .

the region of X between (i, j) and (i , j  ), defined by:


⎧ 0,0
⎨∅
⎪ if (i, j) (i , j  )
max (0,li −j),j  −j
Si else if i = i

⎩ max (0,li −j),ui −j li+1 ,ui+1 l  −1 ,ui −1 min (li ,j  ),j 
Si Si+1 · · · Sii−1 Si otherwise

For brevity, we also define X[..., P ] = X[(0, 0), P ] and X[P, ...] = X[P, (k, uk )].
For example, in Fig. 1 we have that region X[(2, 1), (2, 4)] is {o}1,3 while
X[(2, 3), (4, 2)] = {o}0,1 {m}1,1 {!}0,2 . Region X[(2, 2), ...] is {o}0,2 {m}1,1 {!}0,3
while X[..., (4, 1)] is {B,b}2,4 {o}2,4 {m}1,1 {!}0,1 .
Positions are used to implement a fundamental operation between dashed
strings, on which the propagator Replace propagator relies: the dashed string
equation. Equating X and Y means looking for a refinement of X and Y includ-
ing all the strings of γ(X)∩γ(Y ) and removing the most strings not belonging to
γ(X) ∩ γ(Y ). In other words, we look for a minimal—or at least small enough—
dashed string denoting all the concrete strings of γ(X) and γ(Y ) (the smallest
dashed string does not always exist because (DSλΣ , ) is not a lattice).
In [7] the authors introduced a sweep-based algorithm, that here we will call
Equate2 , such that: (i) if Equate(X, Y ) = ⊥, then γ(X) ∩ γ(Y ) = ∅; (ii)
if Equate(X, Y ) = (X  , Y  ) = ⊥, then X  X, Y  Y and γ(X) ∩ γ(Y ) =
 
γ(X )∩γ(Y ). In a nutshell, Equate(X, Y ) matches each block X[i] against each
block of Y to determine its earliest/latest start/end positions in Y , and uses this
information to possibly refine X[i] into more precise block(s) X  [i] X[i].
For example, consider matching block B = {o, m, g}2,6 against dashed string
X of Fig. 1 starting from position (0, 0). The earliest start of B is (2, 0) (it cannot
match X[1] = {B, b}1,1 because its base does not contain any B or b) and the
earliest end is (2, 2) (B contains at least 2 characters); the latest start is (2, 3)
because B cannot finish after latest end position (4, 0) (it cannot match {!}0,3 ).
This means that if B is the i-th block of a dashed string Y that we are equating
with X, then the prefix Y [..., i−1] has to match {B, b}1,1 and the suffix Y [i+1, ...]
has to match {!}0,3 (otherwise, Equate(X, Y ) = ⊥).
The region between earliest start and latest end is called feasible region,
while the region between latest start and earliest end is the mandatory region.
In the above example, the feasible region is X[(2, 0), (4, 0)] = {o}2,4 {m}1,1 while
mandatory region is null (latest start comes after earliest end). This information
enables the refinement of B into the more precise blocks {o}2,4 {m}1,1 .
2
In [7] it was called Sweep to distinguish it the Cover equation algorithm.
Dashed Strings and the Replace(-all) Constraint 7

Fig. 2. Push+ algorithm.

Fig. 3. Stretch− algorithm

Equate(X, Y ) uses auxiliary functions Push− and Push+ to detect the


“earliest” positions. Given block X[i], dashed string Y and initial position P0 of
Y , Push+ (X[i], Y, P0 ) returns a pair (Ps , Pe ) where Ps (resp., Pe ) is the earliest
8 R. Amadini et al.

start (resp. end) of X[i] in Y [P0 , ...] (see pseudo-code in Fig. 2). If X[i] cannot
match any block of Y [P0 , ...], then Ps = Pe = (|Y | + 1, 0). Dually, Push− works
“backwards” to find (Ps , Pe ) in Y [..., P0 ] from right to left.
In Fig. 1, if P0  (3, 0) then Push+ ({m}1,2 , X, P0 ) = ((3, 0), (4, 0))
and Push− ({m}1,2 , X, P0 ) = ((0, 0), (0, 0)); otherwise, if P0  (3, 0), then
we have Push+ ({m}1,2 , X, P0 ) = ((5, 0), (5, 0)) and Push− ({m}1,2 , X, P0 ) =
((4, 0), (3, 0)).
Analogously, a pair of Stretch functions are used for “latest” positions:
Stretch+ (X[i], Y, P0 ) is the latest position (left-to-right) where X[i] can match
Y starting from P0 (while Stretch− works right-to-left, see Fig. 3).3
In Fig. 1, for example, if P0 = (2, 1) then Stretch+ ({o,m,g}1,8 , X, P0 ) =
(3, 1) and Stretch− ({o,m,g}1,8 , X, P0 ) = (1, 1). If instead P0 = (0, 0)
then both functions return P0 because Stretch− cannot go further left and
Stretch+ cannot go further right since {o,m,g}1,8 does not match {B,b}1,1 .

3 Propagating Replace

If y = Replace(x, q, q  ), then y is the string obtained by replacing the first


occurrence of q in x with q  (if q does not occur in x, then x = y). The only
implementation of Replace with dashed strings, defined in [5], simply rewrites
y = Replace(x, q, q  ) into:4
⎛ ⎞
n = Find(q, x) ∧ Find(q, p) = |q| = 0
∃ n, p, s. ⎝ x = p · q n>0 · s ∧ y = p · q n>0 · s ∧ ⎠ (1)
|p| = max(0, n − 1)

where Find(q, x) returns the index of the first occurrence of q in x (Find(, x) =


1 and Find(q, x) = 0 if q does not occur in x) and b ∈ {0, 1} is the integer
value of Boolean variable b, i.e., b = 1 ⇐⇒ b.
This rewriting is sound but, as we shall see, has three main disadvantages:
(i) for each Replace constraint, all the constraints of decomposition (1) are
added; (ii) it may lose precision; (iii) it cannot be generalised to Replace-All.
To overcome the above drawbacks we defined a unified Replace propagator
which can also handle Replace-Last and Replace-All. The pseudo-code of
the propagator is shown in Fig. 4, where x, q, q  , y are the variables involved in the
constraint and the Boolean flag LST (resp. ALL) is true if we are propagating
Replace-Last (resp. Replace-All). Replace∗ denotes all three of Replace.
The Prop-Replace function returns: (i) UNS, if Replace∗ is infeasible; (ii)
OK, if Replace∗ may be feasible (in this case the domains are possibly refined);
(iii) Rewrite(C) if Replace∗ is rewritten into constraint C.

3
Push and Stretch are not dual. For example, when incompatible blocks are found,
Push moves on (Fig. 2, line 9) while Stretch returns (Fig. 3, line 13).
4
In [5] the order of Replace arguments is different. In this paper we change the
notation to be consistent with SMT-LIB specifications.
Dashed Strings and the Replace(-all) Constraint 9

Fig. 4. Generalised propagator for Replace∗ . Line 28 separates the particular cases
from the general case.
10 R. Amadini et al.

Prop-Replace first retrieves the dashed strings X, Q, Q , Y corresponding


to the domains of variables x, q, q  , y respectively (line 2). From now on we indi-
cate in bold font the fixed variables, i.e., those representing a single, concrete
string. We can divide the pseudo-code of Prop-Replace in two main blocks.
The first one (until line 28) refers to the particular cases, where either q is fixed
or x = y. Here we do not refine domains, but we possibly rewrite Replace∗ .
The second one (after line 28) models instead the general case. Here we possibly
refine the variables’ domain with a sweep-based approach relying on the Equate
algorithm.
The “if” statement between lines 3 and 22 handles the cases where
q is fixed by rewriting Replace∗ into basic constraints without any
loss of precision. In particular, as shown in Fig. 5, RepAllFixed is
used to break down Replace-All(x, q, q  ) into concatenations when both
x and q are fixed. Note that Replace-All assumes no overlaps, e.g.,
Replace-All(aaaaa, aa, b) = bba. We assume that  occurs in each position
of a string, e.g., Replace(ab, , c) = cab, while Replace-Last(ab, , c) = abc,
and Replace-All(ab, , c) = cacbc (see lines 4–11).

Fig. 5. RepAllFixed algorithm.

If q = q  then x = y (line 13), and if x is fixed then we can safely rewrite


Replace∗ into simpler constraints (lines 14–21, note that FindLast(q, x)
returns the last occurrence of q in x).
In line 22, CountMin (see Fig. 6) is used to count the occurrences of q in x.
Precisely, CountMin(q, X, ALL) = m if q surely occurs in each string of γ(X)
at least m times. If ALL = true, we want to maximize the returned value m
(for Replace-All); otherwise, CountMin returns 1 if q must occur in γ(X)
and 0 otherwise (for Replace and Replace-Last). For example, with X as
in Fig. 1, we have that: CountMin(b, X, true) = CountMin(b, X, false) = 0,
CountMin(o, X, true) = 2, and CountMin(o, X, false) = 1.
Random documents with unrelated
content Scribd suggests to you:
FOOTNOTES:

[1] Vide page vi.


[2] The Articles omitted consist chiefly of directions, &c., or are
not generally required.
[3] Note. In the “Exercise and Movements.”
Commander’s Words are printed in Small Capitals.
Executive Small print.
Directions, &c. Italics.
[4] Note.—Vide “Motion,” “Forces,” &c., Velocity, Gravity, and
Amplitude.
[5] Vide “Tables,” “Excentric Shot, Experiments.”
[6] When a shot is jammed in a gun, and cannot be rammed
home to the cartridge, destroy the charge by pouring water down
the vent, and muzzle until the ingredients are dissolved, and
cleared out of the bore; then introduce a small quantity of
powder through the vent, and blow out the shot.
[7] The recoil of guns on sleighs varies from four to five feet
when on rough ground or in deep snow; to twenty or thirty yards
when on glare ice. In the latter case it is of course necessary to
send the ammunition sleighs further to the rear; but the recoil
may be considerably lessened by placing a small chain round
each of the runners.
Ice of eight inches thick will bear with safety a weight of 1115 lb.
(or nearly half a ton) on the square foot.
[8] Old pattern.
[9] Further information relative to mixing the composition, and
filling combustibles, &c., &c., may be obtained from the “Aide
Mémoire,” under the head, “Pyrotechny, Military.”
[10] This will be discontinued when Shrapnell Diaphragm shells
are generally introduced into the Service.
[11] Vide Practice Tables for Ranges, Elevations, &c.
[12] The composition for French cannon tubes is two parts of
fulminate of mercury and two of mealed powder, mixed together:
then formed into a paste with distilled water, slightly impregnated
with gum arabic.
[13] Extracted from “Instructions and Regulations for Field
Battery Exercise and Movements” for the Royal Regiment of
Artillery: the Sections, &c., being similarly numbered.
Commander’s Words are printed in Small Capitals.
Executive Common type.
Directions, &c. Italics.
[14] The Sections, of which merely the heads are given, consist
chiefly of details too long for the limited size of the Manual, and
they are therefore necessarily omitted.
[15] When Guns are in action, and “cease firing” is given, all Guns
then loaded are to be fired off, and on no account is a Gun to be
limbered up, or to move whilst loaded.
[16] The Commanding officer’s Word of command is always to be
repeated by the officers.
[17] From “Field Battery Exercise.”
[18] From “Field Battery Exercise,” &c.
[19] From “Field Battery Exercise,” &c.
[20] In the transport of horses to Turkey (July, 1854,) in the
Himalaya and Simla steamers, the distance between the upright
posts was 2 feet 1 inch in the clear per horse, and the length 9
feet.
[21] “For the guidance of the Farriers of the Royal Artillery.
Suggested by Charles Percival, Veterinary Surgeon; and approved
of by the Right Honourable the Master-General, and Honourable
Board of Ordnance.”
[22] In administering draughts to horses, the greatest possible
care and attention are required; should the horse cough, or make
an attempt to do so, his head must be instantly lowered,
otherwise a portion of the drink will be apt to find its way into the
trachea or windpipe, which will produce most distressing
symptoms, and often be followed by death. In lowering the head,
a can or vessel of any kind should be held under the mouth to
catch the drink as it escapes.
[23] From “Instructions for the Service of Heavy Ordnance.”—Article
15.
[24] Words of command—small capitals.

[25] From “Instructions, and Regulations for the Service, and


Management of Heavy Ordnance, for the Royal Regiment of
Artillery.” Fourth edition. The Parts, and Articles are numbered in
conformity thereto.
[26] Words of command—small capitals.

[27] Vide Part 12, “Artillerist’s Manual,” etc., The Mechanical


powers. The Lever.
[28] By the ballistic experiment, conducted in May, 1837, it was
found that, with a heavy 6-pounder gun, a charge of 1½ lb. gave
a velocity of 1740 feet, and a charge of 2 lb. a velocity of 1892
feet per second. The shot employed were of a high gauge,
windage only ·078 inch, and the powder was of the strongest
quality; the weight of the pendulum fired into was 58 cwt. 3 qrs.
16 lb. A light 6-pounder, two feet shorter than the heavy 6-
pounder, with similar charges, gave velocities of about 190 feet
less.
[29] Extracted from Part 2, and Appendix of General Sir Howard
Douglas’ highly valued work, entitled “A Treatise on Naval
Gunnery.” 3rd edition.
[30] On wads for Heavy Ordnance.
The presence of a compressible body, between the powder and
the ball, is necessary for the preservation of the gun. The results
of the experiments at Fere, in 1844; at Ruelle in 1844, and 1846;
and at Gavres in 1848; with cast iron 30, and 24-pounders,
proved that all the pieces, fired without a thin piece of cork
interposed between the powder and the ball, burst before 500
discharges were made; whilst those, with which this precaution
was taken, sustained 1800 and 2000 discharges without any
damage, except an enlargement of the vent. Vide United Service
Magazine, September, 1855.
[31] Vide “Treatise on Naval Gunnery.” 3rd Edition. By General Sir
H. Douglas.
[32] In Extreme training of a gun to the Right: Nos. 3, 5, 7, 11,
13, are placed outside; Nos. 8, 6, inside the tackle. No. 13 keeps
the end of the fall coiled up.
In Extreme training to the Left: Nos 4, 6, 8, 2, are placed outside;
Nos. 13, 7, 5, inside the tackle. No. 2 keeps the end of the fall
coiled up.
[33] In running out the right guns, Nos. 3, 5, 5, 7, man the left
tackle; Nos. 4, 6, 6, 2, man the right tackle.
In running out the left guns, Nos. 3, 5, 7, 5, man the left tackle;
Nos. 4, 6, 6, 2, man the right tackle.
[34] Note.—When the direction of the gun is to be altered, the
word “Traverse” is to be given, if the gun is in, and “Point,” when
the gun is out.
[35] Vide Sir Howard Douglas’s highly-valued publication, entitled
“A Treatise on Naval Gunnery.” Fourth edition.
[36] Vide—“United Service Magazine,” No. CCCVIII.
[37] Vide Field Fortification, pages 246, 247.
[38] Vide Preface.
[39] For a square, the length of the perpendicular is ⅛th the
exterior side; for a pentagon ⅐ th; for the hexagon, and other
polygons, ⅙th.
[40] Vide Tables of Weights, and Measures.
[41] Vide Tables of Weights, and Measures.
[42] In reducing fractions to a common denominator, and in
multiplication of fractions, the work may be considerably
diminished by cancelling any figures, which are in all the
multiples; or by dividing a figure in each of them by any figure
which can divide all without any remainder.
[43] See Note, page 268.
[44] To multiply decimals by 1, with any number of ciphers, as
10, 100, &c.—This is done by only removing the decimal point so
many places farther to the right hand, as there are ciphers in the
multiplier, and subjoining ciphers, if need be.
[45] The best way of doubling the root, to form the new divisor, is
by adding the last figure always to the last divisor, as appears in
the following example.
After the figures belonging to the given number are all exhausted,
the operation may be continued into decimals, by adding any
number of periods of ciphers, two in each period.
[46] This rule is only applicable to the very best-made new
cordage. The circumference squared should be divided by 6
instead of 5 for the description of rope generally employed.
[47] When the board is tapering, add the breadths at the two
ends together, and take half the sum for the mean breadth. Or
else, take the mean breadth in the middle.
[48] To strengthen a beam, &c. which is required to support a
great weight over a cavity, or ditch.—Place a prop, or short skid,
under the centre of the beam, and pass a strong rope, or chain,
over the beam lengthways, and under the skid, hauling it very
tight, and making fast.
[49] In Lieut.-Colonel B. Jackson’s scientific “Treatise on Military
Surveying, &c., &c., &c.,” Portable trigonometry without
logarithms, is thus introduced—
“The following useful application of Trigonometry, by means of
the natural sines, tangents, &c., is taken from an early number of
that valuable periodical, ‘The Mechanics’ Magazine,’ and will be
found particularly suited to the purposes of the military surveyor.”
[50] For further information on Surveying, and Reconnoitring,
reference should be made to the highly-valued publication,
entitled “A Treatise on Military Surveying, including Sketching in the
Field, Plan Drawing, Levelling, Military Reconnoissance, &c.,” by
Lieut.-Colonel Basil Jackson, containing a full account of every
surveying instrument, and the right adaptation of them.
[51] 1. The Reconnoitring protractor is not intended to supply the
place of the Theodolite, or other expensive instruments, when
very great accuracy is required in surveying, or in trigonometrical
observations; but, in the hands of officers accustomed to the use
of it, bearings may be rapidly taken, heights and distances
ascertained, roads traversed, &c., &c., with sufficient accuracy for
a military survey, or reconnoissance.
The protractor has a tripod, on which it is to be steadily fixed for
taking angles, &c.; but the instrument can nevertheless be used
without the tripod; and mounted officers may, after a little
practice, make a reconnoissance with the protractor alone,
especially if they are able to measure, or calculate the distance of
base lines, by the length of the paces of their horses.
2. A survey, &c., may be very rapidly taken in the field, by laying
drawing-paper on the face of the protractor, under the marginal
scale, fixing it firmly by means of drawing-pins in the sides, and
using, at the first station, the edge of the index as a ruler to set
off on the paper, at once, by observation through the sights, the
angles of the objects whose distance is required; drawing a base
line parallel to the tube side of the instrument, and also lines at
the angles found. At the second station, the paper must be
moved a few inches, for a base line to be drawn; at the
termination of which (the second station) the index is to be
directed to the objects, as before, and lines are to be produced
until they intersect those drawn at the first station: thus the
position of the objects will be obtained; and, by using the scale
on the index for the length drawn for the measured base line, as
well as for the lines directed to the objects, their respective
distances will be ascertained.
3. The reconnoitring protractor, and all other instruments for
surveying, &c., &c. can be readily obtained from Messrs. Elliott,
56, Strand, London.
[52] Or Reconnoitring protractor.
[53] To erect a perpendicular, vide “Practical Geometry.”
[54]
3 inch cube full of air floats 1 lb. in water.
3 inch cube of water weighs 1 lb. in air.
1 cubic foot of water weighs 64 lb. in air.
1 ditto coal ditto 80 - 64 = 16 in water.
1 ditto sand ditto 95 - 64 = 31 in water.
A suit of clothes and a pair of boots, which weigh 7 lb. in air,
when well saturated with water, only weigh in water 1 lb.
[55] Vide also Definitions—Trigonometry, page 301.
[56] Gunter’s chain is in length 4 poles = 22 yards = 66 feet, and
is divided into 100 links. Each link is therefore 22 of a yard, or
100
66
of a foot, or 7·92 inches. Land is estimated in acres, roods,
100
and perches. An acre contains 10 square chains, or as much as
10 chains in length and 1 chain in breadth; or in yards it is 220 ×
22 = 4840; or in poles it is 40 × 4 = 160 square poles; or in links
it is 1000 × 100 = 100,000 square links. An acre is divided into 4
parts called roods, and a rood into 40 parts called perches, which
are square poles, or the square of a pole of 5½ yards long, or the
square of a quarter of a chain, or of 25 links, which is 625 links.
Thus the divisions of land measure are—
625 square links = 1 pole, or perch.
40 perches = 1 rood.
4 roods = 1 acre.
The length of lines, measured with a chain, should be set down in
links as integers, instead of in chains, and decimals. Therefore,
after the content is found, it will be in square links.
[57] 57·3 is the number of pounds of powder contained in a cubic
foot, when shaken; and 55 pounds when not shaken. According
to the first case, one pound of powder will occupy 30 cubic
inches; and according to the second case one pound will occupy
31·4182 cubic inches.
LONDON:
PRINTED BY W. CLOWES AND SONS, STAMFORD STREET
AND CHARING CROSS.
TRANSCRIBER’S NOTE
Footnote [37] is referenced six times from page 237;
footnote [52] is referenced twice from page 311;
footnote [54] is referenced four times from pages 317 and page 318.
Obvious typographical errors and punctuation errors have been corrected after
careful comparison with other occurrences within the text and consultation of
external sources.
Some hyphens in words have been silently removed, some added, when a
predominant preference was found in the original book.
Some { bracketing in some tables has been adjusted or removed for readability.
Except for those changes noted below, all misspellings in the text, and
inconsistent or archaic usage, have been retained.
Pg viii: page number ‘8’ replaced by ‘48’.
Pg xvi: Added new section ‘CONGREVE ROCKETS.’ to the ToC.
Pg xviii: ‘Embrasures’ replaced by ‘Embrazures’.
Pg xxi: ‘312, 313, 314’ replaced by ‘312–4’.
Pg 61: ‘thirty ronnds of’ replaced by ‘thirty rounds of’.
Pg 69: in the table header ‘Fore | Diameter’ replaced by ‘Fore | Hind’.
Pg 72: in second column of the table ‘3¾’ replaced by ‘2¾’.
Pg 80: ‘4⅗ inch Mortar’ replaced by ‘4⅖ inch Mortar’.
Pg 85: in the table ‘5½ in c’ replaced by ‘5½ inch’.
Pg 91: in LEVERS section ‘lb. oz.’ replaced by ‘ft. in.’
Pg 171: in the table ‘1’ replaced by ‘10’.
Pg 171: in the table ‘1209’ replaced by ‘1200’.
Pg 176: ‘to facilite the’ replaced by ‘to facilitate the’.
Pg 187: ‘assist 2 at’ replaced by ‘assists 2 at’.
Pg 195: ‘at an elevavation’ replaced by ‘at an elevation’.
Pg 222: ‘a longe range’ replaced by ‘a long range’.
Pg 226: ‘they ricoched and’ replaced by ‘they ricocheted and’.
Pg 226: the italic markup on the small table has been removed.
Pg 227: ‘the same is in’ replaced by ‘the same as in’.
Pg 234: ‘left betweeen the’ replaced by ‘left between the’.
Pg 235: ‘placed at tho top’ replaced by ‘placed at the top’.
Pg 238: ‘embrasures should be’ replaced by ‘embrazures should be’.
Pg 291: ‘(5 × 1)’ replaced by ‘(5 + 1)’.
Pg 318: the footnote in the original book ‘See note, p. 317’ was redundant and
has been removed.
Pg 320: ‘is is a’ replaced by ‘it is a’.

Footnote [7]: ‘to five eet’ replaced by ‘to five feet’.


*** END OF THE PROJECT GUTENBERG EBOOK THE ARTILLERIST'S
MANUAL AND BRITISH SOLDIER'S COMPENDIUM ***

Updated editions will replace the previous one—the old editions will
be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States copyright in
these works, so the Foundation (and you!) can copy and distribute it
in the United States without permission and without paying
copyright royalties. Special rules, set forth in the General Terms of
Use part of this license, apply to copying and distributing Project
Gutenberg™ electronic works to protect the PROJECT GUTENBERG™
concept and trademark. Project Gutenberg is a registered trademark,
and may not be used if you charge for an eBook, except by following
the terms of the trademark license, including paying royalties for use
of the Project Gutenberg trademark. If you do not charge anything
for copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such as
creation of derivative works, reports, performances and research.
Project Gutenberg eBooks may be modified and printed and given
away—you may do practically ANYTHING in the United States with
eBooks not protected by U.S. copyright law. Redistribution is subject
to the trademark license, especially commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the free


distribution of electronic works, by using or distributing this work (or
any other work associated in any way with the phrase “Project
Gutenberg”), you agree to comply with all the terms of the Full
Project Gutenberg™ License available with this file or online at
www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand, agree
to and accept all the terms of this license and intellectual property
(trademark/copyright) agreement. If you do not agree to abide by all
the terms of this agreement, you must cease using and return or
destroy all copies of Project Gutenberg™ electronic works in your
possession. If you paid a fee for obtaining a copy of or access to a
Project Gutenberg™ electronic work and you do not agree to be
bound by the terms of this agreement, you may obtain a refund
from the person or entity to whom you paid the fee as set forth in
paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only be


used on or associated in any way with an electronic work by people
who agree to be bound by the terms of this agreement. There are a
few things that you can do with most Project Gutenberg™ electronic
works even without complying with the full terms of this agreement.
See paragraph 1.C below. There are a lot of things you can do with
Project Gutenberg™ electronic works if you follow the terms of this
agreement and help preserve free future access to Project
Gutenberg™ electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright law
in the United States and you are located in the United States, we do
not claim a right to prevent you from copying, distributing,
performing, displaying or creating derivative works based on the
work as long as all references to Project Gutenberg are removed. Of
course, we hope that you will support the Project Gutenberg™
mission of promoting free access to electronic works by freely
sharing Project Gutenberg™ works in compliance with the terms of
this agreement for keeping the Project Gutenberg™ name associated
with the work. You can easily comply with the terms of this
agreement by keeping this work in the same format with its attached
full Project Gutenberg™ License when you share it without charge
with others.

1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the
terms of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.

1.E. Unless you have removed all references to Project Gutenberg:

1.E.1. The following sentence, with active links to, or other


immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project Gutenberg™
work (any work on which the phrase “Project Gutenberg” appears,
or with which the phrase “Project Gutenberg” is associated) is
accessed, displayed, performed, viewed, copied or distributed:
This eBook is for the use of anyone anywhere in the United
States and most other parts of the world at no cost and with
almost no restrictions whatsoever. You may copy it, give it away
or re-use it under the terms of the Project Gutenberg License
included with this eBook or online at www.gutenberg.org. If you
are not located in the United States, you will have to check the
laws of the country where you are located before using this
eBook.

1.E.2. If an individual Project Gutenberg™ electronic work is derived


from texts not protected by U.S. copyright law (does not contain a
notice indicating that it is posted with permission of the copyright
holder), the work can be copied and distributed to anyone in the
United States without paying any fees or charges. If you are
redistributing or providing access to a work with the phrase “Project
Gutenberg” associated with or appearing on the work, you must
comply either with the requirements of paragraphs 1.E.1 through
1.E.7 or obtain permission for the use of the work and the Project
Gutenberg™ trademark as set forth in paragraphs 1.E.8 or 1.E.9.

1.E.3. If an individual Project Gutenberg™ electronic work is posted


with the permission of the copyright holder, your use and distribution
must comply with both paragraphs 1.E.1 through 1.E.7 and any
additional terms imposed by the copyright holder. Additional terms
will be linked to the Project Gutenberg™ License for all works posted
with the permission of the copyright holder found at the beginning
of this work.

1.E.4. Do not unlink or detach or remove the full Project


Gutenberg™ License terms from this work, or any files containing a
part of this work or any other work associated with Project
Gutenberg™.

1.E.5. Do not copy, display, perform, distribute or redistribute this


electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1
with active links or immediate access to the full terms of the Project
Gutenberg™ License.

1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if you
provide access to or distribute copies of a Project Gutenberg™ work
in a format other than “Plain Vanilla ASCII” or other format used in
the official version posted on the official Project Gutenberg™ website
(www.gutenberg.org), you must, at no additional cost, fee or
expense to the user, provide a copy, a means of exporting a copy, or
a means of obtaining a copy upon request, of the work in its original
“Plain Vanilla ASCII” or other form. Any alternate format must
include the full Project Gutenberg™ License as specified in
paragraph 1.E.1.

1.E.7. Do not charge a fee for access to, viewing, displaying,


performing, copying or distributing any Project Gutenberg™ works
unless you comply with paragraph 1.E.8 or 1.E.9.

1.E.8. You may charge a reasonable fee for copies of or providing


access to or distributing Project Gutenberg™ electronic works
provided that:

• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”

• You provide a full refund of any money paid by a user who


notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.

• You provide, in accordance with paragraph 1.F.3, a full refund of


any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.

• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.

1.E.9. If you wish to charge a fee or distribute a Project Gutenberg™


electronic work or group of works on different terms than are set
forth in this agreement, you must obtain permission in writing from
the Project Gutenberg Literary Archive Foundation, the manager of
the Project Gutenberg™ trademark. Contact the Foundation as set
forth in Section 3 below.

1.F.

1.F.1. Project Gutenberg volunteers and employees expend


considerable effort to identify, do copyright research on, transcribe
and proofread works not protected by U.S. copyright law in creating
the Project Gutenberg™ collection. Despite these efforts, Project
Gutenberg™ electronic works, and the medium on which they may
be stored, may contain “Defects,” such as, but not limited to,
incomplete, inaccurate or corrupt data, transcription errors, a
copyright or other intellectual property infringement, a defective or
damaged disk or other medium, a computer virus, or computer
codes that damage or cannot be read by your equipment.

1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for


the “Right of Replacement or Refund” described in paragraph 1.F.3,
the Project Gutenberg Literary Archive Foundation, the owner of the
Project Gutenberg™ trademark, and any other party distributing a
Project Gutenberg™ electronic work under this agreement, disclaim
all liability to you for damages, costs and expenses, including legal
fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR
NEGLIGENCE, STRICT LIABILITY, BREACH OF WARRANTY OR
BREACH OF CONTRACT EXCEPT THOSE PROVIDED IN PARAGRAPH
1.F.3. YOU AGREE THAT THE FOUNDATION, THE TRADEMARK
OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL
NOT BE LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT,
CONSEQUENTIAL, PUNITIVE OR INCIDENTAL DAMAGES EVEN IF
YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.

1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you


discover a defect in this electronic work within 90 days of receiving
it, you can receive a refund of the money (if any) you paid for it by
sending a written explanation to the person you received the work
from. If you received the work on a physical medium, you must
return the medium with your written explanation. The person or
entity that provided you with the defective work may elect to provide
a replacement copy in lieu of a refund. If you received the work
electronically, the person or entity providing it to you may choose to
give you a second opportunity to receive the work electronically in
lieu of a refund. If the second copy is also defective, you may
demand a refund in writing without further opportunities to fix the
problem.

1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied


warranties or the exclusion or limitation of certain types of damages.
If any disclaimer or limitation set forth in this agreement violates the
law of the state applicable to this agreement, the agreement shall be
interpreted to make the maximum disclaimer or limitation permitted
by the applicable state law. The invalidity or unenforceability of any
provision of this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation,


the trademark owner, any agent or employee of the Foundation,
anyone providing copies of Project Gutenberg™ electronic works in
accordance with this agreement, and any volunteers associated with
the production, promotion and distribution of Project Gutenberg™
electronic works, harmless from all liability, costs and expenses,
including legal fees, that arise directly or indirectly from any of the
following which you do or cause to occur: (a) distribution of this or
any Project Gutenberg™ work, (b) alteration, modification, or
additions or deletions to any Project Gutenberg™ work, and (c) any
Defect you cause.

Section 2. Information about the Mission


of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new computers.
It exists because of the efforts of hundreds of volunteers and
donations from people in all walks of life.

Volunteers and financial support to provide volunteers with the


assistance they need are critical to reaching Project Gutenberg™’s
goals and ensuring that the Project Gutenberg™ collection will
remain freely available for generations to come. In 2001, the Project
Gutenberg Literary Archive Foundation was created to provide a
secure and permanent future for Project Gutenberg™ and future
generations. To learn more about the Project Gutenberg Literary
Archive Foundation and how your efforts and donations can help,
see Sections 3 and 4 and the Foundation information page at
www.gutenberg.org.

Section 3. Information about the Project


Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-profit
501(c)(3) educational corporation organized under the laws of the
state of Mississippi and granted tax exempt status by the Internal
Revenue Service. The Foundation’s EIN or federal tax identification
number is 64-6221541. Contributions to the Project Gutenberg
Literary Archive Foundation are tax deductible to the full extent
permitted by U.S. federal laws and your state’s laws.

The Foundation’s business office is located at 809 North 1500 West,


Salt Lake City, UT 84116, (801) 596-1887. Email contact links and up
to date contact information can be found at the Foundation’s website
and official page at www.gutenberg.org/contact

Section 4. Information about Donations to


the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission of
increasing the number of public domain and licensed works that can
be freely distributed in machine-readable form accessible by the
widest array of equipment including outdated equipment. Many
small donations ($1 to $5,000) are particularly important to
maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws regulating


charities and charitable donations in all 50 states of the United
States. Compliance requirements are not uniform and it takes a
considerable effort, much paperwork and many fees to meet and
keep up with these requirements. We do not solicit donations in
locations where we have not received written confirmation of
compliance. To SEND DONATIONS or determine the status of
compliance for any particular state visit www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states where


we have not met the solicitation requirements, we know of no
prohibition against accepting unsolicited donations from donors in
such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot make


any statements concerning tax treatment of donations received from
outside the United States. U.S. laws alone swamp our small staff.

Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.

Section 5. General Information About


Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could be
freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose network of
volunteer support.
Project Gutenberg™ eBooks are often created from several printed
editions, all of which are confirmed as not protected by copyright in
the U.S. unless a copyright notice is included. Thus, we do not
necessarily keep eBooks in compliance with any particular paper
edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg Literary
Archive Foundation, how to help produce our new eBooks, and how
to subscribe to our email newsletter to hear about new eBooks.

You might also like