LOGPROG  Lògica i Programació
La recerca del nostre grup "Lògica i Programació" s'emmarca en el desenvolupament de tècniques i eines per a l'aplicació de la lògica a la resolució de sistemes de restriccions. Més concretament, les principals línies de la nostra investigació es basen per una banda en (a) l'estudi de mètodes de resolució de problemes mitjançant resolvedors de satisfactibilitat proposicional (SAT), de satisfactibilitat mòdul teories (SMT), de programació amb restriccions (CP), i d'extensions d'aquests a optimització (MaxSAT, MaxSMT); i (b) per una altra en l'aplicació d'aquests mètodes per atacar problemes complexos d'interès pràctic, com ara de planificació industrial o d'anàlisis de programes. Mentre que la recerca de tipus més teòric és presentada a les conferències i revistes internacionals de més prestigi de les respectives àrees, els resultats en la vessant més pràctica es materialitzen en transferència de tecnologia en empreses tant de dins com de fora de Catalunya.
The group carries out research in basic computer science. In particular, it has internationallyrecognised expertise in the (closely related) fields of logic in computer science, computational complexity and constraintsolving problems, and in the use of advanced programming techniques (e.g. constraint programming, automated deduction, etc.) for the development of practical software tools.
In what follows, we give a brief overview of these research lines. Logic has been called "the calculus of computer science", because its role in computer science is similar to that of mathematics in the physical sciences (see, for example, www.cs.rice.edu/~vardi/logic).
Similarly to the way in which architects and engineers analyse their designs mathematically, computer scientists use logic to analyse systems¿ properties (e.g. correctness, safety and security), during all the phases of their life cycles (e.g. specification, development, verification and maintenance). Also, for systems whose efficiency is critical, logicbased analysis can be very helpful, and in all kinds of systems, logicbased techniques help to reduce costs (see, for example, the section on software productivity tools at research.microsoft.com). Hence, it is not surprising that there is an increasing tendency to use logicbased formalisms in all kinds of hardware and software systems and their components, such as databases or programming languages, among others.
Computational complexity involves the study of the resources required during computation to solve a given problem. The most common resources are time (number of computation steps) and space (amount of memory). Other resources can also be considered, such as randomness (how randomness can increase efficiency) and parallelism (how the use of parallel processors can help). Today, the connections between logic and complexity are well established. For example, the field of proof complexity involves the study of the mathematical relationships between complexity classes (i.e. classes of problems that are solvable using the same amount of resources) and the length of proofs in certain logical systems. This field arose as an approach to the wellknown problem of whether the P class of problems equals the NP class or not (see the milliondollar prizes at www.claymath.org): if one could show that, for every propositional proof system, there is a class of tautologies with no short proofs, then the answer is negative. The study of the limitations of proof systems has also led to the discovery of important new algorithms.
Constraint programming is the study of computational systems based on constraints. It has recently emerged as an area of research that engages researchers from a variety of fields. The idea is to solve problems by stating constraints (i.e. conditions, properties) that must be satisfied by the solution. Constraint programming consists of the generation of requirements (constraints) and the solution of these requirements by specialised constraint solvers. It has been successfully applied in numerous domains, including computer graphics (to express geometric coherence), natural language processing (to construct efficient parsers), database systems (to ensure and/or restore the consistency of the data), operations research (optimisation problems), molecular biology (DNA sequencing), business applications (option trading), electrical engineering (to locate faults), circuit design (to compute layouts), etc. Most, if not all, of these practical problems fall into the complexity class of NPcomplete problems, for which proof complexity results give insight into classes of deterministic algorithms.
The research group will continue to carry out research in logicbased methods in the areas of automated deduction, rewriting, constraint/logic programming, hardware and software verification, and symbolic computation. For constraintsatisfaction problems and algorithms for combinatorial optimisation problems, the group will also continue to work on aspects such as heuristics, symmetries, and valued constraints, and carry out research in the field of proof and circuit complexity and its close relationship with automated theoremproving and the satisfiability problem.
Specific tools that are being developed and maintained include automated deduction systems for firstorder logic, efficient decision procedures for decidable logics of interest, environments for automated termination proofs, and environments for program verification. Moreover, the research group will continue to apply such tools to circuit verification, industrial planning/scheduling, the Semantic Web, and education, and to pursue their free distribution throughout the Internet.
New research lines of particular interest include the forthcoming Semantic World Wide Web and its associated description logics for semantic search criteria, consistency/integrity restrictions, etc. Another example is the crucial need for logicbased techniques for the verification of cryptographic protocols, in applications such as secrecy, electronic signatures, and electronic money (since testing is useless against malicious attackers). From a more theoretical point of view, we intend to open new lines of research in quantum computing, cryptography, data compression, and applications of game theory to computer science.
All the members of the group have international experience, some as researchers, lecturers and guest lecturers at international institutions. This facilitates close relationships with prestigious institutions, such as the Institute for Advanced Study in Princeton (USA), the DIMACS Research Centre at Rutgers University (USA), the University of Toronto (Canada), the University of California at San Diego (USA), the MaxPlanckInstitut for Computer Science (Germany), the École Normale Superieure (France), the École Polytechnique (France), etc.
The group carries out research in basic computer science. In particular, it has internationallyrecognised expertise in the (closely related) fields of logic in computer science, computational complexity and constraintsolving problems, and in the use of advanced programming techniques (e.g. constraint programming, automated deduction, etc.) for the development of practical software tools.
In what follows, we give a brief overview of these research lines. Logic has been called "the calculus of computer science", because its role in computer science is similar to that of mathematics in the physical sciences (see, for example, www.cs.rice.edu/~vardi/logic).
Similarly to the way in which architects and engineers analyse their designs mathematically, computer scientists use logic to analyse systems¿ properties (e.g. correctness, safety and security), during all the phases of their life cycles (e.g. specification, development, verification and maintenance). Also, for systems whose efficiency is critical, logicbased analysis can be very helpful, and in all kinds of systems, logicbased techniques help to reduce costs (see, for example, the section on software productivity tools at research.microsoft.com). Hence, it is not surprising that there is an increasing tendency to use logicbased formalisms in all kinds of hardware and software systems and their components, such as databases or programming languages, among others.
Computational complexity involves the study of the resources required during computation to solve a given problem. The most common resources are time (number of computation steps) and space (amount of memory). Other resources can also be considered, such as randomness (how randomness can increase efficiency) and parallelism (how the use of parallel processors can help). Today, the connections between logic and complexity are well established. For example, the field of proof complexity involves the study of the mathematical relationships between complexity classes (i.e. classes of problems that are solvable using the same amount of resources) and the length of proofs in certain logical systems. This field arose as an approach to the wellknown problem of whether the P class of problems equals the NP class or not (see the milliondollar prizes at www.claymath.org): if one could show that, for every propositional proof system, there is a class of tautologies with no short proofs, then the answer is negative. The study of the limitations of proof systems has also led to the discovery of important new algorithms.
Constraint programming is the study of computational systems based on constraints. It has recently emerged as an area of research that engages researchers from a variety of fields. The idea is to solve problems by stating constraints (i.e. conditions, properties) that must be satisfied by the solution. Constraint programming consists of the generation of requirements (constraints) and the solution of these requirements by specialised constraint solvers. It has been successfully applied in numerous domains, including computer graphics (to express geometric coherence), natural language processing (to construct efficient parsers), database systems (to ensure and/or restore the consistency of the data), operations research (optimisation problems), molecular biology (DNA sequencing), business applications (option trading), electrical engineering (to locate faults), circuit design (to compute layouts), etc. Most, if not all, of these practical problems fall into the complexity class of NPcomplete problems, for which proof complexity results give insight into classes of deterministic algorithms.
The research group will continue to carry out research in logicbased methods in the areas of automated deduction, rewriting, constraint/logic programming, hardware and software verification, and symbolic computation. For constraintsatisfaction problems and algorithms for combinatorial optimisation problems, the group will also continue to work on aspects such as heuristics, symmetries, and valued constraints, and carry out research in the field of proof and circuit complexity and its close relationship with automated theoremproving and the satisfiability problem.
Specific tools that are being developed and maintained include automated deduction systems for firstorder logic, efficient decision procedures for decidable logics of interest, environments for automated termination proofs, and environments for program verification. Moreover, the research group will continue to apply such tools to circuit verification, industrial planning/scheduling, the Semantic Web, and education, and to pursue their free distribution throughout the Internet.
New research lines of particular interest include the forthcoming Semantic World Wide Web and its associated description logics for semantic search criteria, consistency/integrity restrictions, etc. Another example is the crucial need for logicbased techniques for the verification of cryptographic protocols, in applications such as secrecy, electronic signatures, and electronic money (since testing is useless against malicious attackers). From a more theoretical point of view, we intend to open new lines of research in quantum computing, cryptography, data compression, and applications of game theory to computer science.
All the members of the group have international experience, some as researchers, lecturers and guest lecturers at international institutions. This facilitates close relationships with prestigious institutions, such as the Institute for Advanced Study in Princeton (USA), the DIMACS Research Centre at Rutgers University (USA), the University of Toronto (Canada), the University of California at San Diego (USA), the MaxPlanckInstitut for Computer Science (Germany), the École Normale Superieure (France), the École Polytechnique (France), etc.
Collections in this community

Articles de revista [14]

Reports de recerca [15]
Recent Submissions

Proving termination through conditional termination
(Springer, 2017)
Conference report
Open AccessWe present a constraintbased method for proving conditional termination of integer programs. Building on this, we construct a framework to prove (unconditional) program termination using a powerful mechanism to combine ... 
Incomplete SMT techniques for solving nonlinear formulas over the integers
(20190801)
Article
Open AccessWe present new methods for solving the Satisfiability Modulo Theories problem over the theory of QuantifierFree Nonlinear Integer Arithmetic, SMT(QFNIA), which consists of deciding the satisfiability of ground formulas ... 
Short proofs of the KneserLovász coloring principle
(201808)
Article
Open AccessWe prove that propositional translations of the Kneser–Lovász theorem have polynomial size extended Frege proofs and quasipolynomial size Frege proofs for all fixed values of k. We present a new countingbased combinatorial ... 
Ordocoordinación: cómo organizar 700 estudiantes en un nuevo campus (y no morir en el intento)
(Asociación de Enseñantes Universitarios de la Informática (AENUI), 2018)
Conference report
Open AccessSince Autumn Term 2017 the Department of Computer Science of the Universitat Politecnica de Catalunya UPCBarcelonaTech is in charge of teaching ”Fundamentals of Programming” in the new DiagonalBeso ´s Campus, at EEBE ... 
Are crossing dependencies really scarce?
(20180301)
Article
Open AccessThe syntactic structure of a sentence can be modelled as a tree, where vertices correspond to words and edges indicate syntactic dependencies. It has been claimed recurrently that the number of edge crossings in real ... 
Subproblem ordering heuristics for AND/OR bestfirst search
(20171109)
Article
Open AccessBestfirst search can be regarded as anytime scheme for producing lower bounds on the optimal solution, a characteristic that is mostly overlooked. We explore this topic in the context of AND/OR bestfirst search, guided ... 
Residualguided lookahead in AND/OR search for graphical models
(20171001)
Article
Open AccessWe introduce the concept of local bucket error for the minibucket heuristics and show how it can be used to improve the power of AND/OR search for combinatorial optimization tasks in graphical models (e.g. MAP/MPE or ... 
Jutge.org: characteristics and experiences
(201807)
Article
Open AccessJutge.org is an open educational online programming judge designed for students and instructors, featuring a repository of problems that is well organized by courses, topics and difficulty. Internally, Jutge.org uses a ... 
Anotaciones de Merlín, comportamiento de universos y semántica algebraica
(E.T.S.I. de Telecomunicación, 1985)
Conference report
Open AccessEn este trabajo se presentan las ideas básicas seguidas para el diseño de un lenguaje de anotaciones para el lenguaje de programación Merlín. En concreto, las anotaciones se prevén en forma de especificaciones ecuacionales ... 
A correction on Shiloach's algorithm for minimum linear arrangement of trees
(20170629)
Article
Open AccessMore than 30 years ago, Shiloach published an algorithm to solve the minimum linear arrangement problem for undirected trees. Here we fix a small error in the original version of the algorithm and discuss its effect on ... 
Improving IntSat by expressing disjunctions of bounds as linear constraints
(2016)
Article
Restricted access  publisher's policyConflictDriven Clause Learning (CDCL) SAT solvers can automatically solve very large realworld problems. IntSat is a new technique extending CDCL to Integer Linear Programming (ILP). For some conflicts, IntSat generates ... 
Speeding up the constraintbased method in difference logic
(2016)
Conference report
Open AccessOver the years the constraintbased method has been successfully applied to a wide range of problems in program analysis, from invariant generation to termination and nontermination proving. Quite often the semantics of ...