plwonksProgramming language enthusiasts from Indiana University
http://wonks.github.io/
Wed, 06 Nov 2024 05:33:51 +0000Wed, 06 Nov 2024 05:33:51 +0000Jekyll v3.10.0Indexed Families in Category Theory, Part III<h2 id="time-and-location">Time and Location</h2>
<ul>
<li><strong>Date:</strong> Friday, November 1</li>
<li><strong>Time:</strong> 2:00-3:00 PM</li>
<li><strong>Location:</strong> Luddy Hall 4111</li>
</ul>
<h2 id="abstract">Abstract</h2>
<p>This is the third in a series of lectures introducing how the language of
category theory captures “dependency.” In this lecture, we will continue our
discussion of pullbacks, analyzing their relationship to fibers and base change.</p>
<p>In this lecture series we will start with set-indexed families of sets,
generalize from Set to arbitrary categories, and conclude with category-indexed
families of categories. Topics covered will include bundles and sections, slice
categories, pullbacks, base change, and Grothendieck fibrations.</p>
<p>The categorical prerequisites are minimal: I will assume you know about
categories, functors, terminal objects, and binary products. Knowledge of
dependent type theory is not necessary but may provide additional motivation.
If you already know what a Grothendieck fibration is, you probably won’t learn
anything new.</p>
<p>By the end of this series, you will be prepared to understand the categorical
semantics of dependent type theory (such as comprehension categories, display
map categories, and categories with families / natural models), the categorical
gluing approach to logical relations, and why everyone loves pullbacks so much.</p>
Fri, 01 Nov 2024 14:00:00 +0000
http://wonks.github.io/angiuli/fall2024/2024/11/01/angiuli.html
http://wonks.github.io/angiuli/fall2024/2024/11/01/angiuli.htmlAngiuliFall2024Indexed Families in Category Theory, Part II<h2 id="time-and-location">Time and Location</h2>
<ul>
<li><strong>Date:</strong> Friday, October 25</li>
<li><strong>Time:</strong> 2:00-3:00 PM</li>
<li><strong>Location:</strong> Luddy Hall 4111</li>
</ul>
<h2 id="abstract">Abstract</h2>
<p>This is the second in a series of lectures introducing how the language of
category theory captures “dependency.” In this lecture, we will discuss slice
categories and their structure. (The previous lecture was mostly devoted to
background and examples, so you can still catch up if you missed last week.)</p>
<p>In this lecture series we will start with set-indexed families of sets,
generalize from Set to arbitrary categories, and conclude with category-indexed
families of categories. Topics covered will include bundles and sections, slice
categories, pullbacks, base change, and Grothendieck fibrations.</p>
<p>The categorical prerequisites are minimal: I will assume you know about
categories, functors, terminal objects, and binary products. Knowledge of
dependent type theory is not necessary but may provide additional motivation.
If you already know what a Grothendieck fibration is, you probably won’t learn
anything new.</p>
<p>By the end of this series, you will be prepared to understand the categorical
semantics of dependent type theory (such as comprehension categories, display
map categories, and categories with families / natural models), the categorical
gluing approach to logical relations, and why everyone loves pullbacks so much.</p>
Fri, 25 Oct 2024 14:00:00 +0000
http://wonks.github.io/angiuli/fall2024/2024/10/25/angiuli.html
http://wonks.github.io/angiuli/fall2024/2024/10/25/angiuli.htmlAngiuliFall2024Indexed Families in Category Theory<h2 id="time-and-location">Time and Location</h2>
<ul>
<li><strong>Date:</strong> Friday, October 18</li>
<li><strong>Time:</strong> 2:00-3:00 PM</li>
<li><strong>Location:</strong> Luddy Hall 4063</li>
</ul>
<h2 id="abstract">Abstract</h2>
<p>This is the first in a series of lectures introducing how the language of
category theory captures “dependency.” We will start with set-indexed families
of sets, generalize from Set to arbitrary categories, and conclude with
category-indexed families of categories. Topics covered will include bundles and
sections, slice categories, pullbacks, base change, and Grothendieck fibrations.</p>
<p>The categorical prerequisites are minimal: I will assume you know about
categories, functors, terminal objects, and binary products. Knowledge of
dependent type theory is not necessary but may provide additional motivation.
If you already know what a Grothendieck fibration is, you probably won’t learn
anything new.</p>
<p>By the end of this series, you will be prepared to understand the categorical
semantics of dependent type theory (such as comprehension categories, display
map categories, and categories with families / natural models), the categorical
gluing approach to logical relations, and why everyone loves pullbacks so much.</p>
Fri, 18 Oct 2024 14:00:00 +0000
http://wonks.github.io/angiuli/fall2024/2024/10/18/angiuli.html
http://wonks.github.io/angiuli/fall2024/2024/10/18/angiuli.htmlAngiuliFall2024Sheaves for Process Composition and Separation Logic<iframe src="https://www.youtube.com/embed/IzgwIA0P_Ug" frameborder="0" allowfullscreen=""></iframe>
<h2 id="time-and-location">Time and Location</h2>
<ul>
<li><strong>Speaker:</strong> Berend van Starkenburg. Leiden University Institute of Advanced Computer Science</li>
<li><strong>Host:</strong> Prof. Lawrence S. Moss. Mathematics, Indiana University</li>
<li><strong>Date:</strong> Wednesday, May 8</li>
<li><strong>Time:</strong> 4:00 PM-5:15 PM</li>
<li><strong>Location:</strong> Ballantine Hall 010</li>
</ul>
<h2 id="abstract">Abstract</h2>
<p>To enable compositional reasoning for processes with shared memory, one has to
understand how the properties of the behaviour of single processes can be
composed into properties of the system that result from letting the processes
interact via the shared memory. One option for handling this composition is
so-called separation logic, which allows reasoning about memory regions and,
thereby, about local views of single processes. This talk investigates
compositional reasoning for interacting processes with shared memory. It
proposes leveraging sheaves to amalgamate local views of processes into a
cohesive specification of the global process, offering a more abstract approach
to reasoning. Through a category-theoretic framework, it provides semantics for
process interaction via shared memory and establishes connections between
sheaves and the semantics of the standard pointer model of separation logic. The
talk concludes with an outline of my ongoing research, aiming to refine local
reasoning about programs within this framework and extend its applicability to
extensions of separation logic.</p>
Wed, 08 May 2024 16:00:00 +0000
http://wonks.github.io/vanstarkenburg/spring2024/categorytheory/separationlogic/semantics/2024/05/08/van-starkenburg.html
http://wonks.github.io/vanstarkenburg/spring2024/categorytheory/separationlogic/semantics/2024/05/08/van-starkenburg.htmlVanStarkenburgSpring2024CategoryTheorySeparationLogicSemanticsA Computer Science Perspective on the Foundations of Quantum Computing<iframe src="https://www.youtube.com/embed/tLjgS1eFhn8" frameborder="0" allowfullscreen=""></iframe>
<ul>
<li><a href="http://wonks.github.io/slides/sabry-apr-29-2024.pdf"><strong>Slides (in PDF)</strong></a></li>
</ul>
<h2 id="time-and-location">Time and Location</h2>
<ul>
<li><strong>Date:</strong> Monday, April 29</li>
<li><strong>Time:</strong> 4:00 PM-5:00 PM</li>
<li><strong>Location:</strong> Luddy Hall 4063 (BLIF-4063)</li>
</ul>
<h2 id="abstract">Abstract</h2>
<p>Quantum information processing is believed to revolutionize classical
optimization algorithms, classical search algorithms, and classical learning
theories. Although there is indeed much evidence for such a potentiality, there
are — to date — no definitive theoretical or practical demonstrations of any
quantum computational advantage.</p>
<p>Part of the reason for this uncertain state of affairs is that the boundary
between classical and quantum computing is not well-understood. In this talk, we
will explore the foundations of quantum computing and their connections to
classical computing from a variety of semantically motivated perspectives. We
will first review how some of the ingredients of quantum computing (e.g.,
reversibility and the complex numbers) are irrelevant for separating classical
from quantum computing. We will then explore two recently developed
characterizations of quantum computing that are “almost” classical.</p>
<p>Our technical approach is to design computationally universal quantum
programming languages by, as modest as possible, extensions to classical
programming languages. The first approach demonstrates that a computationally
universal quantum programming language emerges from the amalgamation of two
classical languages glued by complementarity. The second approach demonstrates
that a computationally universal quantum programming language emerges from a
classical programming language extended with just a few square roots of certain
key functions. These more subtle perspectives provide some insight at the
possible semantic sources of quantum advantage and may suggest new classes of
applications in which quantum computing could provide an advantage over
classical computing.</p>
Mon, 29 Apr 2024 16:00:00 +0000
http://wonks.github.io/sabry/spring2024/2024/04/29/sabry.html
http://wonks.github.io/sabry/spring2024/2024/04/29/sabry.htmlSabrySpring2024Tensor Implementations in Malt (A Deep Learning Toolkit)<iframe src="https://www.youtube.com/embed/Y_OyR5mcb-o" frameborder="0" allowfullscreen=""></iframe>
<h2 id="time-and-location">Time and Location</h2>
<ul>
<li><strong>Date:</strong> Thursday, April 25</li>
<li><strong>Time:</strong> 1:30 PM-2:30 PM</li>
<li><strong>Location:</strong> Luddy <strong>AI Building</strong> (not Luddy Hall) Conference Room 2005</li>
</ul>
<h2 id="abstract">Abstract</h2>
<p><a href="https://github.com/themetaschemer/malt">Malt</a> is a minimalist deep learning
library that is designed to support the book The Little Learner: A Straight Line
to Deep Learning, by Daniel P. Friedman and Anurag Mendhekar. Tensors are the
main data structures over which the functions provided by Malt operate on. I
will be talking about the alternate ways in which tensors are implemented in
Malt.</p>
Thu, 25 Apr 2024 13:30:00 +0000
http://wonks.github.io/shetty/spring2024/2024/04/25/shetty.html
http://wonks.github.io/shetty/spring2024/2024/04/25/shetty.htmlShettySpring2024Rhombus, a New Racket Language Without Parentheses<iframe src="https://www.youtube.com/embed/UTX2ih_jGms" frameborder="0" allowfullscreen=""></iframe>
<h2 id="time-and-location">Time and Location</h2>
<ul>
<li><strong>Date:</strong> Wednesday, February 7</li>
<li><strong>Time:</strong> 11:15 AM-12:15 PM</li>
<li><strong>Location:</strong> Luddy Hall 0119 (BLIF-0119)</li>
</ul>
<h2 id="abstract">Abstract</h2>
<p>I will talk about and demo Rhombus, a new language built on Racket
that features both Racket-style macros and conventional syntax,
as well as a variety of other interesting features.</p>
Wed, 07 Feb 2024 11:15:00 +0000
http://wonks.github.io/tobin-hochstadt/spring2024/2024/02/07/tobin-hochstadt.html
http://wonks.github.io/tobin-hochstadt/spring2024/2024/02/07/tobin-hochstadt.htmlTobin-HochstadtSpring2024The Holy Grail of Gradual Security<ul>
<li><a href="http://wonks.github.io/slides/chen-jan-24-2024.pdf"><strong>Slides (in PDF)</strong></a></li>
</ul>
<p><img src="/images/chen_jan_2024.png" alt="ChenJan2024" /></p>
<h2 id="time-and-location">Time and Location</h2>
<ul>
<li><strong>Date:</strong> Wednesday, January 24</li>
<li><strong>Time:</strong> 11:15 AM-12:15 PM</li>
<li><strong>Location:</strong> Info (aka Myles Brand Hall) East 150 (BLI-E150)</li>
</ul>
<h2 id="abstract">Abstract</h2>
<p>Languages with gradual information-flow control combine static and
dynamic techniques to prevent security leaks. Gradual languages
should satisfy the gradual guarantee: programs that only differ in the
precision of their type annotations should behave the same modulo cast
errors. Unfortunately, Toro et al. [2018] identify a tension between
the gradual guarantee and information security; they were unable to
satisfy both properties in the language \(\mathrm{GSL}_\mathsf{Ref}\)
and had to settle for only satisfying information-flow security.
Azevedo de Amorim et al. [2020] show that by sacrificing type-guided
classification, one obtains a language that satisfies both noninterference
and the gradual guarantee. Bichhawat et al. [2021] show that both properties
can be satisfied by sacrificing the no-sensitive-upgrade mechanism,
replacing it with a static analysis.</p>
<p>In this talk I present our new gradual security-typed language,
\(\lambda_{\mathtt{IFC}}^\star\), that satisfies both noninterference and
the gradual guarantee without making any sacrifices. \(\lambda_{\mathtt{IFC}}^\star\)
(1) enforces information flow security,
(2) satisfies the gradual guarantee,
(3) enjoys type-guided classification, and
(4) utilizes NSU checking to enforce implicit flows through the heap
with no static analysis required.
<!-- The definition of $$\lambda_{\mathtt{IFC}}^\star$$ -->
<!-- and its gradual guarantee proof are fully mechanized in Agda. -->
The key to the design of \(\lambda_{\mathtt{IFC}}^\star\) is to
walk back the unusual decision in \(\mathrm{GSL}_\mathsf{Ref}\) to include the unknown
label among the runtime security labels. We mechanize the
definition of \(\lambda_{\mathtt{IFC}}^\star\) in Agda and prove the gradual guarantee.
On the technical side, the semantics of \(\lambda_{\mathtt{IFC}}^\star\) is
the first gradual information-flow control language to be specified using
coercion calculi (a la Henglein), thereby expanding the coercion-based theory of
gradual typing.</p>
<p>(<a href="https://homes.luddy.indiana.edu/chen512">Tianyu</a> is a PhD student
advised by Prof. <a href="https://wphomes.soic.indiana.edu/jsiek">Jeremy Siek</a>.)</p>
Wed, 24 Jan 2024 11:15:00 +0000
http://wonks.github.io/chen/spring2024/gradual/gradualtypes/gradualtyping/security/2024/01/24/chen.html
http://wonks.github.io/chen/spring2024/gradual/gradualtypes/gradualtyping/security/2024/01/24/chen.htmlChenSpring2024GradualGradualTypesGradualTypingSecurityExact Recursive Probabilistic Programming<iframe src="https://www.youtube.com/embed/XcfLydK32AY" frameborder="0" allowfullscreen=""></iframe>
<h2 id="time-and-location">Time and Location</h2>
<ul>
<li><strong>Date:</strong> Wednesday, December 13</li>
<li><strong>Time:</strong> 11:15 AM-12:15 PM</li>
<li><strong>Location:</strong> Luddy Hall 1106 (BLIF-1106) “Dorsey Hall Auditorium”</li>
</ul>
<h2 id="abstract">Abstract</h2>
<p>(joint work with David Chiang and Colin McDonald)</p>
<p>Recursive calls over recursive data are useful for generating probability distributions, and probabilistic programming allows computations over these distributions to be expressed in a modular and intuitive way. Exact inference is also useful, but unfortunately, existing probabilistic programming languages do not perform exact inference on recursive calls over recursive data, forcing programmers to code many applications manually. We introduce a probabilistic language in which a wide variety of recursion can be expressed naturally, and inference carried out exactly. For instance, probabilistic pushdown automata and their generalizations are easy to express, and polynomial-time parsing algorithms for them are derived automatically. We eliminate recursive data types using program transformations related to defunctionalization and refunctionalization. These transformations are assured correct by a linear type system, and a successful choice of transformations, if there is one, is guaranteed to be found by a greedy algorithm.</p>
Wed, 13 Dec 2023 11:15:00 +0000
http://wonks.github.io/shan/fall2023/2023/12/13/shan.html
http://wonks.github.io/shan/fall2023/2023/12/13/shan.htmlShanFall2023Universe Hierarchies and (Generalized) Universe Polymorphism<h2 id="recording-and-slides">Recording and Slides</h2>
<iframe src="https://www.youtube.com/embed/olEMwmvTsHk" frameborder="0" allowfullscreen=""></iframe>
<ul>
<li><a href="http://wonks.github.io/slides/mugen-angiuli-dec-6-2023.pdf"><strong>Slides (in PDF)</strong></a></li>
</ul>
<h2 id="time-and-location">Time and Location</h2>
<ul>
<li><strong>Date:</strong> Wednesday, December 6</li>
<li><strong>Time:</strong> 11:15 AM-12:15 PM</li>
<li><strong>Location:</strong> Luddy Hall 1104 (BLIF-1104)</li>
</ul>
<h2 id="abstract">Abstract</h2>
<p>Dependent type theory expresses type dependency and quantification in terms of a
hierarchy of <em>type universes</em> whose elements are other types. In this talk, I
will motivate universe hierarchies by discussing how they resolve paradoxes in
naive set theory. Next, I will discuss a few mechanisms for <em>universe
polymorphism</em> implemented in proof assistants to avoid code duplication.</p>
<p>Finally, I will talk about joint work with Favonia and Reed Mullanix (“An
Order-Theoretic Analysis of Universe Polymorphism”, POPL 2023) in which we
formulate general notions of universe hierarchies and universe polymorphism,
give some examples of exotic but consistent universe hierarchies, and prove that
any universe-polymorphic type theory can be presented via McBride’s “crude but
effective stratification.”</p>
Wed, 06 Dec 2023 11:15:00 +0000
http://wonks.github.io/angiuli/fall2023/2023/12/06/angiuli.html
http://wonks.github.io/angiuli/fall2023/2023/12/06/angiuli.htmlAngiuliFall2023