7,679 research outputs found
SUNNY-CP and the MiniZinc Challenge
In Constraint Programming (CP) a portfolio solver combines a variety of
different constraint solvers for solving a given problem. This fairly recent
approach enables to significantly boost the performance of single solvers,
especially when multicore architectures are exploited. In this work we give a
brief overview of the portfolio solver sunny-cp, and we discuss its performance
in the MiniZinc Challenge---the annual international competition for CP
solvers---where it won two gold medals in 2015 and 2016. Under consideration in
Theory and Practice of Logic Programming (TPLP)Comment: Under consideration in Theory and Practice of Logic Programming
(TPLP
PyZX: Large Scale Automated Diagrammatic Reasoning
The ZX-calculus is a graphical language for reasoning about ZX-diagrams, a
type of tensor networks that can represent arbitrary linear maps between
qubits. Using the ZX-calculus, we can intuitively reason about quantum theory,
and optimise and validate quantum circuits. In this paper we introduce PyZX, an
open source library for automated reasoning with large ZX-diagrams. We give a
brief introduction to the ZX-calculus, then show how PyZX implements methods
for circuit optimisation, equality validation, and visualisation and how it can
be used in tandem with other software. We end with a set of challenges that
when solved would enhance the utility of automated diagrammatic reasoning.Comment: In Proceedings QPL 2019, arXiv:2004.1475
Focusing and Polarization in Intuitionistic Logic
A focused proof system provides a normal form to cut-free proofs that
structures the application of invertible and non-invertible inference rules.
The focused proof system of Andreoli for linear logic has been applied to both
the proof search and the proof normalization approaches to computation. Various
proof systems in literature exhibit characteristics of focusing to one degree
or another. We present a new, focused proof system for intuitionistic logic,
called LJF, and show how other proof systems can be mapped into the new system
by inserting logical connectives that prematurely stop focusing. We also use
LJF to design a focused proof system for classical logic. Our approach to the
design and analysis of these systems is based on the completeness of focusing
in linear logic and on the notion of polarity that appears in Girard's LC and
LU proof systems
Reasoning About a Simulated Printer Case Investigation with Forensic Lucid
In this work we model the ACME (a fictitious company name) "printer case
incident" and make its specification in Forensic Lucid, a Lucid- and
intensional-logic-based programming language for cyberforensic analysis and
event reconstruction specification. The printer case involves a dispute between
two parties that was previously solved using the finite-state automata (FSA)
approach, and is now re-done in a more usable way in Forensic Lucid. Our
simulation is based on the said case modeling by encoding concepts like
evidence and the related witness accounts as an evidential statement context in
a Forensic Lucid program, which is an input to the transition function that
models the possible deductions in the case. We then invoke the transition
function (actually its reverse) with the evidential statement context to see if
the evidence we encoded agrees with one's claims and then attempt to
reconstruct the sequence of events that may explain the claim or disprove it.Comment: 18 pages, 3 figures, 7 listings, TOC, index; this article closely
relates to arXiv:0906.0049 and arXiv:0904.3789 but to remain stand-alone
repeats some of the background and introductory content; abstract presented
at HSC'09 and the full updated paper at ICDF2C'11. This is an updated/edited
version after ICDF2C proceedings with more references and correction
Compiler analysis for trace-level speculative multithreaded architectures
Trace-level speculative multithreaded processors exploit trace-level speculation by means of two threads working cooperatively. One thread, called the speculative thread, executes instructions ahead of the other by speculating on the result of several traces. The other thread executes speculated traces and verifies the speculation made by the first thread. In this paper, we propose a static program analysis for identifying candidate traces to be speculated. This approach identifies large regions of code whose live-output values may be successfully predicted. We present several heuristics to determine the best opportunities for dynamic speculation, based on compiler analysis and program profiling information. Simulation results show that the proposed trace recognition techniques achieve on average a speed-up close to 38% for a collection of SPEC2000 benchmarks.Peer ReviewedPostprint (published version
- …