ICFP/SPLASH 2025
Sun 12 - Sat 18 October 2025 Singapore

This program is tentative and subject to change.

Sun 12 Oct 2025 11:30 - 12:00 at Seminar Room 3 - Session 1

I propose unifying functional and logic/relational programming by treating predicates/relations as functions equipped with their support – the set of inputs whose output is non-false. For instance, the logic programming language Datalog, in which all relations are finite, is a language of finitely supported boolean functions. Finite support allows representing the function, not as code, but as data – as a table of input-output pairs – making bulk operations more efficient. If we combine finitely supported functions, represented as data, and higher order functions, represented as code, in the same language, we get what I call finite functional programming. To this end, I demonstrate a simple type system to check finite support by treating variable grounding as a graded effect.

A 30-minute talk slot is fine. I expect to discuss the work-in-progress type system, some issues with it, possible connections with related work that I don’t fully understand and so maybe someone can help me to flesh out, and maybe potential implementation strategies or semantics if there’s time.

This program is tentative and subject to change.

Sun 12 Oct

Displayed time zone: Perth change