CIRCA Seminar 13th November 1pm

hdw2
Tuesday 11 November 2025

There will be a CIRCA lunchtime seminar on Thursday 13th November at 1pm in Maths Lecture Theatre C.

Chris Brown and Rosemary Bailey will speak.

Chris’ Title: East of Eden: Parallel Functional Programming in Idris

Chris’ Abstract: There have been various different attempts to introduce parallel programming models into functional languages, from very implicit approaches, such as the par and pseq model exhibited by GpH, to semi-explicit process models exhibited by the Haskell implementation, Eden, to very explicit actor-based models that use message passing and explicit process creation, such as Erlang. Implicit vs. explicit parallel models introduce important trade-offs to programmers. Explicit models give more control over the parallelism, but require much more low-level management (and often more expertise from the programmer); implicit approaches give less control over the parallelism (and therefore often require less parallel expertise) but offer more reasoning opportunities. However, to date, there has been little exploration to introduce implicit parallelism approaches to an emerging class of dependently typed programming languages.

Dependently-typed programming languages, such as Idris, Lean, Agda and Coq, allow programmers to encode specifications of their programs as specialised types that depend on values. This value dependence means that the types express logical relations and the programs provide proof obligations that the relations hold. With the exception of pi-par, an extension to Idris with explicit process creation and message passing, there are little to no parallel dependently-typed languages that offer implicit parallel models to the programmer.

In this talk I introduce a semi-implicit programming model, similar to Eden for Haskell, by extending Idris with a dependently-typed process abstraction. This semi-implicit process model means that processes can be explicitly created, but low-level details, such as communication, synchronisation and scheduling is abstracted away by the runtime. Furthermore, our process model is enhanced by making use of dependent-types to allow some of the parallel behaviour to be exposed to the programmer at the type level. In turn, this enables further typing abstractions that describe common parallel patterns and skeletons.

Rosemary’s Title: Finding good designs for experiments

Rosemary’s Abstract: I have N experimental units available for an experiment to compare v treatments. The experimental units may be all alike, or they make be partitioned into blocks, or there may be rows and columns.

The design is the function allocating treatments to units.

It is optimal if it minimizes the average value of the variance of the estimator of the difference between two treatments.

How do I find an optimal design for my given situation?

1. Find a design that satisfies the conditions of a theorem guaranteeing optimality?

2. Use folklore that suggests that being close to certain specified conditions implies being close to optimal?

3. Use patterns, to find a design that is regular in the sense of looking the same from the viewpoint of each treatment?

4. Use symmetries, to find a design with a large group of automorphisms?

5. Computer search?

Details on the University Events as follows:- Centre for Interdisciplinary Research in Computational Algebra (CIRCA) seminar | Events