The next PGR seminar is taking place this Friday 21st March at 2PM in JC 1.33a
Below are the Titles and Abstracts for Constantine and Yigit’s talks – Please do come along if you are able.
Constantine Theocharis
Title: Efficient Programs with Dependent Types
Abstract:
Dependent types allow us to program using the full power of set theory at our disposal. We can encode conditions of arbitrary complexity, and then show that these conditions are met by our programs, statically. While this paradigm is very effective for verifying systems, often their real-world implementations are done in languages without these verification capabilities, because they produce more efficient programs. In this talk, I will explore some of the main sources of inefficiency in (functional) languages with dependent types, and some work that aims to mitigate these, so that verification and implementation can happen in the same language. A common pattern in these languages is to have ‘refinements’ of data which carry along with them proofs of the properties we care about. The first piece of work is about how to make these refinements true zero-cost abstractions. Another source of inefficiency is that these languages must heap allocate almost everything since the sizes of types cannot always be known at compile time. The second piece of work is about how to keep track of type sizes as part of the type system, so that all heap allocations are explicit and unnecessary for the most part.
Yigit Yazicilar
Title: Automated Nogood-Filtered Fine-Grained Streamlining
Abstract:
We present an automated method to enhance constraint models through fine-grained streamlining, leveraging nogood information from learning solvers. This approach reformulates the streamlining process by filtering streamliners based on nogood data from the SAT solver CaDiCaL. Our method generates candidate streamliners from high-level Essence specifications, constructs a streamliner portfolio using Monte Carlo Tree Search, and applies these to unseen problem instances. The key innovation lies in utilising learnt clauses to guide streamliner filtering, effectively reformulating the original model to focus on areas of high search activity. We demonstrate our approach on the Covering Array Problem, achieving significant speedup compared to the state-of-the-art coarse-grained method. This work not only enhances solver efficiency but also provides new insights into automated model reformulation, with potential applications across a wide range of constraint satisfaction problems.