<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://typesig.pl/feed.xml" rel="self" type="application/atom+xml" /><link href="https://typesig.pl/" rel="alternate" type="text/html" /><updated>2026-07-25T03:24:17+00:00</updated><id>https://typesig.pl/feed.xml</id><title type="html">TypeSig</title><subtitle>Official website for TypeSig, a student-run special interest group for semantics, programming language theory, type theory, compilers, concurrency, and any other field of theoretical CS!</subtitle><author><name>TypeSig Committee</name></author><entry><title type="html">TRIPLE 2026 - Student Conference</title><link href="https://typesig.pl/triple2026/" rel="alternate" type="text/html" title="TRIPLE 2026 - Student Conference" /><published>2026-02-09T16:00:00+00:00</published><updated>2026-02-09T16:00:00+00:00</updated><id>https://typesig.pl/triple2026</id><content type="html" xml:base="https://typesig.pl/triple2026/"><![CDATA[<h2 id="the-conference-is-over">The conference is over!</h2>

<p>Thank you to the speakers who delivered such interesting talks, all of the organisers that helped keep the conference running smoothly, and every one of you for coming!</p>

<p>Just like last year, we’ve uploaded talk resources and kept them below.</p>

<p>We hope to see you again next year!</p>

<h2 id="description">Description</h2>

<p>TRIPLE (Theory, Related Interdisciplinary &amp; Programming Languages at Edinburgh) is our annual TypeSig conference: one day full of research talks designed for students! 
The talks will be given by speakers from renowned institutions in the UK and will be organised in two parallel tracks. You can choose to attend talks from both tracks:</p>

<ul>
  <li><strong>Track A</strong>: Programming Languages, Type Systems, Theorem Proving and more.</li>
  <li><strong>Track B</strong>: Compilers, Formal Verification, AI, and more.</li>
</ul>

<p>Researchers working on the cutting-edge will introduce advancements in their fields to you!
The conference is suitable for both undergraduates and early-state researchers. 
What’s more, you get to meet and talk to the academics after their talks and find peers that are interested in interesting things!</p>

<h2 id="details">Details</h2>
<p><strong>Date</strong>: Sunday, 29th of March, 2026 <br />
<strong>Location</strong>: James Clerk Maxwell Building (JCMB), University of Edinburgh <br />
<strong>Time</strong>: 9:50 AM - 5:30 PM</p>

<h2 id="tickets">Tickets</h2>
<p>Purchase <a href="https://www.eventbrite.com/e/triple-tickets-1981522506157?aff=oddtdtcreator&amp;keep_tld=true">here</a>!</p>

<h2 id="schedule">Schedule</h2>

<style>

th, td {
  padding: 10px;
  border: 1px solid lightgrey;
    }

button.speaker {
  cursor: pointer;
  color: #008ee0;
  border: none;
  outline: none;
  background: none;
  text-align: left;
  text-decoration: underline;
}

#back-button {
  border: 1px solid gray;
  border-radius: 2px;
  background: none;
  outline: none;
  cursor: pointer;
  font-family: Arial;
  font-size: 12px;
  padding: 2px 10px;
}

#abstract, #paper-container {
  font-size: 16px;
}

#popup {
  display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
  overflow: auto;
  max-height: 80%;
  background: white; padding: 20px; border: 1px solid black; box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

@media (max-width: 600px) {
  #popup {
    top: 20%;
    left: 10%;
    transform: translateX(-5%) translateY(-5%);
  }
  
  #abstract, #speaker-name-container, #paper-container {
    font-size: 14px; /* Smaller text on mobile */
  }
}
</style>

<script>
const A1 = {
  speaker: "Prof. Simon Gay, University of Glasgow",
  title: "Trains, Pictures and Types",
  abstract: "We present a data type for representing model railway layouts, such that a dependent type system can check that a layout joins up smoothly without self-intersection. We implement this data type in Idris to provide an embedded domain-specific language (EDSL) for railway layouts. The data type supports the production of graphical diagrams of railway layouts, as well as computation of properties such as an inventory of parts. Avoiding self-intersection requires the use of proof terms, illustrating a key step in learning about dependently typed programming. Layouts can be defined in terms of parameters such as size; this leads to a typical situation in which manual construction of proof terms is required in order to complete typechecking, illustrating another feature of dependently typed programming. Overall, the railway layout scenario provides a novel and visually appealing introduction to some of the key principles of dependently typed programming.",
};

const A2 = {
  speaker: "Dr. Ohad Kammar, University of Edinburgh",
  title: "Algebra and Normalisation",
  abstract: "Normalisation concerns specifying a representative in each equivalence class. It manifests whenever we want to guarantee robustness up-to the equivalence relation. For example, a normalising optimising compiler will produce the same object code when you refactor your source code using the equivalence it normalises by. The hallmark of modern algebra is representation theorems: characterising a structure such as the set of polynomials as the universal structure among a class of structures of interest.\n\nIn this talk, I will relate normalisation to modern algebra. I will start with algebraic simplification through familiar algebraic structures. I will then turn to normalisation of program fragments through the more advanced second-order algebraic structures."
};

const A3 = {
speaker: "Dr. Fredrik Nordvall Forsberg, University of Strathclyde",
title: "Inductive types in the setoid model of type theory",
abstract: 'Hofmann (1995) and Altenkirch (1999) built models of type theory based on setoids, i.e., types together with an equivalence relation which should be thought of as the notion of equality for the type. These models are nice, in that they validate and justify extensional concepts such as quotient types and function extensionality. They are also natural candidates for justifying new concepts from homotopy type theory such as quotient inductive types. As a warmup, in this talk I will explain how inductive types and inductive families of types can be interpreted in the setoid model. Along the way, I will explain what I mean by "inductive type", "setoid", and "model of type theory". This is based on joint work with Liang-Ting Chen and Shu-Hung You.'
};

const A4 = {
	speaker: "Dr. Steven Ramsay, University of Bristol",
	title: "Types for (In)correctness",
	abstract: 'It is often said that a key benefit of type systems for programming languages is the detection of runtime errors. However, in a traditional type system, the means by which this benefit is realised is somewhat indirect, because the type system is designed only to certify the absence of such errors. When a program is not well typed, it may be indeed that it will crash at runtime, but it could just as easily be safe and that the program simply lies beyond reasoning power of the type system - a false positive.   It’s up to the programmer to invest their time to determine which it is. To avoid false positives, we need a system that can reason about programs that go wrong.  However, such a capacity is incompatible with the prevailing approach to type systems for programming languages.  In this talk I will present a new approach, called two-sided type systems, that remedies this deficiency.'
};

const A5 = {
  	speaker: "Dr. Vikraman Choudhury & Rin Liu, University of Strathclyde",
  	title: "Programming with Cubes",
  	abstract: "Agda is both a programming language and an interactive proof assistant using dependent type theory. In vanilla Agda, we can talk about terms of types, or points. Cubical Agda is a fun extension that allows us to talk about paths between points, or lines; paths between paths, or squares; and paths between higher paths, or higher cubes! We will see how to use these extensions to build interesting shapes and define funny datatypes, write programs using them, and prove properties about them."
};

const A6 = {
	speaker: "Dr. Jan de Muijnck-Hughes, University of Strathclyde",
	title: "Avoiding the Billion Pound Mistake of Dependently Typed Programming by Being Positively Negative about Decisions",
	abstract: "Within main mainstream programming languages, the Maybe datatype (also known as Optional) avoids the billion dollar mistake by enabling negative results to be part and parcel of our execution flows. Even more so, the Either datatype builds upon Maybe and associates an explanation and meaning to why a program fails.\n\nDependently programming languages provide expressive environments in which we can reason about, and run, our programs. A key design pattern in such languages are Decision procedures that support reasoning about values by using dependent datatypes as predicates/propositions to capture positive properties about values. On success, decision procedures return predicate instances and a proof of void when decisions fail. When we execute our decisions, at runtime, we know exactly why a decision is correct. We, however, cannot learn anything by construction about why a decision fails. If we are theorem proving in dependently typed languages, runtime failure reporting is not important. If we are programming in dependently typed languages, runtime failure reporting is important.\n\nIn this talk I want to talk about my side-quest exploring how to be positively negative when our decision procedures fail. Specifically, I will explain how Constructive Negation supports verifiable reporting of failure, and detail my experience creating a programming library of decision procedures that say why they fail. Finally, I will examine how being so positive in one's negativity can reshape existing approaches to dependently-typed programming and report a decision procedure's negativity more positively."
};
	
const B1 = {
  speaker: "Dr. Renate Schmidt, University of Manchester",
  title: "Symbolic AI for Medical Knowledge Representation & Reasoning: Just The Right Amount -- SNOMED CT Content Extraction",
  abstract: "SNOMED CT is an established technology of Symbolic AI in health, where it provides the basis for medical terminological services used to support consistent data capture, easy data sharing and convenient analysis of data. SNOMED CT is a large knowledge base (ontology) of definitions of medical codes used by clinicians in health care sectors world-wide. After a brief introduction of medical ontologies, the underlying symbolic technologies and their benefits, this talk will review subontologies, a bespoke technique for producing concise extracts of SNOMED CT, their key features, use cases, successful results and their development in a successful collaboration with industry."
};

const B2 = {
  speaker: "Constantine Theocharis, University of St Andrews",
  title: "Phase your Compilation",
  abstract: "A program carries both logical content (the mathematical meaning of a computation) and operational detail (the low-level choices that make it run efficiently). In type theory, we internalise various kinds of logical structure into type formers that reflect their 'essence'. However, the operational layer is typically left outside the type system, managed by compilers, which perform automatic black-box optimisations and often treat primitives specially. Currently, if we want more control over low-level details, we must sacrifice high level abstractions (and the guarantees they bring).\n\nPhase distinctions offer a way to internalise a program's different layers of information in the type system. In this talk, I will briefly revisit the history of this concept, and then introduce a new application: a type former that enables arbitrary semantics-preserving optimisation, giving us safe control over the exact low-level code output of programs without surrendering any logical content.\n\nIn a dependent type theory with this type former, I will demonstrate how we can write an intrinsically well-scoped NbE (normalisation by evaluation) implementation that nevertheless utilises the usual low-level optimisation tricks that actually allow it to achieve excellent runtime performance."
};

const B3 = {
  speaker: "Dr. Konstantin Korovin, University of Manchester",
  title: "AI meets Formal: Verification and optimization of systems modelled using machine learning",
  abstract: "Machine learning models can be used to represent behaviour of complex systems.\n\nIn many applications it is important to analyse such models by formal means to ensure reliable and optimal behaviour of the system. In this talk I will present the SMLP framework for verification and optimisation of analogue systems modelled using machine learning. SMLP uses symbolic reasoning for ML model exploration and optimisation under verification and stability constraints. The approach combines SMT solvers for verification with algorithms for optimisation and statistical methods for model exploration. SMLP has been applied in industrial setting at Intel for analysis and optimisation of hardware designs at the analogue level."
};

const B4 = {
	speaker: "Prof. Rob van Glabbeek, University of Edinburgh",
	title: "The relative powers of shared-variable and message-passing communication: Possibility and impossibility of speed-independent mutual exclusion",
	abstract: 'The mutual exclusion problem is one of the classical fundaments of distributed computing. It was posed by Dijkstra in 1965, and many celebrated solutions have been published since. It asks if one can program parallel computers in such a way that at any time at most one of them is in a so-called "critical section" of their code. In these critical sections the computers can do things -- like updating a database -- that could go wrong if multiple parallel computers did it at the same time.\n\nA mutual exclusion protocol should be "deadlock-free", meaning that if one of the computers wants to go in the critical section, then one of them will succeed in doing so. Ideally, it also is "starvation-free", meaning that if one of the computers wants to go in the critical section, then it will succeed in doing so. Finally, we want it to be "speed-independent", meaning that it remains working correctly regardless of the relative speeds of the computers.\n\nIn shared variable concurrency, communication happens by reading from and writing to shared registers. These registers can be "blocking", meaning that you cannot start a write when a read is in progress, or "non-blocking", implying that reads and writes may overlap in time.\n\nIn the past I have shown that although starvation-free and speed-independent mutual exclusion can be realised with non-blocking registers (as is well-known) it cannot be done with blocking registers. Here I strengthen this result, by showing that even deadlock-free speed-independent mutual exclusion cannot be realised with blocking registers. However, it can be done by means of message passing, which is an alternative to shared-variable concurrency.\n\nThis leads to the question whether starvation-free speed-independent mutual exclusion can be realised through message passing. To answer this message I make a classification of 85 types of message passing. In three, rather unusual, message passing paradigms, that are not available to the average programmer, it can be done; but for all other forms of message passing it turns out to be impossible.\n\nThis is new work, presented for the first time at TRIPLE.'
};

const B5 = {
	"speaker": "André Videla, Glasgow Lab for AI Verification",
	"title": "Ornaments as a dependently typed programming pattern",
	"abstract": "The programming practice in a commercial setting involves the use of many programming patterns, but programming with dependent types comes with patterns and challenges of its own that are rarely put in the spotlight. In this presentation, we illustrate how ornaments emerge as a programming pattern unique to dependently typed programming by building an increasingly sophisticated compiler."
};

const B6 = {
	"speaker": "Anton Lorenzen, University of Edinburgh",
	"title": "Three Functional Programs for Appending Lists: In-Place, Stackless, Lazy",
	"abstract": 'Purely functional data structures are far more elegant than their imperative counterparts: algorithms can be specified using pattern matching, invariants can be encoded using types, and immutability makes it easy to prove properties by induction. But they are also slower. Functional algorithms often require asymptotically more heap allocation and stack space, which is why most textbooks continue to use imperative pseudocode.\n\nIn this talk, I will present three recent optimisation strategies for purely functional languages that can close this performance gap, using List.append as a running example. In-place reuse reduces heap allocations by reusing memory that is no longer needed. Constructor contexts reduce stack usage by turning tail recursion modulo constructor into loops. Lazy constructors make it possible to defunctionalise lazy computations and perform them with almost no additional allocation overhead. Together, these optimisations can make many functional algorithms as fast as the best imperative implementations.\n\nAll three optimisations have been implemented in the Koka language and are described in more detail in the papers: https://dl.acm.org/doi/10.1145/3607840, https://dl.acm.org/doi/10.1145/3656398, https://dl.acm.org/doi/10.1145/3747530'
};

</script>

<table>
  <thead>
    <tr>
      <th>Time</th>
      <th>Track A</th>
      <th>Track B</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><b>09:00</b></td>
      <td>Gates Open</td>
      <td>Gates Open</td>
    </tr>
    <tr>
      <td><b>09:50</b></td>
      <td>Opening Remarks</td>
      <td>Opening Remarks</td>
    </tr>
    <tr>
      <td><b>10:00</b></td>
      <td><button class="speaker" onclick="openPopup(A1)">Prof. Simon Gay<br />University of Glasgow</button><br /><a href="/assets/pdfs/triple2026-slides/simon-slides.pdf">slides</a></td>
      <td><button class="speaker" onclick="openPopup(B1)">Dr. Renate Schmidt<br />University of Manchester</button><br /><a href="/assets/pdfs/triple2026-slides/renate-slides.pdf">slides</a></td>
    </tr>
    <tr>
      <td><b>11:00</b></td>
      <td><button class="speaker" onclick="openPopup(A2)">Dr. Ohad Kammar<br />University of Edinburgh</button><br /><a href="/assets/pdfs/triple2026-slides/ohad-slides.pdf">slides</a></td>
      <td><button class="speaker" onclick="openPopup(B2)">Constantine Theocharis<br />University of St Andrews</button><br /><a href="/assets/pdfs/triple2026-slides/constantine-slides.pdf">slides</a></td>
    </tr>
    <tr>
      <td><b>12:00</b></td>
      <td>Lunch</td>
      <td>Lunch</td>
    </tr>
    <tr>
      <td><b>13:00</b></td>
      <td><button class="speaker" onclick="openPopup(A3)">Dr. Fredrik Nordvall Forsberg<br />University of Strathclyde</button><br /><a href="/assets/pdfs/triple2026-slides/fred-slides.pdf">slides</a></td>
      <td><button class="speaker" onclick="openPopup(B3)">Dr. Konstantin Korovin<br />University of Manchester</button><br /><a href="/assets/pdfs/triple2026-slides/konstantin-slides.pdf">slides</a></td>
    </tr>
    <tr>
      <td><b>14:00</b></td>
      <td><button class="speaker" onclick="openPopup(A4)">Dr. Steven Ramsay<br />University of Bristol</button><br /><a href="/assets/pdfs/triple2026-slides/steven-slides.pdf">slides</a></td>
      <td><button class="speaker" onclick="openPopup(B4)">Prof. Rob van Glabbeek<br />University of Edinburgh</button><br /><a href="/assets/pdfs/triple2026-slides/rob-slides.pdf">slides</a></td>
    </tr>
    <tr>
      <td><b>15:00</b></td>
      <td>Break</td>
      <td>Break</td>
    </tr>
    <tr>
      <td><b>15:30</b></td>
      <td><button class="speaker" onclick="openPopup(A5)">Dr. Vikraman Choudhury &amp; Rin Liu<br />University of Strathclyde</button><br /><a href="https://desyncthethird.github.io/cubes/">agda file</a></td>
      <td><button class="speaker" onclick="openPopup(B5)">André Videla<br />Glasgow Lab for AI Verification</button><br /><a href="#">slides</a></td>
    </tr>
    <tr>
      <td><b>16:30</b></td>
      <td><button class="speaker" onclick="openPopup(A6)">Dr. Jan de Muijnck-Hughes<br />University of Strathclyde</button><br /><a href="#">slides</a></td>
      <td><button class="speaker" onclick="openPopup(B6)">Anton Lorenzen<br />University of Edinburgh</button><br /><a href="#">slides</a></td>
    </tr>
  </tbody>
</table>

<div id="popup-overlay" style="display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; 
    background: rgba(0, 0, 0, 0.5);"></div>

<div id="popup">
    <p id="speaker-name-container"><b>Speaker:</b> <span id="speaker-name"></span></p>
    <h4 id="title"></h4>
    <p id="abstract"></p>
    <button id="back-button" onclick="closePopup()">Back</button>
</div>

<script defer="">
    function openPopup(data) {
    	document.getElementById("speaker-name").innerText = data.speaker;
	document.getElementById("title").innerText = data.title;
	document.getElementById("abstract").innerText = data.abstract;
	
	document.getElementById("popup-overlay").style.display = "block";
	document.getElementById("popup").style.display = "block";
    }

    function closePopup() {
    	document.getElementById("popup-overlay").style.display = "none";
        document.getElementById("popup").style.display = "none";
    }

    document.getElementById("popup-overlay").addEventListener("click", closePopup);
</script>

<h2 id="expected-audience">Expected Audience</h2>
<p>TRIPLE is the culmination of sustained student interest in PL research over the past few years.
We aim to expose more undergraduate and graduate students to PL through a day of academic talks delivered by researchers in the field.
The intended audience is primarily undergraduate students with some prior exposure to PL through functional programming, although anyone is welcome to attend.</p>

<p>Based on the successful precedent of TUPLES 2025 (our last year’s conference), as well as TypeSig’s previous events this year, we expect TRIPLE 2026 to attract significant attention from the student body in and outwith the the School of Informatics at the University of Edinburgh.</p>

<h2 id="photos">Photos</h2>

<p><img src="/assets/images/triple2026/photo-1.jpeg" alt="pic1" width="100%" /></p>

<p><img src="/assets/images/triple2026/photo-2.jpeg" alt="pic2" width="100%" /></p>

<p><img src="/assets/images/triple2026/photo-3.jpeg" alt="pic3" width="100%" /></p>

<p><img src="/assets/images/triple2026/photo-4.jpeg" alt="pic4" width="100%" /></p>

<h2 id="sponsors">Sponsors</h2>

<p><img src="/assets/images/sponsors/compsoc.png" alt="pic1" width="40%" /></p>

<p><img src="/assets/images/sponsors/student-experience-grants.png" alt="pic2" width="50%" /></p>]]></content><author><name>TypeSig Committee</name></author><category term="events" /><category term="tuple" /><category term="lean" /><category term="agda" /><category term="categories" /><category term="game-theory" /><category term="complexity" /><summary type="html"><![CDATA[The conference is over!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://typesig.pl/assets%5Cimages%5Ctriple2026%5Ctriple-header-post.png" /><media:content medium="image" url="https://typesig.pl/assets%5Cimages%5Ctriple2026%5Ctriple-header-post.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">TUPLES 2025 - Student Conference</title><link href="https://typesig.pl/tuples2025/" rel="alternate" type="text/html" title="TUPLES 2025 - Student Conference" /><published>2025-02-01T17:24:00+00:00</published><updated>2025-02-01T17:24:00+00:00</updated><id>https://typesig.pl/tuples2025</id><content type="html" xml:base="https://typesig.pl/tuples2025/"><![CDATA[<h2 id="the-conference-is-over">The conference is over!</h2>

<p>Thank you to all the speakers, the attendees and the organisers that made the conference happen!</p>

<p>We have uploaded the slides of the talks in the schedule section. The recordings will appear in the same place shortly. Also, the photos from the event will appear at the bottom of the page.</p>

<h2 id="description">Description</h2>

<p>TUPLES (Theory Union Programming Languages at Edinburgh Successor) is our annual TypeSig conference:
one day full of research talks designed for students! The talks will be given by 12 speakers from renowned institutions
in the UK and will be organised in two parallel tracks. You can choose to attend talks from both tracks:</p>

<ul>
  <li><strong>Track A</strong>: algorithmic game theory, complexity theory, cryptography and more.</li>
  <li><strong>Track B</strong>: principles of programming languages, type theory, formal verification, compilers, and more.</li>
</ul>

<p>Academics working on the cutting-edge will introduce advancements in their fields to you!
Both undergraduates and early stage researchers should find it useful.
What’s more, you get to meet and talk to academics after their talks and find peers that are interested in interesting things!</p>

<h2 id="details">Details</h2>
<p><strong>Date</strong>: Sunday, 23rd of February 2025 <br />
<strong>Location</strong>: Nucleus Building, University of Edinburgh <br />
<strong>Time</strong>: 10:00 AM - 5:30 PM</p>

<h2 id="schedule">Schedule</h2>

<style>
th, td {
  padding: 15px;
  border: 1px solid lightgrey;
    }

button.speaker {
  cursor: pointer;
  color: #008ee0;
  border: none;
  outline: none;
  background: none;
  text-align: left;
  text-decoration: underline;
}

#back-button {
  border: 1px solid gray;
  border-radius: 2px;
  background: none;
  outline: none;
  cursor: pointer;
  font-family: Arial;
  font-size: 12px;
  padding: 2px 10px;
}

#abstract, #paper-container {
  font-size: 16px;
}

#popup {
  display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
  overflow: auto;
  max-height: 80%;
  background: white; padding: 20px; border: 1px solid black; box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

@media (max-width: 600px) {
  #popup {
    top: 20%;
    left: 10%;
    transform: translateX(-5%) translateY(-5%);
  }
  
  #abstract, #speaker-name-container, #paper-container {
    font-size: 14px; /* Smaller text on mobile */
  }
}
</style>

<script>
const A1 = {
  speaker: "Prof. Christian Ikenmeyer (Warwick)",
  title: "Hazard-free Circuit Complexity",
  abstract: "We discuss the concept of Boolean circuits and their hazards. Hazards can always be removed, but this requires a large increase in the circuit size. When the hazards are sufficiently tame, then removing them is possible with only a polynomially bounded size blow-up. \n\n This is joint work with Komarath-Lenzen-Lysikov-Mokhov-Sreenivasaiah. The topic has some connections to the recent work of Deligkas-Fearnley-Hollender-Melissourgos.",
  paper: "https://dl.acm.org/doi/10.1145/3320123"
};

const A2 = {
  speaker: "Prof. Rahul Santhanam (Oxford)",
  title: "The Complexity of Compression",
  abstract: "Data compression is central to computer science. How much can a given dataset be compressed? How easy is it to decide whether a dataset is compressible or not? These are natural questions, but it is by no means obvious how to make them rigorous.\n\n The theory of Kolmogorov complexity provides a rigorous framework for this and other fundamental questions in computer science. I will provide a gentle introduction to Kolmogorov complexity and its resource-bounded variants, and discuss applications to complexity theory, learning theory and cryptography."
};

const A3 = {
  speaker: "Prof. Iddo Tzameret (Imperial)",
  title: "Proof Theory and the Fundamental Hardness Questions",
  abstract: "This talk explores the question of what proof theory can tell us about the fundamental hardness questions in computational complexity. We start with a brief description of the main concepts behind bounded arithmetic, which is a family of weak formal theories of arithmetic. We provide a collage of results and developments showing how bounded arithmetic and propositional proof complexity form a cohesive framework in which both concrete combinatorial questions about complexity and meta-mathematical questions about the provability of complexity theory statements are studied."
};

const A4 = {
  speaker: "Dr. Aris Filos-Ratsikas (Edinburgh)",
  title: "A Computer Science Perspective on Auction Theory",
  abstract: "Auctions are fundamental mechanisms for buying and selling goods, with a myriad of applications in practice, from buying a house in Scotland, to selling advertising space on online platforms. For example, ad auctions account for nearly 60% of Google's yearly revenue. The theory of auctions dates back to classic works in economics [Vickrey 1961], and has produced a plethora of important results, including those leading to multiple Nobel Prize awards over the years. At the heart of this research lies the field of game theory, which aims to understand the interactions of self-interested entities (e.g., the bidders of the auction) in such competitive environments. Simply put, game theory in auctions studies questions of the kind 'How are bidders going to bid?' and 'Where will the system end up in the presence of strategic bidding?'\n\n The involvement of computer science in the theory of auctions has introduced some novel questions related to computation or approximation. In particular, can we compute (approximate) equilibria of the auction in polynomial time, or are there computational hardness results that prevent this from happening? How good are these equilibria in terms of objectives like welfare or revenue? \n\n In this talk, I will introduce the basic results in classic auction theory, as well as some of the state-of-the-art results from the literature of computer science, including some recent results on equilibrium computation in the fundamental First-Price auction."
};

const A5 = {
  speaker: "Dr. Alexandros Hollender (Oxford)",
  title: "How to Cut a Cake Fairly",
  abstract: "Cake-cutting is a fundamental problem in fair division, where the goal is to divide and allocate a resource (e.g., land, time, or an actual cake!) to a certain number of participants. The key point is that the participants can have different opinions about which parts of the cake are more or less valuable, and we want the partition to be fair for all of them. In this talk, we will discuss some algorithms for finding allocations that are envy-free: no one would prefer to swap their piece for someone else's piece."
};

const A6 = {
  speaker: "Yu Shen (Edinburgh)",
  title: "Ordering Transactions with Bounded Unfairness: Definitions, Complexity and Constructions",
  abstract: "An important consideration in the context of distributed ledger protocols is fairness in terms of transaction ordering. Recent work [Crypto 2020] revealed a connection of (receiver) order fairness to social choice theory and related impossibility results arising from the Condorcet paradox. As a result of the impossibility, various relaxations of order fairness were proposed in prior works. Given that distributed ledger protocols, especially those processing smart contracts, must serialize the input transactions, a natural objective is to minimize the distance (in terms of number of transactions) between any pair of unfairly ordered transactions in the output ledger — a concept we call bounded unfairness. In state machine replication (SMR) parlance this asks for minimizing the number of unfair state updates occurring before the processing of any request. This unfairness minimization objective gives rise to a natural class of parametric order fairness definitions that has not been studied before. As we observe, previous realizable relaxations of order fairness do not yield good unfairness bounds.\n\n Achieving optimal order fairness in the sense of bounded unfairness turns out to be connected to the graph theoretic properties of the underlying transaction dependency graph and specifically the bandwidth metric of strongly connected components in this graph. This gives rise to a specific instance of the definition that we call “directed bandwidth order-fairness” which we show that it captures the best possible that any ledger protocol can achieve in terms of bounding unfairness. We prove ordering transactions in this fashion is NP-hard and non-approximable for any constant ratio. Towards realizing the property, we put forth a new distributed ledger protocol called Taxis that achieves directed bandwidth order-fairness. We present two variations, one that matches the property perfectly but (necessarily) lacks in performance and liveness, and another that achieves liveness and better complexity while offering a slightly relaxed version of the property. Finally, we comment on applications of our work to social choice, a direction which we believe to be of independent interest.\n\n Joint work with Aggelos Kiayias (U. of Edinburgh and IOG) and Nikos Leonardos (NTUA).",
  paper: "https://doi.org/10.1007/978-3-031-58734-4_2"
};

const B1 = {
  speaker: "Dr. Nachi Valliappan (Edinburgh)",
  title: "Modal (propositions as types)",
  abstract: '"Propositions as types" is a slogan that refers to the one-to-one correspondence between propositions in formal logic and types in programming language theory. The discovery of this correspondence in the twentieth century opened the gates for cross-disciplinary exchange of ideas and has since had an enormous impact on the mutual development of formal verification tools and programming languages. In recent times, however, programming language research has seen a rise in peculiar type systems whose status is yet to be settled from the perspective of logic. These appear, at the surface level, an awful lot like modalities in modal logic, but much remains unclear on the matter. This talk is about an alternative characterisation of propositions as types, which appears to hold the key to this mystery.'
};

const B2 = {
  speaker: "Orpheas van Rooij (Edinburgh)",
  title: "Substructural Type and Effect System",
  abstract: "One approach towards more robust programming languages that allow for safer usage of resources is through substructural type systems that control how often variables can be used from the context. For instance, in languages with deallocatable memory (e.g. that supports `malloc` and `free`), a substructural type system can rule out security-critical memory bugs such as use-after-free, double-free, and even memory leaks. On the expressivity side of things, the research community is increasingly spending more attention towards `algebraic effects and handlers`: a powerful programming language construct that can express complex programming abstractions such as non-determinism and cooperative concurrency coupled with an effect system that can accurately track the effects that are performed. It turns out that naively combining a substructural type system with an effect system in a single language leads to an unsound system where the aforementioned memory related bugs are not ruled out.\n\n To address this problem, I will show you how to properly define a substructural type and effect system and thus recover the desired memory safety guarantees. To prove that the type system does as it sets out to do, I will give a quick overview of semantic typing -- an approach where we model types and judgements semantically via a logical relation in the separation logic of Iris\\Rocq.",
  paper: "https://dl.acm.org/doi/10.1145/3704841"
};

const B3 = {
  speaker: "Dr. Guillaume Allais (Strathclyde)",
  title: "Scoped and Typed Staging by Evaluation",
  abstract: "Using a dependently typed host language, we give a well scoped-and-typed by construction presentation of a minimal two level simply typed calculus with a static and a dynamic stage. The staging function partially evaluating the parts of a term that are static is obtained by a model construction inspired by normalisation by evaluation.\n\n We then go on to demonstrate how this minimal language can be extended to provide additional metaprogramming capabilities, and to define a higher order functional language evaluating to digital circuit descriptions.",
  paper: "https://dl.acm.org/doi/10.1145/3635800.3636964"
};

const B4 = {
  speaker: "Dr. Edwin Brady (St. Andrews)",
  title: "Dependently Typed Programming with Idris",
  abstract: "Idris is a functional programming language with first-class types. In this talk, I will introduce Idris and cover recent developments and future plans. In particular, I will describe how the quantities in the type system give a new level of expressivity, and show how these can be used to implement state machines, communicating systems, and verify their properties, interactively."
};

const B5 = {
  speaker: "Prof. Thorsten Altenkirch (Nottingham)",
  title: "Fancy Types",
  abstract: "Type Theory is a fascinating mix of a programming language with an incredibly powerful type system and an alternative foundation for Mathematics. Take your pick!\n\n In this talk, I’ll use the Agda system to introduce some cool and unusual types. We’ll start with dependent types and quickly move on to something even wilder—higher-dimensional cubes that help us understand equality in a new way. Ever wondered what happens if you reflect the natural numbers in a mirror? You get the conatural numbers! And these cubes come in handy for working with them. If there’s enough time, we’ll also check out some creative ways to define integers and even real numbers."
};

const B6 = {
  speaker: "Dr. Elizabeth Polgreen (Edinburgh)",
  title: "The Pyramid of (Formal) Software Verification",
  abstract: "Over the past few years there has been significant progress in the various fields of software verification resulting in many useful tools and successful deployments, both academic and commercial. The question is, how do you choose the right one for your application? In this talk, I will give a simple classification of verification techniques in terms of a pyramid, and show how we can use this to describe the six main schools of verification technologies, and explain their strengths and weaknesses.",
  paper: "https://link.springer.com/chapter/10.1007/978-3-031-71177-0_24"
};

</script>

<table>
  <thead>
    <tr>
      <th>Time</th>
      <th>Track A</th>
      <th>Track B</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>09:50</strong></td>
      <td>Opening remarks</td>
      <td>Opening remarks</td>
    </tr>
    <tr>
      <td><strong>10:00</strong></td>
      <td><button class="speaker" onclick="openPopup(A1)">Prof. Christian Ikenmeyer (Warwick)</button><br /><a href="#">slides</a></td>
      <td><button class="speaker" onclick="openPopup(B1)">Dr. Nachi Valliappan (Edinburgh)</button><a href="/assets/pdfs/tuples2025-slides/nachi-slides.pdf">slides</a></td>
    </tr>
    <tr>
      <td><strong>11:00</strong></td>
      <td><button class="speaker" onclick="openPopup(A2)">Prof. Rahul Santhanam (Oxford)</button><br /><a href="#">slides</a></td>
      <td><button class="speaker" onclick="openPopup(B2)">Orpheas van Rooij (Edinburgh)</button><a href="/assets/pdfs/tuples2025-slides/orpheas-slides.pdf">slides</a></td>
    </tr>
    <tr>
      <td><strong>12:00</strong></td>
      <td>Lunch</td>
      <td>Lunch</td>
    </tr>
    <tr>
      <td><strong>13:00</strong></td>
      <td><button class="speaker" onclick="openPopup(A3)">Prof. Iddo Tzameret (Imperial)</button><br /><a href="#">slides</a></td>
      <td><button class="speaker" onclick="openPopup(B3)">Dr. Guillaume Allais (Strathclyde)</button><br /><a href="/assets/pdfs/tuples2025-slides/gallais-slides.pdf">slides</a></td>
    </tr>
    <tr>
      <td><strong>14:00</strong></td>
      <td><button class="speaker" onclick="openPopup(A4)">Dr. Aris Filos-Ratsikas (Edinburgh)</button><br /><a href="#">slides</a></td>
      <td><button class="speaker" onclick="openPopup(B4)">Dr. Edwin Brady (St. Andrews)</button></td>
    </tr>
    <tr>
      <td><strong>15:00</strong></td>
      <td>Break</td>
      <td>Break</td>
    </tr>
    <tr>
      <td><strong>15:30</strong></td>
      <td><button class="speaker" onclick="openPopup(A5)">Dr. Alexandros Hollender (Oxford)</button><br /><a href="#">slides</a></td>
      <td><button class="speaker" onclick="openPopup(B5)">Prof. Thorsten Altenkirch (Nottingham)</button><a href="/assets/pdfs/tuples2025-slides/thorsten-slides.pdf">slides</a></td>
    </tr>
    <tr>
      <td><strong>16:30</strong></td>
      <td><button class="speaker" onclick="openPopup(A6)">Yu Shen (Edinburgh)</button><br /><a href="#">slides</a></td>
      <td><button class="speaker" onclick="openPopup(B6)">Dr. Elizabeth Polgreen (Edinburgh)</button><a href="/assets/pdfs/tuples2025-slides/pyramid-slides.pdf">slides</a></td>
    </tr>
    <tr>
      <td><strong>17:30</strong></td>
      <td>Closing remarks</td>
      <td>Closing remarks</td>
    </tr>
  </tbody>
</table>

<div id="popup-overlay" style="display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; 
    background: rgba(0, 0, 0, 0.5);"></div>

<div id="popup">
    <p id="speaker-name-container"><b>Speaker:</b> <span id="speaker-name"></span></p>
    <h4 id="title"></h4>
    <p id="abstract"></p>
    <p id="paper-container"><b>Linked paper:</b> <a id="paper-link" rel="noopener noreferrer" href="" target="_blank"></a></p>
    <button id="back-button" onclick="closePopup()">Back</button>
</div>

<script defer="">
    function openPopup(data) {
    	document.getElementById("speaker-name").innerText = data.speaker;
	document.getElementById("title").innerText = data.title;
	document.getElementById("abstract").innerText = data.abstract;
	if (data.paper) {
	  document.getElementById("paper-link").href = data.paper;
	  document.getElementById("paper-link").innerText = data.paper;
	  document.getElementById("paper-container").style.display = "block";
	}
	else {
	  document.getElementById("paper-link").href = "";
	  document.getElementById("paper-link").innerText = "";
	  document.getElementById("paper-container").style.display = "none";
	}

	document.getElementById("popup-overlay").style.display = "block";
	document.getElementById("popup").style.display = "block";
    }

    function closePopup() {
    	document.getElementById("popup-overlay").style.display = "none";
        document.getElementById("popup").style.display = "none";
    }

    document.getElementById("popup-overlay").addEventListener("click", closePopup);
</script>

<h2 id="expected-audience">Expected Audience</h2>
<p>TUPLES is the culmination of sustained student interest in PL research over the past few years.
We aim to expose more undergraduate and graduate students to PL through a day of academic talks delivered by researchers in the field.
The intended audience is primarily undergraduate students with some prior exposure to PL through functional programming, although anyone is welcome to attend.</p>

<p>Based on the successful precedent of TUPLE 2024 (our last year’s conference) as well as TypeSig’s previous events this year,
we expect TUPLES 2025 to attract significant attention from the student body in and outwith the the School of Informatics at the University of Edinburgh.</p>

<h2 id="photos">Photos</h2>

<p><img src="/assets/images/tuples2025/pic-1.JPG" alt="pic1" width="100%" /></p>

<p><img src="/assets/images/tuples2025/pic-2.JPG" alt="pic2" width="100%" /></p>

<p><img src="/assets/images/tuples2025/pic-3.JPG" alt="pic3" width="100%" /></p>

<p><img src="/assets/images/tuples2025/pic-4.JPG" alt="pic4" width="100%" /></p>

<p><img src="/assets/images/tuples2025/pic-5.JPG" alt="pic5" width="100%" /></p>

<p><img src="/assets/images/tuples2025/pic-6.JPG" alt="pic6" width="100%" /></p>

<p><img src="/assets/images/tuples2025/pic-7.JPG" alt="pic7" width="100%" /></p>

<p><img src="/assets/images/tuples2025/pic-8.JPG" alt="pic8" width="100%" /></p>

<p><img src="/assets/images/tuples2025/pic-9.jpg" alt="pic9" width="100%" /></p>

<p><img src="/assets/images/tuples2025/pic-10.jpg" alt="pic10" width="100%" /></p>

<p><img src="/assets/images/tuples2025/pic-11.jpg" alt="pic11" width="100%" /></p>

<p><img src="/assets/images/tuples2025/pic-12.jpg" alt="pic12" width="100%" /></p>

<p><img src="/assets/images/tuples2025/pic-13.jpg" alt="pic13" width="100%" /></p>

<h2 id="sponsors">Sponsors</h2>
<p><img src="/assets/images/sponsors/janestreet.png" alt="pic1" width="40%" /></p>

<p><img src="/assets/images/sponsors/compsoc.png" alt="pic2" width="40%" /></p>

<p><img src="/assets/images/sponsors/student-experience-grants.png" alt="pic3" width="50%" /></p>]]></content><author><name>TypeSig Committee</name></author><category term="events" /><category term="tuple" /><category term="lean" /><category term="agda" /><category term="categories" /><category term="game-theory" /><category term="complexity" /><summary type="html"><![CDATA[The conference is over!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://typesig.pl/assets/images/tuples2025/tuples-header-post.png" /><media:content medium="image" url="https://typesig.pl/assets/images/tuples2025/tuples-header-post.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Advent of Proof 2024 Edition!</title><link href="https://typesig.pl/2024/12/12/advent-of-proof-2024.html" rel="alternate" type="text/html" title="Advent of Proof 2024 Edition!" /><published>2024-12-12T14:46:00+00:00</published><updated>2024-12-12T14:46:00+00:00</updated><id>https://typesig.pl/2024/12/12/advent-of-proof-2024</id><content type="html" xml:base="https://typesig.pl/2024/12/12/advent-of-proof-2024.html"><![CDATA[<p>TypeSig is pleased to announce that Advent of Proof is returning this year!</p>

<p>We are grateful to the academics who supplied problems for us this year, and will credit them individually at the beginning of each problem when they are published. We also thank Dr Liam O’Connor for supplying the web infrastructure from last year’s version of the event.</p>

<p>Each day from the 12th of December to the 25th, we release a new theorem that you must formalise and prove using either Agda or Lean.
Depending on how fast you solve it (from first opening the question), how many hints you used, and a secret third metric, you will score a glorious place on the leaderboard!
The challenges are aimed at beginners/intermediates, with some basic experience with using Agda/Lean already.</p>

<p>You must have a <a href="https://discord.gg">Discord</a> account to authenticate with the site.
This is used for scoring and leaderboard purposes.
We also have a discussion channel for the competition in <a href="https://discord.gg/dnXzHRkJww">our Discord server</a>, so feel free to join in the discussion over there!</p>

<p>Good luck and have fun!</p>]]></content><author><name>amy</name></author><category term="lean" /><category term="agda" /><category term="events" /><summary type="html"><![CDATA[TypeSig is pleased to announce that Advent of Proof is returning this year!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://typesig.pl/assets/images/post-headers/aop-2024.png" /><media:content medium="image" url="https://typesig.pl/assets/images/post-headers/aop-2024.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">TypeSig Returns!</title><link href="https://typesig.pl/2024/09/25/typesig-returns.html" rel="alternate" type="text/html" title="TypeSig Returns!" /><published>2024-09-25T11:00:00+00:00</published><updated>2024-09-25T11:00:00+00:00</updated><id>https://typesig.pl/2024/09/25/typesig-returns</id><content type="html" xml:base="https://typesig.pl/2024/09/25/typesig-returns.html"><![CDATA[<p>TypeSig is officially one year old!
We’re celebrating with a brand new URL, an updated logo, and some exciting new events!</p>

<p>We’re returning in full swing this academic year with some new faces, as well as some familiar ones!
The Lean 4 workshops, co-hosted by us and MathsSoc, are continuing this year on Mondays from 5pm-7pm. Alex Brodbelt is kindly giving a talk at the beginning of each workshop, so definitely come along to develop your Lean skills!</p>

<p>We’re also proud to announce a brand new, all-TypeSig workshop on making your own programming language interpreter! This is fully self paced, and the materials can be found on <a href="https://typesig.pl/resources">our new resources page</a>. We’re running workshop sessions every Friday from 4pm-6pm, where you can get further advice and assistance if you need it.</p>

<p>Of course, our pub socials on Sundays at the Dagda bar continue as per usual. See you there each week from 7pm!</p>

<p>We have some more exciting events in the works, so keep tuned to the announcements channel on <a href="https://discord.gg/dnXzHRkJww">our Discord server</a>, as per usual.</p>

<p>TypeSig &lt;3 you!</p>]]></content><author><name>TypeSig Committee</name></author><category term="announcements" /><summary type="html"><![CDATA[TypeSig is officially one year old! We’re celebrating with a brand new URL, an updated logo, and some exciting new events!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://typesig.pl/assets/images/post-headers/typesig-sticker-laptop.jpg" /><media:content medium="image" url="https://typesig.pl/assets/images/post-headers/typesig-sticker-laptop.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">TUPLE Conference</title><link href="https://typesig.pl/tuple2024/" rel="alternate" type="text/html" title="TUPLE Conference" /><published>2024-02-22T12:56:14+00:00</published><updated>2024-02-22T12:56:14+00:00</updated><id>https://typesig.pl/tuple</id><content type="html" xml:base="https://typesig.pl/tuple2024/"><![CDATA[<p>TUPLE (Types Union Programming Languages, Edinburgh) is a new student conference organised by TypeSig.
The goal of the conference is to introduce more undergraduate students to research in programming language theory and theoretical computer science.</p>

<p>The conference is scheduled to take place on the 21st February, 2024 at the Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB.</p>

<h1 id="the-conference-is-over-many-thanks-to-everyone-who-attended">The conference is over! Many thanks to everyone who attended!</h1>

<h2 id="schedule">Schedule</h2>

<table>
  <thead>
    <tr>
      <th> </th>
      <th> </th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>09:50 :</td>
      <td>Opening remarks</td>
      <td> </td>
    </tr>
    <tr>
      <td>10:00 :</td>
      <td>Talk - Julian Bradfield</td>
      <td> </td>
    </tr>
    <tr>
      <td>11:00 :</td>
      <td>Talk - Wenhao Tang</td>
      <td><a href="/assets/pdfs/tuple2024-slides/tang-wenhao-slides.pdf">slides</a></td>
    </tr>
    <tr>
      <td>12:00 :</td>
      <td>Lunch</td>
      <td> </td>
    </tr>
    <tr>
      <td>13:00 :</td>
      <td>Talk - Conor McBride</td>
      <td><a href="/assets/pdfs/tuple2024-slides/conor-mcbride.agda">files</a></td>
    </tr>
    <tr>
      <td>14:00 :</td>
      <td>Talk - Jad Ghalayini</td>
      <td><a href="/assets/pdfs/tuple2024-slides/jad-galayini-slides.pdf">files</a></td>
    </tr>
    <tr>
      <td>15:00 :</td>
      <td>Break</td>
      <td> </td>
    </tr>
    <tr>
      <td>15:30 :</td>
      <td>Talk - Paul Jackson</td>
      <td><a href="/assets/pdfs/tuple2024-slides/paul-jackson-slides.pdf">slides</a></td>
    </tr>
    <tr>
      <td>16:30 :</td>
      <td>Talk - Bob Atkey</td>
      <td><a href="/assets/pdfs/tuple2024-slides/bob-atkey.agda">files</a></td>
    </tr>
    <tr>
      <td>17:30 :</td>
      <td>Closing remarks</td>
      <td> </td>
    </tr>
    <tr>
      <td>18:00 :</td>
      <td>Everyone leaves</td>
      <td> </td>
    </tr>
  </tbody>
</table>

<h2 id="talks">Talks</h2>

<ul>
  <li><strong>Dr Conor McBride</strong>, Strathclyde: Dependent types</li>
  <li><strong>Dr Bob Atkey</strong>, Strathclyde: Denotational semantics</li>
  <li><strong>Dr Julian Bradfield</strong>, Edinburgh: Model checking</li>
  <li><strong>Dr Paul Jackson</strong>, Edinburgh: Proof presentation in theorem provers (with a focus on Lean!)</li>
  <li><strong>Tang Wenhao</strong>, Edinburgh: Soundly handling linearity (POPL 2024 Distinguished Paper!)</li>
  <li><strong>Jad Ghalayini</strong>, Cambridge: Compiler optimisation and category theory</li>
</ul>

<h2 id="expected-audience">Expected Audience</h2>
<p>TUPLE is the culmination of sustained student interest in PL research over the past few years.
We aim to expose more undergraduate and graduate students to PL through a day of academic talks delivered by researchers in the field.
The intended audience is primarily undergraduate students with some prior exposure to PL through functional programming, although anyone is welcome to attend.</p>

<p>Based on the successful precedent of <a href="https://pwned.sigint.mx">PwnEd 2023</a> (a cybersecurity conference run by <a href="https://sigint.mx">SIGINT</a>, another <a href="https://comp-soc.com">CompSoc</a> SIG) as well as TypeSig’s previous events this year, we expect TUPLE to attract significant attention from the student body in and outwith the the School of Informatics at the University of Edinburgh.</p>

<h2 id="pictures">Pictures!</h2>
<p><img src="/assets/images/tuple2024-pics/tuple-1.JPG" alt="pic1" />
<img src="/assets/images/tuple2024-pics/tuple-2.JPG" alt="pic2" />
<img src="/assets/images/tuple2024-pics/tuple-3.JPG" alt="pic3" />
<img src="/assets/images/tuple2024-pics/tuple-4.JPG" alt="pic4" />
<img src="/assets/images/tuple2024-pics/tuple-5.JPG" alt="pic5" />
<img src="/assets/images/tuple2024-pics/tuple-6.JPG" alt="pic6" />
<img src="/assets/images/tuple2024-pics/tuple-7.JPG" alt="pic7" />
<img src="/assets/images/tuple2024-pics/tuple-8.JPG" alt="pic8" /></p>]]></content><author><name>TypeSig Committee</name></author><category term="events" /><category term="tuple" /><category term="lean" /><category term="agda" /><category term="categories" /><summary type="html"><![CDATA[TUPLE (Types Union Programming Languages, Edinburgh) is a new student conference organised by TypeSig. The goal of the conference is to introduce more undergraduate students to research in programming language theory and theoretical computer science.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://typesig.pl/assets/images/tuple2024-pics/tuple-header.JPG" /><media:content medium="image" url="https://typesig.pl/assets/images/tuple2024-pics/tuple-header.JPG" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Advent of Proof</title><link href="https://typesig.pl/2023/11/30/advent-of-proof.html" rel="alternate" type="text/html" title="Advent of Proof" /><published>2023-11-30T11:00:00+00:00</published><updated>2023-11-30T11:00:00+00:00</updated><id>https://typesig.pl/2023/11/30/advent-of-proof</id><content type="html" xml:base="https://typesig.pl/2023/11/30/advent-of-proof.html"><![CDATA[<p><b>UPDATE:</b> Advent of Proof 2023 has now concluded! Thank you all so much for participating, and helping to make this as large of a success as it was! And a large congratulations in particular to those who placed in the top 10. Well done!</p>

<p><img src="/assets/images/aop-results.png" class="mx-auto d-block" alt="Top 10 Global Rankings for Advent of Proof: 1. icy001 (24 solved) 2. manfp (24 solved) 3. so_true (23 solved) 4. .yellowsquid (22 solved) 5. grhkm (15 solved) 6. alexi0o0 (15 solved) 7. neopalm2050 (11 solved) 8. nankeen (10 solved) 9. buchholz_hydra (10 solved) 10. belazy" /></p>
<hr />

<p>TypeSig is proud to announce a new Advent of Code style competition, called Advent of Proof! <a href="https://homepages.inf.ed.ac.uk/loconno/">Click here to join in!</a></p>

<p>Each day from the 1st of December to the 25th, we release a new theorem that you must formalise and prove using either Agda or Lean.
Depending on how fast you solve it (from first opening the question), how many hints you used, and a secret third metric, you will score a glorious place on the leaderboard!
The challenges are aimed at beginners/intermediates, with some basic experience with using Agda/Lean already.</p>

<p>You must have a <a href="https://discord.gg">Discord</a> account to authenticate with the site.
This is used for scoring and leaderboard purposes.
We also have a discussion channel for the competition in <a href="https://discord.gg/dnXzHRkJww">our Discord server</a>, so feel free to join in the discussion over there!</p>

<p>Good luck and have fun!</p>]]></content><author><name>jacob</name></author><category term="lean" /><category term="agda" /><category term="events" /><summary type="html"><![CDATA[UPDATE: Advent of Proof 2023 has now concluded! Thank you all so much for participating, and helping to make this as large of a success as it was! And a large congratulations in particular to those who placed in the top 10. Well done!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://typesig.pl/assets/images/post-headers/aop.png" /><media:content medium="image" url="https://typesig.pl/assets/images/post-headers/aop.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">TypeSig Talks: Philip Wadler</title><link href="https://typesig.pl/2023/11/21/phil-talk.html" rel="alternate" type="text/html" title="TypeSig Talks: Philip Wadler" /><published>2023-11-21T11:00:00+00:00</published><updated>2023-11-21T11:00:00+00:00</updated><id>https://typesig.pl/2023/11/21/phil-talk</id><content type="html" xml:base="https://typesig.pl/2023/11/21/phil-talk.html"><![CDATA[<p>Yesterday was another successful TypeSig Talk!</p>

<p>Our speaker was <a href="https://homepages.inf.ed.ac.uk/wadler/">Prof. Philip Wadler</a>, who needs no introduction. One of the principal designers of Haskell, Phil is a beloved lecturer here in Edinburgh, and was kind enough to give an introductory talk on formalising the lambda calculus in Lean 4. He covered basic proof techniques in Lean for those who had not seen them, then went on to give a brief representation of terms, and ended with a proof that 2+2=4.</p>

<p>Thanks to everyone who came, and special thanks to Phil in particular.</p>]]></content><author><name>jacob</name></author><category term="lean" /><category term="talks" /><summary type="html"><![CDATA[Yesterday was another successful TypeSig Talk!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://typesig.pl/assets/images/post-headers/2023-11-21-phil-talk.png" /><media:content medium="image" url="https://typesig.pl/assets/images/post-headers/2023-11-21-phil-talk.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">TypeSig Talks: Anton Lorenzen and John Baez</title><link href="https://typesig.pl/2023/11/15/typesig-talks-anton-john.html" rel="alternate" type="text/html" title="TypeSig Talks: Anton Lorenzen and John Baez" /><published>2023-11-15T11:00:00+00:00</published><updated>2023-11-15T11:00:00+00:00</updated><id>https://typesig.pl/2023/11/15/typesig-talks-anton-john</id><content type="html" xml:base="https://typesig.pl/2023/11/15/typesig-talks-anton-john.html"><![CDATA[<p>Yesterday was our very first TypeSig Talks event!</p>

<p>Our first speaker was <a href="https://antonlorenzen.de/">Anton Lorenzen</a>, who gave a talk on in-place functional programming, allowing a compiler to generate code for balancing trees (and otherdata structure manipulations) as efficient as a C implementation, wihle still having all the nice properties of an implementation in a strongly-typed functional language (Koka).</p>

<p>After pizza and mingling, <a href="https://math.ucr.edu/home/baez/">John Baez</a> gave a talk on applied category theory. This talk covered: the general concept of applied category theory; its history (arising from Lawvere’s functorial semantics and quantum physics’ Feynmann diagrams); work done by people in his group and elsewhere over the past two decades; the stock-flow tooling that his colleagues have been working on recently; and a new project he’s leading in the Fields Institute on applying category theory to help model human responses to climate change.</p>

<p>We’re proud to have had such a successful first talk run entirely by ourselves, and hope that you all join us for next week’s talk by Phil Wadler!</p>]]></content><author><name>jacob</name></author><category term="talks" /><category term="category-theory" /><category term="functional-programming" /><summary type="html"><![CDATA[Yesterday was our very first TypeSig Talks event!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://typesig.pl/assets/images/post-headers/john-baez-typesig-talk.png" /><media:content medium="image" url="https://typesig.pl/assets/images/post-headers/john-baez-typesig-talk.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Kevin Buzzard Lecture</title><link href="https://typesig.pl/2023/11/10/kevin-buzzard-talk.html" rel="alternate" type="text/html" title="Kevin Buzzard Lecture" /><published>2023-11-10T11:00:00+00:00</published><updated>2023-11-10T11:00:00+00:00</updated><id>https://typesig.pl/2023/11/10/kevin-buzzard-talk</id><content type="html" xml:base="https://typesig.pl/2023/11/10/kevin-buzzard-talk.html"><![CDATA[<p>Yesterday was the Annual Lecture for Mathematics Students, which we co-hosted with the School of Mathematics. The guest lecturer was <a href="https://www.ma.ic.ac.uk/~buzzard/">Kevin Buzzard</a>, who gave a talk on how large language models (LLMs) like ChatGPT might be integrated with theorem provers. As you can see from the image above, we completely filled AT Lecture Theatre 2! That’s over 200 people!</p>

<p>A massive thanks to everyone who came, and special thanks to the School of Maths for organising the talk, and to Kevin Buzzard, who gave a second talk on his <a href="https://adam.math.hhu.de/#/g/hhu-adam/NNG4">Natural Number Game</a>, which we’ve been following in our Lean workshops for the past month.</p>]]></content><author><name>jacob</name></author><category term="lean" /><category term="talks" /><summary type="html"><![CDATA[Yesterday was the Annual Lecture for Mathematics Students, which we co-hosted with the School of Mathematics. The guest lecturer was Kevin Buzzard, who gave a talk on how large language models (LLMs) like ChatGPT might be integrated with theorem provers. As you can see from the image above, we completely filled AT Lecture Theatre 2! That’s over 200 people!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://typesig.pl/assets/images/post-headers/kevin-buzzard-talk.png" /><media:content medium="image" url="https://typesig.pl/assets/images/post-headers/kevin-buzzard-talk.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Weekly Lean Hacking with MathsSoc</title><link href="https://typesig.pl/2023/09/28/weekly-lean-hacking.html" rel="alternate" type="text/html" title="Weekly Lean Hacking with MathsSoc" /><published>2023-09-28T12:24:11+00:00</published><updated>2023-09-28T12:24:11+00:00</updated><id>https://typesig.pl/2023/09/28/weekly-lean-hacking</id><content type="html" xml:base="https://typesig.pl/2023/09/28/weekly-lean-hacking.html"><![CDATA[<p>We’ve collaborated with MathsSoc to bring you our first regular event: weekly hacking with the Lean4 theorem prover!</p>

<p><a href="https://lean-lang.org/about/">Lean</a> is a dependently-typed proof assistant, with a lot of community support to make it as easy as possible to write mathematical proofs in a machine-verifiable manner. Our two hour sessions are a place to learn about proof assistants, and to get some practical experience with Lean and <a href="https://github.com/leanprover-community/mathlib4">mathlib4</a>.</p>

<p>Sessions take place every Thursday in AT5.04, from 5pm to 7pm. We’re planning to have academic talks every other week, starting from the 5th of October (next week!). Be sure to keep an eye on our <a href="https://discord.gg/dnXzHRkJww">Discord</a> for announcements of these!</p>]]></content><author><name>jacob</name></author><category term="lean" /><category term="events" /><summary type="html"><![CDATA[We’ve collaborated with MathsSoc to bring you our first regular event: weekly hacking with the Lean4 theorem prover!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://typesig.pl/assets/images/lean-hacking/IMG_3701.JPG" /><media:content medium="image" url="https://typesig.pl/assets/images/lean-hacking/IMG_3701.JPG" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>