Jekyll2020-04-26T23:11:01+00:00https://blog.metatheorem.org/feed.xmlMetatheoremThis is the my blog: blog.metatheorem.orgA Simplification to LNL Models2020-04-10T00:00:00+00:002020-04-10T00:00:00+00:00https://blog.metatheorem.org/2020/04/10/A-Simplification-to-LNL-Models<div id="divCheckbox" style="display: none;">
$$
\newcommand{\cat}[1]{\mathcal{#1}}
\newcommand{\func}[1]{\mathsf{#1}}
\newcommand{\Lin}[0]{\func{Lin}}
\newcommand{\Mny}[0]{\func{Mny}}
\newcommand{\Forget}[0]{\func{Forget}}
\newcommand{\Free}[0]{\func{Free}}
\newcommand{\mto}[0]{\to}
\newcommand{\Hom}[3]{\mathsf{Hom}_{\cat{#1}}(#2,#3)}
\newcommand{\interp}[1]{[\negthinspace[#1]\negthinspace]}
$$
</div>
<p>This is a known result that I’m using in some recent work I am writing
up, and so I figured why not write a post about it.</p>
<p>In this post I am going to explain a simplification to <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.36.5454&rep=rep1&type=pdf">Benton’s
beautiful LNL
models</a>
that reduces their complexity, but retains their expressive power. I
learned of this simplification from <a href="https://www.irif.fr/~mellies/">Paul-André
Melliès’</a> writings. First, let’s take
a look at the original definition of LNL models, and how they relate
to linear categories.</p>
<h2 id="lnl-models">LNL Models</h2>
<p>A <strong>Linear/Non-Linear (LNL) model</strong> is an symmetric monoidal adjunction <script type="math/tex">\cat{C} : \Lin \dashv \Mny : \cat{M}</script>, where:</p>
<ul>
<li><script type="math/tex">\cat{C}</script> is a cartesian closed category,</li>
<li><script type="math/tex">\cat{M}</script> is a symmetric monoidal closed category,</li>
<li>(Linear) <script type="math/tex">\Lin : \cat{C} \mto \cat{M}</script> is a symmetric monoidal functor, and</li>
<li>(Many) <script type="math/tex">\Mny : \cat{M} \mto \cat{C}</script> is a symmetric monoidal functor.</li>
</ul>
<p>Intuitively, we can think of <script type="math/tex">\cat{C}</script> as a model of intuitionistic
logic (or the simply-typed <script type="math/tex">\lambda</script>-calculus), <script type="math/tex">\cat{M}</script> as a
model of intuitionistic linear logic, and the functors <script type="math/tex">\Lin</script> and
<script type="math/tex">\Mny</script> as modalities that allows one to translate formulas on one
side to the other. The adjunction <script type="math/tex">\cat{C} : \Lin \dashv \Mny :
\cat{M}</script> ensures that these translations are well behaved.</p>
<p>LNL models are equivalent to Bierman’s linear categories. In fact, I
wrote a <a href="/2018/07/24/Linear-Categories-A-Folklore-Simplification.html">blog
post</a> in
2018 on a simplification to linear categories, so check that post out
if you are unfamiliar with linear categories. The of-course modality
of linear logic, denoted by <script type="math/tex">!A</script>, is characterized in linear
categories by a symmetric monoidal comonad on a symmetric monoidal
closed category. Benton showed that we can define the of-course
modality as <script type="math/tex">!A = \Lin(\Mny\,A) : \cat{M} \mto \cat{M}</script>, and hence,
is the comonad induced by the adjunction. Furthermore, since the
adjunction is monoidal and between two symmetric monoidal functors,
the induced comonad is symmetric monoidal as well.</p>
<p>An extremely useful result shown by Benton is that the functor <script type="math/tex">\Lin :
\cat{C} \mto \cat{M}</script> is strong monoidal; e.g., the following
isomorphisms hold:</p>
<script type="math/tex; mode=display">\begin{array}{ll}
\Lin \perp = I\\
\Lin\,(X \times Y) = \Lin\,X \otimes \Lin\,Y
\end{array}</script>
<p>This is enough to ensure that the category <script type="math/tex">\cat{M}</script> with the
induced comonad of the adjunction forms a linear category. Thus, LNL
models imply linear categories, but the other direction is more
interesting.</p>
<p>Given a linear category <script type="math/tex">(\cat{L}, !, \varepsilon, \delta)</script> we need
to find a cartesian closed category and a symmetric monoidal closed
category that form an LNL model. It is well known that for any comonad
<script type="math/tex">c : \cat{A} \mto \cat{A}</script> on some category <script type="math/tex">\cat{A}</script>, there are
two adjunctions <script type="math/tex">\cat{A}^c : \Forget \dashv \Free : \cat{A}</script> and
<script type="math/tex">\cat{A}_c : \Forget \dashv \Free : \cat{A}</script> between the category
<script type="math/tex">\cat{A}</script> and the coEilenberg-Moore category – the category of
<script type="math/tex">c</script>-coalgebras – and the Kleisli category – the category of free
<script type="math/tex">c</script>-coalgebra respectively, where <script type="math/tex">\Forget(A,h_A) = A</script> and
<script type="math/tex">\Free(A) = (!A,\delta_A)</script> are the forgetful and free functors.
Benton showed that <script type="math/tex">\cat{L}^!</script> is cartesian, but it is not the case
in general that <script type="math/tex">\cat{L}_!</script> is, because the product of two free
coalgebras may not be free. Furthermore, neither of these are
closed in general.</p>
<p>To remedy these issues Benton found that the free coalgebras have an
internal hom between them which is also free, and thus, by taking the
full subcategory of <script type="math/tex">\cat{L}^!</script> of all the exponential objects –
objects with an internal hom – then we get a cartesian closed
category, and this full subcategory contains <script type="math/tex">\cat{L}_!</script>. Then he
identifies a second cartesian closed category of all of the finite
products of free coalgebras in the category of exponential objects. We
can use either of these to form a LNL model.</p>
<p>This is a lot of work to get an internal hom, but is it worth the
work? Is it possible to ask for the category <script type="math/tex">\cat{C}</script> in the
definition of LNL model to be simply cartesian, and then finding such
a category from a linear category is easy, it’s <script type="math/tex">\cat{L}^!</script>. The
answer turns out to be positive.</p>
<h2 id="the-simplified-model">The Simplified Model</h2>
<p>Taking the following simplified model we show that it implies a linear
category, we do not show the opposite, because it follows as a
corollary from the original proof summarized above.</p>
<p>A <strong>Simplified Linear/Non-Linear (LNL) model</strong> is an <strong>adjunction</strong> <script type="math/tex">\cat{C} : \Lin \dashv \Mny : \cat{M}</script>, where:</p>
<ul>
<li><script type="math/tex">\cat{C}</script> is a <strong>cartesian category</strong>,</li>
<li><script type="math/tex">\cat{M}</script> is a symmetric monoidal closed category,</li>
<li>(Linear) <script type="math/tex">\Lin : \cat{C} \mto \cat{M}</script> is a strong symmetric monoidal functor, and</li>
<li>(Many) <script type="math/tex">\Mny : \cat{M} \mto \cat{C}</script> <strong>is functor</strong>.</li>
</ul>
<p>In the above I highlight the simplifications which are actually
generalizations. We can see that this definition removes the
requirements that <script type="math/tex">\cat{C}</script> be closed, the adjunction be symmetric
monoidal, and the functor <script type="math/tex">\Mny</script> be monoidal. This is nice, because
generalizing the definition makes finding LNL models easier.</p>
<p>The requirement that <script type="math/tex">\Lin</script> be strong symmetric monoidal paired with
an adjunction is a particularly strong property. First, suppose
<script type="math/tex">\cat{A} : \func{F} \dashv \func{G} : \cat{B}</script> is an adjunction
between monoidal categories; so <script type="math/tex">\func{F}</script> and <script type="math/tex">\func{G}</script> are plan
functors. The there are two really nice results:</p>
<ol>
<li>
<p><a href="https://www.irif.fr/~mellies/mpri/mpri-ens/biblio/categorical-semantics-of-linear-logic.pdf">(p. 108, Proposition 12)</a>
Every lax monoidal structure, <script type="math/tex">m : \func{F}X \otimes \func{F}Y \mto
\func{F}(X \bullet Y)</script> on <script type="math/tex">\func{F} : \cat{A} \mto \cat{B}</script>,
induces an oplax monoidal structure <script type="math/tex">n : \func{G}A \bullet \func{G}B
\mto \func{G}(A \otimes B)</script> on <script type="math/tex">\func{G} : \cat{B} \mto \cat{A}</script>,
and conversely. Furthermore, these mappings from <script type="math/tex">m</script> to <script type="math/tex">n</script> and
back define an isomorphism giving a one-to-one relationship between
the lax monoidal structure on one side of the adjunction and the
other.</p>
</li>
<li>
<p><a href="https://www.irif.fr/~mellies/mpri/mpri-ens/biblio/categorical-semantics-of-linear-logic.pdf">(p. 112, Proposition 14)</a>
Suppose <script type="math/tex">(\func{F},m)</script> is lax monoidal. Then the adjunction
<script type="math/tex">\cat{A} : \func{F} \dashv \func{G} : \cat{B}</script> lifts to a monoidal adjunction
<script type="math/tex">(\cat{A},m) : \func{F} \dashv \func{G} : (\cat{B},p)</script> iff
the lax monoidal functor <script type="math/tex">\func{F}</script> is strong. In the right-to-left
case, the lax structure <script type="math/tex">p</script> is associated with <script type="math/tex">\func{G}</script> using
part 1 and setting <script type="math/tex">n = m^{-1}</script>.</p>
</li>
</ol>
<p>We can add symmetry to the above properties, and they still hold.
Thus, the second result above gives us a means of recovering a lax
monoidal structure on the functor <script type="math/tex">\Mny : \cat{M} \mto \cat{C}</script>.
Therefore, simplified LNL models imply the following definition:</p>
<p>A <strong>Semi-simplified Linear/Non-Linear (SSLNL) model</strong> is an symmetric monoidal adjunction <script type="math/tex">\cat{C} : \Lin \dashv \Mny : \cat{M}</script>, where:</p>
<ul>
<li><script type="math/tex">\cat{C}</script> is a <strong>cartesian category</strong>,</li>
<li><script type="math/tex">\cat{M}</script> is a symmetric monoidal closed category,</li>
<li>(Linear) <script type="math/tex">\Lin : \cat{C} \mto \cat{M}</script> is a strong symmetric monoidal functor, and</li>
<li>(Many) <script type="math/tex">\Mny : \cat{M} \mto \cat{C}</script> is a symmetric monoidal functor.</li>
</ul>
<p>Showing that this definition implies a linear category is easy, we can
just use <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.36.5454&rep=rep1&type=pdf">Benton’s proof (p. 16, Section
2.2.1)</a>. Thus,
the simplified definition of a LNL model implies linear category.</p>
<p>At this point the only question left is, but what about non-linear
implications / functions? In the original model the cartesian closed
category is a model of non-linear logic / simply-type
<script type="math/tex">\lambda</script>-calculus and on the other side we have a model of linear
logic. Can we still obtain an encoding of non-linear logic using the
simplified definition?</p>
<p>We can indeed by first exploiting the adjunction and the fact that
<script type="math/tex">\cat{M}</script> is closed. Let <script type="math/tex">X</script> and <script type="math/tex">B</script> be objects in <script type="math/tex">\cat{C}</script>
and <script type="math/tex">\cat{M}</script> respectively. Then define the object:</p>
<script type="math/tex; mode=display">X \Rightarrow B := \Lin\,X \multimap B</script>
<p>Then there is a bijection:</p>
<script type="math/tex; mode=display">% <![CDATA[
\begin{array}{llll}
\Hom{C}{X \bullet Y}{\Mny\,B}
& \cong & \Hom{M}{\Lin(X \bullet Y)}{B} \\
& \cong & \Hom{M}{\Lin\,X \otimes \Lin\,Y)}{B} \\
& \cong & \Hom{M}{\Lin\,X}{\Lin\,Y \multimap B} \\
& = & \Hom{M}{\Lin\,X}{Y \Rightarrow B} \\
& \cong & \Hom{C}{X}{\Mny\,(Y \Rightarrow B)}
\end{array} %]]></script>
<p>This is a kind of currying, and is enough to interpret non-linear
logic where we encode the formulas in the form of <script type="math/tex">\Mny\,A</script> for
linear formulas <script type="math/tex">A</script> in <script type="math/tex">\cat{M}</script>. In more detail, the
interpretation is in the form of a faithful functor defined on types
as follows:</p>
<script type="math/tex; mode=display">\begin{array}{ll}
\interp{\top} = I\\
\interp{A \times B} = \interp{A} \otimes \interp{B}\\
\interp{A \Rightarrow B} = (\Lin\,\Mny\,\interp{A} \multimap \interp{B})
\end{array}</script>
<p>Then sequents <script type="math/tex">x_1 : A_1, \cdots, x_i : A_i \vdash t : b</script> are
interpreted as morphisms from <script type="math/tex">\Mny\,\interp{A_1} \bullet \cdots \bullet
\Mny\,\interp{A_i}</script> to <script type="math/tex">\Mny\,\interp{B}</script>.</p>
<p>Using this we can show that every equation in the theory is preserved
by the interpretation. This proves that the interpretation soundly
models the theory in an LNL model. Faithfulness ensures that every
proof is caputed by our model.</p>
<p>This simplifies the model a lot, but how does it affect the syntactic
side of things? Well, we get to remove the rules for non-linear
implication, and derieve them which is appealing both theoretically
and practically.</p>$$ \newcommand{\cat}[1]{\mathcal{#1}} \newcommand{\func}[1]{\mathsf{#1}} \newcommand{\Lin}[0]{\func{Lin}} \newcommand{\Mny}[0]{\func{Mny}} \newcommand{\Forget}[0]{\func{Forget}} \newcommand{\Free}[0]{\func{Free}} \newcommand{\mto}[0]{\to} \newcommand{\Hom}[3]{\mathsf{Hom}_{\cat{#1}}(#2,#3)} \newcommand{\interp}[1]{[\negthinspace[#1]\negthinspace]} $$Online Seminar: A gentle introduction to template games2020-04-10T00:00:00+00:002020-04-10T00:00:00+00:00https://blog.metatheorem.org/2020/04/10/A-gentle-introduction-to-template-games<p><strong>Update: Find the recording of this talk <a href="https://youtu.be/b6FHzy5xJZ4">here</a>.</strong></p>
<p>This year I’m the faculty chair of the School of Computer and Cyber
Sciences’ Colloquium Series. As many of you, I’ve had to transition
this course online. Thus, when choosing the final speaker of the
semester I did not take distance into consideration, because the
requirement to physically come to Augusta University and present is no
longer required. In addition, since there is no need for financial
support, I’m also more free in who I ask to present.</p>
<p>So I am happy to announce that <a href="https://www.irif.fr/~mellies/">Paul-André
Melliès</a> will be our final presenter
of the semester, but that’s not all! I have 100 seats available on my
Zoom account, and only 30 of them will be needed for AU students and
faculty. That leaves open 70 seats! So I am taking RSVPs from anyone
who would like to attend the talk online.</p>
<p>The presentation information is as follows:</p>
<ul>
<li><strong>When:</strong> April 24th at 2pm EDT / 8pm CEST</li>
<li><strong>RSVP:</strong> April 20th by email (<a href="mailto:harley.eades@gmail.com">harley.eades@gmail.com</a>)</li>
<li><strong>Who:</strong> <a href="https://www.irif.fr/~mellies/">Paul-André Melliès</a> (CNRS, University of Paris)</li>
<li><strong>Title:</strong> “A gentle introduction to template games”</li>
<li>
<p><strong>Abstract:</strong></p>
<p>Game semantics is the art of interpreting formulas (or types) as
games and proofs (or programs) as strategies. In order to reflect
the interactive behaviour of programs, strategies are required to
follow specific scheduling policies. Typically, in the case of a
sequential programming language, the program (Player) and its
environment (Opponent) play one after the other, in a strictly
alternating way. On the other hand, in the case of a concurrent
language, Player and Opponent are allowed to play several moves in a
row, in a non alternating way. In the two cases, the scheduling
policy is designed very carefully in order to ensure that the
strategies synchronise properly and compose well when plugged
together. A longstanding conceptual problem has been to understand
when and why a given scheduling policy works and is compositional in
that sense. In this talk, I will introduce the notion of template
game and exhibit a number of simple and fundamental combinatorial
properties which ensure that a given scheduling policy defines
(indeed) a monoidal closed bicategory of games, strategies and
simulations. The notion of template game will be illustrated by
constructing two game models of linear logic with different flavours
(alternating and non alternating) using the same categorical
combinatorics, performed in the category of small 2-categories.</p>
<p>The interested reader will find more material here</p>
<ul>
<li>
<p>https://www.irif.fr/~mellies/template-games.html</p>
</li>
<li>
<p>https://www.youtube.com/watch?v=ZC2jtq2R3cw</p>
</li>
</ul>
<p>and in the companion papers [1,2,3].</p>
</li>
<li>
<p><strong>Bio:</strong></p>
<p>Paul-André Melliès is a CNRS Researcher in France, and works in the
Computer Science Department of the University of Paris. He also
teaches at Ecole Normale Supérieure in Paris a graduate course on
the connection between lambda-calculus, functional languages and
category theory.</p>
<p>Paul-André Melliès has worked on a number of areas of logic,
computer science and mathematics, including lambda-calculus,
rewriting theory, algebraic and monadic effects in functional
languages, semantics of low level languages, formal certification of
machine code, game semantics, linear logic, concurrent separation
logic, higher-order automata, higher categories, axiomatic homotopy
theory. Behind this apparent diversity, he is looking for common
unifying patterns, and for a simple description of the linguistic,
geometric and interactive structures at work in logic and
mathematics.</p>
</li>
<li>
<p><strong>References:</strong></p>
<p>[1] PAM. Categorical combinatorics of scheduling and synchronization
in game semantics. Proceedings of POPL 2019.</p>
<ul>
<li>
<p>https://www.irif.fr/~mellies/papers/Mellies19popl.pdf</p>
</li>
<li>
<p>https://www.irif.fr/~mellies/slides/popl-slides-january-2019.pdf</p>
</li>
</ul>
<p>[2] PAM. Template games and differential linear logic. Proceedings
of LICS 2019.</p>
<ul>
<li>https://www.irif.fr/~mellies/template-games/2-template-games-and-differential-linear-logic.pdf</li>
</ul>
<p>[3] PAM. Une étude micrologique de la négation (in French)</p>
<ul>
<li>https://www.irif.fr/~mellies/hdr-mellies.pdf</li>
</ul>
</li>
</ul>Update: Find the recording of this talk here.Several Online Workshops Coming Soon2020-04-08T00:00:00+00:002020-04-08T00:00:00+00:00https://blog.metatheorem.org/2020/04/08/Worshop-CFPs<p>I wanted to bring to everyones attention a couple of workshops that I’m helping with that will be online, and are waiting for your submission.</p>
<ul>
<li>
<p><a href="https://lipn.univ-paris13.fr/LinearityTLLA2020/cfp.html">LINEARITY && TLLA 2020</a> - I’m on the PC for this joint workshop. I really love these two workshops. Attending these I’ve made lots of freinds and gotten lots of useful feedback. Please consider submitting!</p>
</li>
<li>
<p><a href="https://gramsec.uni.lu/">Graphical Models in Security (GraMSec 2020)</a> - I’m a cochair of this workhsop on the use of graph-based theory and tools used in security. This year we have widended the scope, the entires of interest to my research community are:</p>
<ol>
<li>
<p>Graph representations: mathematical, conceptual, and implemented
tools for describing and reasoning about security and safety</p>
</li>
<li>
<p>Logical approaches: formal logical tools for representing and
reasoning about graphs and their use as modelling tools in security</p>
</li>
<li>
<p>Semantics: developing or studying semantic approaches to graph-based
models used in security like set theoretic models, categorical models,
logical models, etc.</p>
</li>
<li>
<p>Threat modelling: modelling and analysing software systems security,
models for DevSecOps, etc.</p>
</li>
<li>
<p>Security requirements: models and tools for describing and analysing
requirements on system security and privacy.</p>
</li>
<li>
<p>Secure systems: safe and secure system design, quantification of
security/safety, models for system security/safety evaluation.</p>
</li>
</ol>
<p>These entries have a large non-empty intersection with topics related to PL, types, and category theory.</p>
</li>
</ul>I wanted to bring to everyones attention a couple of workshops that I’m helping with that will be online, and are waiting for your submission.Units in Graded Sequent Calculi2020-03-25T00:00:00+00:002020-03-25T00:00:00+00:00https://blog.metatheorem.org/2020/03/25/Units-in-Graded-Sequent-Calculus<p>This is a guest post by Aubrey Bryant.</p>
<p>If you are searching for a logical system as exact and careful with resources as that infamous miser, Ebenezer Scrooge, look no further. Graded modal linear logic is the system for you. Like linear logic, it is resource-sensitive; however, it goes a step further and tracks not just binary usage, but usage along a continuum of grades, specified by a graded context. The grades can be defined in many different ways, but for simplicity while introducing the concept, let’s imagine that the grades range over the natural numbers, and indicate the number of times a formula must be used. When a formula <script type="math/tex">A</script> is needed at a grade of <script type="math/tex">r</script> to yield a consequent <script type="math/tex">B</script>, the grade for <script type="math/tex">A</script> must be added to the account for <script type="math/tex">B</script>, once for each use of <script type="math/tex">A</script> required to yield <script type="math/tex">B</script>. Thus, <script type="math/tex">A</script>’s grade must be multiplied by <script type="math/tex">r</script> in order to yield the required number of <script type="math/tex">A</script>’s. To illustrate, here is the cut rule in our graded system:</p>
<center><img width="60%" src="/images/posts/2020-03-25-Units-in-Graded-Sequent-Calculus/cut-rule.png" /></center>
<p><script type="math/tex">\Gamma_1 \odot \gamma_1</script> is the context yielding one <script type="math/tex">A</script>, where <script type="math/tex">\gamma_1</script> is a vector containing a grade for every corresponding element of <script type="math/tex">\Gamma_1</script>; the grade describes the usage for each resource in the context. In our current example, it indicates the number of times that resource must be used. Note that <script type="math/tex">\gamma_1</script> is multiplied by <script type="math/tex">r</script> to yield the required number of <script type="math/tex">A</script>’s.</p>
<p>Here is a very simple example that illustrates how the grading works. In this derivation, <script type="math/tex">A \rhd A</script> is only derivable when there are two <script type="math/tex">A</script>’s available to use:</p>
<center><img width="60%" src="/images/posts/2020-03-25-Units-in-Graded-Sequent-Calculus/example-derivation.png" /></center>
<p>While this watchful precision can be somewhat uncomfortable if you’re Bob Cratchitt asking for an extra lump of coal for the stove, remember that Scrooge became a wealthy man through such careful accounting. And, literary references aside, I actually appreciate the subtlety and precision that this system requires. I have been working through a cut-elimination proof for this system for the past couple of months, following the blueprint laid out by <a href="https://www.irif.fr/~mellies/mpri/mpri-ens/biblio/categorical-semantics-of-linear-logic.pdf">Melliès</a>. I started with what I thought were the juiciest and most interesting steps, like cuts with tensor products and linear implication playing primary or secondary roles. Then I turned to what I thought would be the boring bits, like those involving the axiom of identity and the tensor unit rules. I expected these to be pretty rote - after all, they are specifically designed to do nothing. But in a system that keeps such careful account, doing nothing is surprisingly difficult. In fact, under the first system of rules, the left rule for tensor unit introduction caused cut-elimination to fail.</p>
<p>Our initial formulation of the left rule for the tensor unit was:</p>
<center><img width="40%" src="/images/posts/2020-03-25-Units-in-Graded-Sequent-Calculus/unitL.png" /></center>
<p>Notice that this rule allows you to introduce <script type="math/tex">I</script> into the context, at a grade of <script type="math/tex">1</script>. In ordinary linear logic, the tensor unit is sometimes called the ‘empty resource’, unique among linear hypotheses in that it is the only one derivable from the empty context, and similarly the only one that can be discarded without being used. This behavior is a clue that the grade of <script type="math/tex">1</script> is incorrect, since anything with a nonzero grade makes an impact on our ‘bill’, in the language of Scrooge. And certainly, the careful accounting demanded by our system made a vivid case for why the unit grade was wrong.</p>
<p>Here is an illustration of the problem, using cut (defined above) and contraction, defined as:</p>
<center><img width="65%" src="/images/posts/2020-03-25-Units-in-Graded-Sequent-Calculus/contraction.png" /></center>
<p>Following the cut-elimination procedure outlined by <a href="https://www.irif.fr/~mellies/mpri/mpri-ens/biblio/categorical-semantics-of-linear-logic.pdf">Melliès</a>, the general strategy is to show how every complex cut can be transformed into a simpler cut (or multiple simpler cuts). Applied repeatedly, this process moves the application of the cut rule into simpler and simpler proof steps until it is shown to be unnecessary at the axiom steps. So, in this case the task is to move the application of the cut rule to before the application of the left rule for the unit, without changing the final conclusion of the proof. For the case where the cut step follows left introduction of the tensor unit, the following proof transformation is required:</p>
<center><img width="70%" src="/images/posts/2020-03-25-Units-in-Graded-Sequent-Calculus/cut-1.png" /></center>
<p>becomes:</p>
<center><img width="70%" src="/images/posts/2020-03-25-Units-in-Graded-Sequent-Calculus/cut-2.png" /></center>
<p>To match the conclusion of the first proof, <script type="math/tex">I</script> must have a grade of <script type="math/tex">r</script> in the conclusion of the second proof. The proof above accomplishes this by doing <script type="math/tex">r</script> applications of the left unit rule, and then subsequently <script type="math/tex">r-1</script> applications of the contraction rule. This works for any <script type="math/tex">r > 0</script>, but not for the case when <script type="math/tex">r = 0</script>. Furthermore, this solution fails entirely when addition is not defined in the system, or when <script type="math/tex">1 + 1 \notin \mathcal{R}</script>, as this is the only option available to match the grading.</p>
<p>The root of the problem is that <script type="math/tex">I</script> gets a grade of <script type="math/tex">1</script> in the left unit rule specified above. This means that when it is part of a context brought across a cut, it is multiplied by the required grade <script type="math/tex">r</script>, and <script type="math/tex">1 * r = r</script>. Besides breaking cut elimination, grading <script type="math/tex">I</script> with <script type="math/tex">1</script> does not accurately capture the behavior we want, because we want to be able to ‘throw it away’ or leave it out of the grade accounting so we can use the tensor identity axioms:</p>
<script type="math/tex; mode=display">\begin{array}{l}
A \rhd I \rightarrow A\\
I \rhd A \rightarrow A
\end{array}</script>
<p>With <script type="math/tex">I</script> at a grade of <script type="math/tex">1</script>, we aren’t allowed to toss it out and keep only the <script type="math/tex">A</script>. While <script type="math/tex">1</script> is a tempting grade to use, being the multiplicative unit, it does not produce the behavior we expect from <script type="math/tex">I</script>. The best option is to grade it at <script type="math/tex">0</script> in its left rule, but then the rule is equivalent to weakening, and so we just let weakening take on both roles and throw out the left rule for the tensor unit altogether. This gives us the control we want while still allowing us to use the tensor identity axioms when weakening is allowed - that is, whenever <script type="math/tex">0 \in \mathcal{R}</script>. The new system has just a single right rule for tensor unit, and we have already proven cut elimination for it.</p>
<p>Checkout out new system the Graded Lambek Calculus below:</p>
<center><img width="90%" src="/images/posts/2020-03-25-Units-in-Graded-Sequent-Calculus/system-1.png" /></center>
<center><img width="70%" src="/images/posts/2020-03-25-Units-in-Graded-Sequent-Calculus/system-2.png" /></center>This is a guest post by Aubrey Bryant.Thoughts on Mentoring Undergraduate Research Assistants2019-11-05T00:00:00+00:002019-11-05T00:00:00+00:00https://blog.metatheorem.org/2019/11/05/Mentoring-Panel<p>xxxxxx</p>
<p>The Center for Undergradaute Research at Augusta University asked me to be on two panels about mentoring undergraduate research assistants. The first being for new faculty and the second for students. I decided to write up my thoughts on mentoring students so that panel attendees may access my answers later, but also just to share them</p>
<h2 id="what-is-undergraduate-research-to-me">What is Undergraduate Research to Me?</h2>
<p>Undergraduate research means a lot to me, because it is how I fell in love with research, and it is how I decided to go to graduate school. As a faculty member I work with undergraduates to share my love for research and my field of study. Thus, to me it is important that a student get to experience the full range of what it means to do research. I include the student in brainstorming new ideas, synthesizing new results, and communicating those results both orally – through giving talks – and in written form – by writing papers. Furthermore, I approach working with my students in the same way that I approach working with collaborators. I treat them as equals whose ideas are valid and important. Now of course, I am there to mentor them and help them when they need it, but I do not use students to do mediocre tasks. In fact, I save all the interesting stuff for them, and do the boring stuff myself.</p>
<p>At this point, I answer some common questions about mentoring students. One thing I like to point out is that my process for working with undergraduate students is nearly the same as my process for working with graduate students, but their are difficulty differences. I start a graduate student off on a more difficult project than I would an undergraduate, but the fundamental process is the same.</p>
<h2 id="faculty-panel-qa">Faculty Panel Q&A</h2>
<ul>
<li>
<p>How do you get the students up to speed to where they can contribute?
How long does this take? What strategies do you use to make it faster?
Is it worth it?</p>
<p>This is a question I get often, because I have worked with a lot of students, some of whom have produced excellent results. First, it is important to realize that mentoring new research students takes time, but in my experience it pays off. Every undergraduate research assistant I hire must get a B or better in both of the following courses:</p>
<ul>
<li>CSCI:3030 - Mathematical Structures in Computer Science</li>
<li>CSCI:3300 - Programming Languages Concepts</li>
</ul>
<p>These courses teach the basic background of my research area. Then I start them out with what is usually called a <em>starter project</em>. This is a research project that is a subpart of the overall project I want to work with the student on, but this starter project is a stand-alone component that will introduce the student to key concepts in the overall project that they can approach with nothing but the background acquired from their course work. Furthermore, it is important that this project be self contained – including writing and presenting – that way the student can decide early on whether research is right for them. Once the student has finished the starter project, I give them another more advanced project, and I keep iterating this process until they are confident enough to start generating their own ideas; but by this time, they are off to graduate school. This strategy is the most efficient one that I can think of, and gets the student thinking about research right away.</p>
<p>Timeline wise, the starter project usually takes a semester or two. I try and hire students as early as possible usually in sophomore/junior year so that we have plenty of time to work together. Again, this takes time, but I think it is important not to rush students. I question questions about making things faster than this, because becoming a researcher takes time, and rushing it puts unfair pressures on an already pressured student. We do not want to push people away from research.</p>
<p>Lastly, is it worth it? Personally, yes, it is! The most long-lasting contribution we can give to science is, after all, the students we mentor. They go on to graduate school, become researchers, and produce more results and more students. Even when it turns out that a student does not like research, I still think it is worth it, because that student learned something about themselves, and most likely learned a bit more about their field.</p>
</li>
<li>
<p>How do you recruit and/or decide which student(s) will work with you?</p>
<p>I recruit through the courses I teach. If a student is doing well, then I ask them if they are interested in doing research, and we go from there. Other times, I have students seek me out for a research position, and then I meet with them, and discuss their interests. If I am looking for a single student, and I have more than one to consider, then I interview both students, and try and get a sense of their interests and background, and make a judgment call based on this information. But, this does not happen very often, because when I have two good students, I try and find the funding for both.</p>
</li>
<li>
<p>How do you handle personality challenges between students?</p>
<p>Typically, all of my students work on their own self-contained subprojects of a larger project, but often they will need to discuss how their projects fit together, but I really do not see many issues regarding student-to-student interactions. I make sure to foster an inclusive environment that does not tolerate any type of harassment, and when hiring students I try and make sure they are willing to uphold this standard. I think making this clear prevents the problems from happening.</p>
</li>
<li>
<p>How do you run your research meetings (if you have them), and divvy up responsibilities?</p>
<p>I have weekly research meetings with each of my students all of which are one-on-one. Since their projects are self contained I do not need to meet with a large group. During these meetings I first address any questions the student my have on their work, discuss the big picture, and set upcoming milestones. I ask my students to keep a detailed research journal that details meeting notes and milestones that way they are aware of everything that is needing done.</p>
</li>
<li>
<p>Have ever had to remove a student from your team and if so, how did you do so?</p>
<p>Research is not for everyone, sometimes students do not work out. I have had to stop working with a student before, but largely it comes down to the student typically not wanting to do research. If a project is not progressing as one might expect, then I check in with the student to see if they are okay, and what might be the cause of the slow progress. More often than not its due to the student not enjoying research, and so we decide it is best for them to stop. Other times, there are larger issues that the student needs help with. It is important to always reach out to the student before becoming angry, because there is almost always a good reason.</p>
</li>
<li>
<p>Do you interview potential students? If so, what kinds of questions do you ask?</p>
<p>I always meet with prospective research students, but rather than an interview, I use this meeting to discuss more about what research is, what area I work in, and their interests and longterm goals. This meeting also gives them an opportunity to ask me questions, because it is just as important for the student to get to know me as it is for me to get to know them.</p>
</li>
<li>
<p>What are your tips for publishing/presenting with students?</p>
<ul>
<li>
<p>From the start let the student take the lead on their project, let them be first author, and have them write most of the paper, and present the results at a conference. If the student has to leave the project early or is not able to contribute enough to warrant first authorship, then this is adjusted as necessary. But, it is important to give them a chance to experience the entire process.</p>
</li>
<li>
<p>Have the student help with the review process by fixing problems the reviewers find, and preparing the rebuttal.</p>
</li>
<li>
<p>When gearing up for a conference presentation have the student present the entire presentation at least three times before going. Have them present in front of the department and in seminars to give them practice. This helps them get over the nerves of presenting.</p>
</li>
</ul>
</li>
<li>
<p>What are some other difficulties you’ve had and how did you cope with them?</p>
<p>The biggest hurtle is <em>time</em>. Students are busy with jobs, courses, families, friends, sports, etc. It is important to understand the time constraints put on students, and adjust expectations as necessary. I always discuss time with my students up front, and then revisit it every so often to make sure they are comfortable and not over doing it.</p>
<p>It is also important to try and understand how the student likes to be mentored. Some students need more interaction with me than others, need additional meetings, or require feedback more often. Understanding how they like to be mentored makes them comfortable which makes doing research a lot easier. I tend to ask them questions to get an idea on how to better mentor them.</p>
<p>I also think it is important to play to your students strengths. A student might be stronger in one area than another, and so if this can be capitalized on in their project, then the student will be more successful and enjoy it more.</p>
<p>Finally, checkout the <a href="https://teamhelium.co/">Helium podcast</a> for early career researchers. I learned a lot from listening to it.</p>
</li>
</ul>
<h2 id="student-panel-qa">Student Panel Q&A</h2>
<ul>
<li>
<p>What do you look for in a potential research/scholarship student?</p>
<p>Mainly, interest! Interest in the subject matter, and an interest to learn are the two best qualities in a research student. Secondly, the student needs to be comfortable working independently and have a good work ethic. Everything else I can teach them. Largely, undergraduate students do not know what research is before starting a research assistantship, and so I cannot really expect much more than this.</p>
<p>That being said, I do require my research assistants to do well in their course work, especially the courses related to my research. This gives us both a foundation to build on. Furthermore, a research assistantship is extra on top of a student usual studies, and so making sure that they are in good standing – what I would call a B or above average in their major courses – ensures that they are not taking on too much.</p>
</li>
<li>
<p>What do you want students to get out of the experience?</p>
<ul>
<li>The understanding of what research is.</li>
<li>More developed writing and presentation skills.</li>
<li>More refined learning skills.</li>
</ul>
<p>If they learn some cool math and computer science, then that is a bonus.</p>
</li>
<li>
<p>Why do you enjoy working with students outside of class? What do you get out of it?</p>
<p>This is a particularly good question, and until now, I have not really had to utter out loud its answer. There are a number of things I get out of working with students:</p>
<ul>
<li>
<p>Undergraduate research means a lot to me, because I would not be where I am without it, because I would not have found my love for research. When I was an undergraduate I was asked by one of my professors to work with them on undergraduate research. I got to pitch ideas of problems to solve, help solve them, write them up in a paper, and present our results at a conference. This changed my life! If I can give some one else this same experience, and change their life in a positive way, then it is all worth it!</p>
</li>
<li>
<p>Research is <em>not</em> a solo genius alone in a library solving the worlds problems, but research <em>is</em> a social and collaborative effort. I have my unique way of looking at the world, but all of you have your unique way of looking at the world. By coming together to do work on research we combine these unique perspectives, and thus, allows us to look at problems in different ways. This always leads to interesting and ground breaking work.</p>
</li>
<li>
<p>Impact! Students are the longest lasting impact a researcher can have on the field. We introduce students to research, they go off to graduate school and become full-blown researchers, and then generate more results and more students. All of our students will out last any of our papers.</p>
</li>
<li>
<p>Working with students helps us get more results, which is good for our career. In addition, working with students also allows us to get funding that can be used to fund students, but also other aspects of research like travel.</p>
</li>
<li>
<p>Finally, and this is the best kept professor secret, it is fun!! We enjoy it!</p>
</li>
</ul>
</li>
<li>
<p>For you, how can students be better prepared to get started to work with you?</p>
<p>For me, they should take and get a B or better in the courses related to my research:</p>
<ul>
<li>CSCI:3030 Mathematical Structures in Computer Science</li>
<li>CSCI:3300 Programming Languages Concepts</li>
</ul>
<p>There are also other resources I can give students to help them, but they would need to come chat with me first.</p>
</li>
<li>
<p>What does research/ scholarship LOOK like with you?</p>
<p>I start students off with what is usually called a <em>starter project</em>. This is a research project that is a subpart of the overall project I want to work with the student on, but this starter project is a stand-alone component that will introduce the student to key concepts in the overall project that they can approach with nothing but the background acquired from their course work. Furthermore, it is important that this project be self contained – including writing and presenting – that way the student can decide early on whether research is right for them. Once the student has finished the starter project, I give them another more advanced project, and I keep iterating this process until they are confident enough to start generating their own ideas; but by this time, they are off to graduate school. This strategy is the most efficient one that I can think of, and gets the student thinking about research right away.</p>
<p>Timeline wise, the starter project usually takes a semester or two. I try and hire students as early as possible usually in sophomore/junior year so that we have plenty of time to work together. Again, this takes time, but I think it is important not to rush students.</p>
</li>
<li>
<p>How many hours do you expect students to work each week? (Min & Max?)</p>
<p>The university sets the max at twenty hours per week during the semester. I do not set a minimum or a max, but they <em>cannot</em> exceed the twenty hours. I do this so that the student feels comfortable adjusting their time as more pressures are placed on them; e.g., course work, family, sports, etc. As long as the project is moving forward a specific amount of time is not necessary.</p>
</li>
<li>
<p>Do you interview potential students? If so, what kinds of questions might you ask?</p>
<p>I always meet with prospective research students, but rather than an interview, I use this meeting to discuss more about what research is, what area I work in, and their interests and longterm goals. This meeting also gives them an opportunity to ask me questions, because it is just as important for the student to get to know me as it is for me to get to know them.</p>
</li>
<li>
<p>Do you hold team meetings? What happens during them and what kind of preparation is expected?</p>
<p>I have weekly research meetings with each of my students all of which are one-on-one. Since their projects are self contained I do not need to meet with a large group. During these meetings I first address any questions the student my have on their work, discuss the big picture, and set upcoming milestones. I ask my students to keep a detailed research journal that details meeting notes and milestones that way they are aware of everything that is needing done.</p>
<p>If the student is working on their project, then the only preparation I expect is for them the tell me how it is going, and ask questions.</p>
<p>I also encourage my students to ask questions earlier rather than later, and if necessary schedule additional meetings. Throughout the week I try and check in with them, and see how it is going through email or Slack just to make sure there is not anything I can do.</p>
</li>
<li>
<p>Why would you encourage students to participate?</p>
<p>I would encourage students to participate if they are interested in going to graduate school, interested in research, or are just interested in figuring out what research is and if they like it. But, I am also up front about things; for example, I would not encourage students to participate if they do not like writing or presenting, if those are things that they just cannot see themselves doing, then I doubt research would be good for them, and that is okay, because research is not for everyone.</p>
</li>
</ul>
<p>xxxxxx</p>xxxxxxMy Path from Special Education to Assistant Professor2019-08-02T00:00:00+00:002019-08-02T00:00:00+00:00https://blog.metatheorem.org/2019/08/02/Do-I-Belong-Here<p>Update: I’ve had a number of people ask about my support structure along the way. I added a new section called “My Support Structure”, that details how my family has helped me throughout my journey.</p>
<p>I am wrapping up the preparation of my tenure application which is due August 16th. This marks a major milestone in my life, and as a result, has caused me to reflect a bit on my path to where I am today. In doing so I have decided to share my very non-traditional path with everyone. I’ve decided to do this, because I’ve had to overcome a bit of struggle to get here, and I generally feel less alone when I know of others who deal with similar problems, and even more so when those people are generally successful in their life. In this post, I would like to share my story and problems I deal with in the hope that someone out there might feel less alone.</p>
<p>This post is extremely hard for me to write. The things I am going to reveal are things I have kept a secret for a very long time. I think of this post as a bit of therapy for myself as much as it is – hopefully – useful to others.</p>
<p>I am an assistant professor in computer science at <a href="http://www.augusta.edu/">Augusta University</a>, I have Attention-Deficit/Hyper-activity Disorder (ADHD), suffer from anxiety, mild depression, and a major case of imposter syndrome. Anxiety and depression can be linked to ADHD, but my imposter syndrome comes from my history in academics. I think of ADHD as an anxiety disorder, and it often has some negative stigmas associated with it.</p>
<p>Note: Everything I discuss here is from personal experience, and I am not a mental-health expert. Some stuff might be triggering to others, but I try not to do that. Finally, if anyone is struggling and needs someone to talk to, then please do not hesitate to reach out to me, even if we do not know each other. I am always willing to chat.</p>
<p>ADHD affects me in several ways:</p>
<ul>
<li>
<p>It causes bursts of anxiety whenever I have to do something I might not really feel like doing. Consider something mundane like washing the dishes – I hate washing the dishes – whenever I think, I need to get in there and rock these dishes out, a burst of anxiety rushes through my chest all the way up to my head. It’s not like a “oh bummer, I don’t feel like doing it” kind of burst, it’s a “your world is going to end if you move” kind of burst. Take your worst fear and that’s it, but all the time.</p>
</li>
<li>
<p>It makes me very impulsive. I’ll get an idea, and then rush to do it without thinking about the consequences. This caused problems when I was a kid, but I’ve learned to stop and think. I still have problems though, I really need to think before spending money, or eating bad food, or starting new projects.</p>
</li>
<li>
<p>It can cause what I call trapped-in-my-head episodes. This is where I will start to think about something, can be just about anything, and I will space out thinking for minutes or hours. This has seriously derailed things I am working on. I hate when this happens, but I try and catch it and stop myself; however, when I do that, I can get bad anxiety. This also makes it hard staying focused during conversations.</p>
</li>
<li>
<p>It causes me to be easily distracted. This is a daily struggle. Distracting sounds can cause me to loose my focus and even irritate me. Some sounds are painful which can cause me to have to close my eyes until its over; I’m not referring to loud noises that cause everyone do this, but noises most people can ignore. Take an example, one day I was lecturing to my Theory of Computation students, and someone in the hallway was whistling, this fully distracted me to the point that I couldn’t think about anything, but that sound, and I had to pause for a minute before continuing. Some students noticed, and joked about it a bit, but I had to explain that my mind fully focuses on distractions. That distraction caused my mind to focus on just that, and so, lecturing was nearly impossible without force. I managed, but it can be a struggle. One thing I really hate about this effect of ADHD is I can’t hear people in a noisy environment. Take going out to lunch or dinner in a crowded restaurant. I almost always cannot hear the people at my table, because my mind is going a mile a minute due to all of the distractions. This is why I am usually super quiet at the after conference dinners when attending research conferences, because I generally cannot hear anyone. While working I almost always listen to music which helps drown out the distracting noises, but when I need to think about something deep and difficult, then I need silence.</p>
</li>
</ul>
<p>That being said, people with ADHD have a super power! We can get into flow very easily when we are doing something we like. For me, that’s mathematics. I can enter flow so hard that I form tunnel vision where everything in my peripheral vision goes blurry. This is amazing for research! I can really focus on what’s in my head and ignore everything else, but this creates a problem with time, and keeping it. I have to set alarms that go off – scaring the crap out of me – to tell me to go somewhere or do something else.</p>
<p>So that’s how ADHD affects me, and still does, and will continue to for the rest of my life.</p>
<p>However, the story is just getting started. In the rest of this post I would like to share my path to where I am today as a professor in computer science.</p>
<p>I think it’s best if I start from the beginning.</p>
<h2 id="grade-school-through-high-school">Grade School through High School</h2>
<p>I was a handful to say the least as a child. My brothers and I always joke about how our parents survived it. I did not like to be told what to do. If I enjoyed something, then I fully immersed myself in it, but if it was something I was supposed to do, but didn’t enjoy doing it, then good luck! I wasn’t having it. In second grade my parents and teachers began to notice that I was not willing to pay attention, or listen, or do anything other than what I wanted to do. My parents decided to have me checked out by a doctor and I was diagnosed with ADHD, but on top of that they decided that I needed to be put into the special education program, because they also diagnosed me with a learning disability.</p>
<p>Special education in the eighties and early nineties was a program that consisted of students being placed into special classes that were different from what my fellow students called “the normal classes”. Everyone with a learning disability was put into the same class, and so, there was a large range of abilities between the students. I remained in special education until I graduated from high school. I didn’t really understand the difference between my classes and the normal classes until I was in middle school.</p>
<p>Being isolated from the general student population as a teen sucks. I was angry, felt alone, and generally acted out because of it. I hung out with the wrong crowd, and it wasn’t a period of my life I am particularly proud of. However, it was in middle school that I had an epiphany.</p>
<p>Most people do not know this, but I have always wanted to be a scientist. In fact, my Dad and I made my first science project in first grade. We made a magnet out of a battery, wire, and a nail. Then we built a tow truck out of it. I still have it, and I love it!</p>
<p>I kept my aspirations secret, because it was not cool, and I knew it was an impossible dream. Funny story, I used to steal books about robots from the local library, because I didn’t know how to check them out, and I knew no adult would have believed I wanted to read them.</p>
<p>In eighth grade I had a teacher, Mrs. Flannigan, at Edison Junior High School. We had to learn the U.S. constitution in order to graduate and enter high school. I worked hard, and tried my best, when I took the exam with her, she handed it back, and said something along the lines of, see how well you did? You can do great things if you try! I recall going back to my locker and deeply looking at myself and where I was headed. I asked myself, is this you? Is this it? Can I be something more? From that point on I began searching.</p>
<p>I was searching for who I wanted to be. I also started caring, and began questioning everything I did and was asked to do. Special education beginning in middle school doesn’t change from that point until graduation of high school. In fact, I graduated from high school with a middle school education. High school was a breeze because of this, and often, I didn’t have to do anything and I got through. I started to get bored, and a person with ADHD gets really bored, but I was now on my search, and it paid off, only thanks to some luck.</p>
<p>During my sophomore year, or maybe junior year, my high school setup a partnership with <a href="https://icc.edu/">Illinois Central College</a> where a professor came to our high school and taught a course on CISCO Networking. I wanted to take it, but I had to fight to do it. Since it was a normal class the school felt uneasy about me taking it, but I really wanted to. They made me sit in a room and do a bunch of IQ tests, and then they finally allowed me to enroll into the course. That class changed my life, because it introduced me to the world of computing.</p>
<p>I realized that in order to be good at computing I had to be good at other subjects like math, reading, and writing; that is, everything I have been ignoring most of my life. At that point on I started trying very hard on my academics. I begin reading books on my own, and learning new mathematics and computer programming. I really wanted to get out of the special education program, but again, they made that really hard. I fought for the right to take the normal algebra class, and they again, allowed me to based on my performance in the networking course. However, when I joined the course for the first time I had a panic attack, and retreated back to my usual courses. I just didn’t feel ready, but I didn’t give up.</p>
<p>After graduating from high school I decided to enroll at Illinois Central College (ICC) studying information technology (IT), because I wanted to become a system administrator. I graduated from high school with an eighth-grade education, and so I tested into the lowest of the low courses; for example, I tested into remedial mathematics which taught me how to add, subtract, and count money. At ICC I basically redid high school, but I was successful. I also got pretty bored with IT, but as a requirement I had to take a computer science course. I enrolled in Introduction to Computer Science. It was there I fell in love with algorithms and computer programming. I switched to computer science, but the school started canceling all of the computer science courses due to low enrollment.</p>
<h2 id="the-university-years">The University Years</h2>
<p>The thought of going to a university really never crossed my mind. I figured I would just finish ICC and get a job, but they stopped offering upper-division CS courses so something had to give. I was talking to a family member about it, and they just came out and said, why don’t you transfer to a university? They knew I was doing really well, and figured I can get in if I applied. I was super nervous, because my high school, and lower, education was all in special education, but I found out that they only look at your transcripts from your prior college if you went to one after high school; this gave me strength.</p>
<p>I had no idea how to apply to a college. No one in my family went to college, and so I didn’t have anyone to learn from. So I decided to just start asking friends and colleagues at the local supermarket I worked at. One colleague said she went to <a href="https://millikin.edu/">Millikin University</a>. She said, the classes were small – no bigger than 20 – and the professors really cared, because it is a liberal-arts teaching university. This intrigued me, because the thought of being in a huge lecture hall horrified me. I applied to their CS program and got in!</p>
<p>Going to Millikin changed my life. I realized that what I loved about CS was the mathematics and logic that founded it. I became a double major in mathematics, and I excelled far past every expectation I had. In fact, I won the Computer Science Student of the Year award three out of the four years I was there. The professors there helped me far beyond what they know. Without them in my life, I wouldn’t be where I am today.</p>
<p>During my junior year I was trying to figure out what I wanted to do in life, and I kept thinking about how amazing my professor’s lives seemed. They got to do mathematics all day, help students learn, and do research. I did several undergraduate research projects while I was at Millikin, and I got the bug. I presented at a few conferences, and loved it! So I realized that I wanted to be a professor and be able to do research and teach students. Most of all, I wanted to share my love with computer science and mathematics with others, and there is no better way than as a professor.</p>
<p>Several of the professors in the department at Millikin were graduates from the University of Iowa (UIowa), and it so happened that one of them was going to visit UIowa to give a talk while I was looking into graduate schools. So I tagged along, and I loved it. I got to meet with several graduate students, and their love of the school really convinced me that I wanted to be there. Also, it isn’t that far from home, but it will be the furthest away from home I had lived. I did make a mistake, this was the only place I applied. But, luckily, I got in. However, I applied too late to get into the Ph.D. program, and was accepted into the masters program, but I got in, and so my plan was to impress my professors so much, that I could find someone to do research with, and then transfer over to the Ph.D. program. It was a risk, but it paid off.</p>
<p>At UIowa I didn’t know which research area I wanted to focus in, but I knew it had to be theory based. My first semester I took <a href="http://homepage.divms.uiowa.edu/~astump/">Aaron Stump’s</a> Foundations of Programming Languages course. It was like nothing I had ever seen, it contained programming, but from a mathematical perspective, and it contained all the math and logic I love! I was also doing really well in the class. My performance in the course peaked Aaron’s interest, and after he offered me a research assistantship. This assistantship was another significant moment in my life, because not only did Aaron become my Ph.D. advisor, but he become a mentor and friend. We still stay in touch, and I still seek his guidance. I also feel like Aaron took a risk with me, but he may not know that. My passion for the foundations of programming languages helped me push past my personal struggles, and helped me excel, because I was using my ADHD as a strength. Doing what I love is easy, and engrossing.</p>
<p>I managed to do pretty well as a graduate student, and then secured a professorship at Augusta University where I have been for five years now. I’m very thankful I got a position at a place I love. So that’s my path.</p>
<p>I think the biggest take away from this story is I kept pushing and didn’t give up on becoming an academic. I had struggles and still do, but perseverance helps a lot.</p>
<h2 id="my-support-structure">My Support Structure</h2>
<p>Throughout this post I have mentioned several teachers, professors, and mentors who have helped shape my thinking in such a way that has impacted my lives trajectory, but none of them compare to the support I’ve gotten from my family. I don’t see my parents as making the wrong decision to have me put into special education, they were doing as they were advised, and trying to do what they thought was best for their son. I would’ve done the same thing.</p>
<p>I have one trait that has helped a lot with my success. It’s my perseverance, dedication, and work ethic. I get these traits from my parents. My father, Harley Eades Jr, was a mechanic for thirty years or more, and hated it, but decided to quite his job, and open his own powder-coating shop called <a href="https://www.likenewparts.com/">Like New Parts</a> knowing how much of a risk it was, but has managed to create an outstanding business that is highly respected in his community. My whole life he has worked tirelessly for his family to have what he didn’t have growing up. My mother, Judy Eades, has worked in the fast-food industry for over thirty years, she loves her job, and is one of the most hardworking and dedicated people I have met. She began as a third shift biscuit maker and worked her way up to a general manager who has won a ton of awards! They taught me to work hard to get what I want, and that’s what I did.</p>
<p>My parents also supported me through everything. One thing I didn’t mention above about my search for who I wanted to be is that I tried everything! I tried to be a musician, a cowboy, a DJ, a professional skate boarder and roller bladder, a goth (some things never go away), and finally an academic. In middle school I was full punk/goth, and they got me leather jackets, and let me put on makeup, and anything I wanted to do. They wanted us to be happy, and as long as we were not committing any crimes, then they let us do it. They let me be myself, and it has led me to continue to be myself, and I am super grateful for that.</p>
<p>I honestly would not be who I am without my parents. I love them to death, and their support has helped me beyond what I can describe in a blog post.</p>
<p>My brothers and sisters have also greatly supported me. On top of just being there when I needed them they would let me stay at their places when I was at Millikin, and would let me vent when things weren’t going so well, and let me borrow money when I was a poor student. I’m lucky, because my family is super close, and we all care for each other, and all do our best to help each other out. This is a privilege that not everyone has, and having this support structure has had an incredibly positive impact on my life.</p>
<h2 id="imposter-syndrome">Imposter Syndrome</h2>
<p>Given my early educational upbringing I have a very bad case of <a href="https://en.wikipedia.org/wiki/Impostor_syndrome">imposter syndrome</a>. In fact, this post is a bit of therapy for me in this department. I can’t be exposed if everyone already knows.</p>
<p>I think my imposter syndrome comes out the most at conferences. I consider other researchers to be at a higher level than I am or will be, and get super nervous talking with them. It’s all irrational, but I struggle with it a lot.</p>
<p>The QA section at the end of talks is my worst nightmare, because of imposter syndrome, but also ADHD. When I get nervous I can forget stuff pretty quickly, I have said the wrong thing by accident before, or I just lock up and don’t know what do say, or I say things in the wrong order. The fear that I don’t belong in academia or the research community can be so crippling, but I am working on it.</p>
<p>I also struggle socializing at conferences because of this. I have thoughts that I don’t belong, I don’t know enough to have meaningful conversations, and everyone is going to realize I am a crackpot. In the end I shouldn’t care what people think, but a lot rides on peoples perceptions of you in being successful in the research community.</p>
<p>The only way I can get past these problems is by practicing. So going forward I am going to be intentionally socializing more at conferences, and giving as many talks as possible. The more the better, that way I can get past the nerves and think. It’s a work in progress.</p>
<p>My closing thought, if you are struggling, hang in there, and keep pursuing what interests you to the best of your ability.</p>
<p>You matter and are welcome here.</p>Update: I’ve had a number of people ask about my support structure along the way. I added a new section called “My Support Structure”, that details how my family has helped me throughout my journey.Postdoc Opportunity at Augusta University2019-07-25T00:00:00+00:002019-07-25T00:00:00+00:00https://blog.metatheorem.org/2019/07/25/Postdoc-Ad<p>The ForML – formal methods and computational logic – <a href="https://the-au-forml-lab.github.io/index.html">Lab at Augusta University</a> is looking for a postdoc. The start date, length of term, and salary are all negotiable, but the latter will be competitive with respect to US based postdoc salaries.</p>
<p>We are looking for those who are interested in working with myself and/or Dr. Clement Aubert. My current project is called the <a href="https://granule-project.github.io/">Granule Project</a> whose goal is to study the theory and application of graded modalities to type-based programming languages, formal verification, and logic. <a href="http://spots.augusta.edu/caubert/">Dr. Aubert’s project</a> is on the semantics and applications concurrency in programming languages.</p>
<p>I will be attending <a href="https://icfp19.sigplan.org/">ICFP 2019</a> this year, and if anyone who is also attending or who is near Berlin would like to chat about this opportunity, then please do not hesitate to contact me.</p>
<p>The official ad is below, but please send informal inquires to me directly. When officially applying please indicate in your statement of purpose that you are interested in working with the ForML Lab.</p>
<p>Very best,
Harley Eades
Clement Aubert</p>
<h2 id="official-ad">Official Ad</h2>
<p>The formal methods group is led by Paul Attie, Clement Aubert, Harley Eades, and Alexander Schwarzmann. We are interested in state of the art theory and its application. Among our envisaged directions is the application of formal methods to cybersecurity and sophisticated distributed systems (both hardware and software). PhD students who expect to graduate within a year are encouraged to apply.</p>
<p>The formal methods group is located in the Georgia Cyber Center (https://www.gacybercenter.org/) a $100 M facility which is “the single largest investment in a cybersecurity facility by a state government to date.” The Georgia Cyber Center seeks to prove the USA with a “decisive advantage in cyberspace,” by means of a unique industry-government-academia partnership. The Georgia Cyber Center hosts companies involved in cybersecurity work, and together with the US Army Cyber Command headquartered in Fort Gordon, Augusta, (https://www.arcyber.army.mil/) and local academia, provides a unique ecosystem where challenge problems from military and industry feed into academic research, and research results feed back into industry and government practice.</p>
<p>Ms. Regina White
<a href="mailto:RHULL@augusta.edu">RHULL@augusta.edu</a></p>
<p>Please include in your application a CV, a statement of purpose, and contact information for at least three referees.</p>The ForML – formal methods and computational logic – Lab at Augusta University is looking for a postdoc. The start date, length of term, and salary are all negotiable, but the latter will be competitive with respect to US based postdoc salaries.POPL Tutorial: Linear and Graded Modal Types for Fine-Grained Program Reasoning2018-11-08T00:00:00+00:002018-11-08T00:00:00+00:00https://blog.metatheorem.org/2018/11/08/POPL-Tutorial<p>I am pleased to announce that the <a href="https://granule-project.github.io/">Granule Project</a> will have a <a href="https://popl19.sigplan.org/event/popl-2019-tutorialfest-t3-linear-and-graded-modal-types-for-fine-grained-program-reasoning">tutorial</a> during the <a href="https://popl19.sigplan.org/track/POPL-2019-TutorialFest">POPL 2019 TutorialFest</a> this year in Portugal. The purpose of the tutorial is to give an in-depth look at everything the Granule Project is trying to accomplish and it will cover what results we have now, and what we are working on for the future.</p>
<p>The abstract is:</p>
<p>“Linear types have long been heralded as a mechanism for enforcing strict adherence to resource-based protocols, e.g., file handles, operation system APIs, and communication protocols in concurrency. Recent work has seen linear types become an increasingly popular topic in our community, with the rise in the work on session types, with new proposed extensions to Haskell for linear types, and with languages such as Rust and ATS. This tutorial provides an introduction to linear types and a look at the state-of-the-art in type systems extending linear types with graded modal types as a basis for more fine-grained program reasoning as embodied by the Granule programming language. Granule combines linear types with lightweight dependent types and graded modal types, providing a rich type system for enforcing fine-grained resource constraints on top of a functional language in the style of Haskell/ML. This tutorial will cover both the theoretical and practical aspects of linear and graded modal types, with an opportunity to try Granule via exercises as well an introduction to the research context and recent work in the literature.”</p>
<p>The schedule for our tutorial will look something along the lines of the following:</p>
<ol>
<li>(40 minutes) Introduction to linear types (Orchard)
<ul>
<li>Basics of how linear type systems work and are defined;</li>
<li>Examples using Granule and Linear Haskell.</li>
</ul>
</li>
<li>(10 minutes) Tinkering session and help installing Granule (all)
<ul>
<li>Small set of linear typing exercises.</li>
</ul>
</li>
<li>(40 minutes) Fine-grained reasoning via graded modal types and lightweight dependent types (Orchard & Liepelt)
<ul>
<li>Graded modal type theory;</li>
<li>GADTs and indexed types and their interaction with linearity and grading; Examples uses Granule.</li>
</ul>
</li>
<li>(30 minutes) Coffee break + tinkering session (all)
<ul>
<li>More comprehensive set of exercises, exploring some of Granule’s standard Prelude library.</li>
</ul>
</li>
<li>(15 minutes) Feedback on tinkering session, solutions, and further examples. (Liepelt)</li>
<li>(45 minutes) The future: challenges of adding full dependent types to linear, graded modal type systems (Eades).</li>
</ol>
<p>Prerequisite knowledge:</p>
<ul>
<li>Some basic functional programming experience, e.g., ML, OCaml, Haskell, F#.</li>
<li>Basic understanding of type systems, e.g., simple typed lambda-calculus.</li>
</ul>
<p>If you are interested in the next generation programming languages firmly based on substructural logics, then please come to the tutorial, and tell your friends!</p>
<p>I am looking forward to seeing you there.</p>I am pleased to announce that the Granule Project will have a tutorial during the POPL 2019 TutorialFest this year in Portugal. The purpose of the tutorial is to give an in-depth look at everything the Granule Project is trying to accomplish and it will cover what results we have now, and what we are working on for the future.Augusta University is Hiring Computer Scientists!2018-09-19T00:00:00+00:002018-09-19T00:00:00+00:00https://blog.metatheorem.org/2018/09/19/Faculty-Search<p>I am pleased to announce that <a href="https://www.augusta.edu/ccs/">The School of Computer and Cyber Sciences</a> at Augusta University is hiring a lot of computer scientists!</p>
<p>We are looking to fill 12 open positions, and we will keep looking until all of them are filled.</p>
<p>Applications are due by Dec. 1, 2018, but the sooner the better.</p>
<p>The complete job ad can be found <a href="https://jobs.acm.org/jobs/tenure-track-and-tenured-positions-at-the-assistant-associate-and-full-professor-levels-augusta-georgia-30912-109234580-d?contextType=search">here</a>.</p>
<p>The positions are open rank and not specific to any one subfield, and the percent effort between teaching and research will be balanced.</p>
<p>However, <a href="http://spots.augusta.edu/caubert/">Clément Aubert</a> and I are looking to recruit at least one of these positions for our new lab:</p>
<p><a href="http://metatheorem.org/formlab/">The ForML Lab</a></p>
<p>So I want to make this really clear, we are looking for applications from people whose research falls into PL, or formal methods, or computational logic (including categorical logic), or applictions of these areas to other areas of CS.</p>
<h2 id="why-is-this-exciting">Why is this exciting?</h2>
<p>This is a really exciting time at Augusta University. This stream of hiring is all about diversifying our research portfolio in the school.</p>
<p>Basically, we are starting from scratch, and the time is now to <strong>build</strong> within the school.</p>
<p>For example, we established the <a href="http://metatheorem.org/formlab/">ForML Lab</a>, but that is the only research lab in the school currently. For example, suppose you wanted to join us, and you are applying PL to machine learning, then you can <strong>found</strong> a machine learning lab, because we don’t have one.</p>
<p>You will <strong>not just be a COG in the research machine!</strong> You will get a say in all aspects of the school from its operations and curriculum all the way to research. We all have a say here!</p>
<p>We are currently crafting a masters in CS, but a PhD is next, and the new hires will get a say in how we build our PhD program.</p>
<p>Our students need more access to research and in more areas. You will help with that. They need you!</p>
<h2 id="contact-me">Contact Me!</h2>
<p>I am a member of the search committee, and so if you or anyone you know has any questions please <a href="mailto:harley.eades@gmail.com">contact me</a>.</p>
<p>Also, share this post with anyone that might be interested.</p>I am pleased to announce that The School of Computer and Cyber Sciences at Augusta University is hiring a lot of computer scientists!New Papers and Talks2018-07-29T00:00:00+00:002018-07-29T00:00:00+00:00https://blog.metatheorem.org/2018/07/29/New-Papers-and-Talks<p>This summer I went to <a href="http://www.floc2018.org/">FLOC 2018</a> where I gave two talks related to a paper and an extended abstract, but the week before I had the pleasure to visit <a href="https://www.cs.kent.ac.uk/people/staff/dao7/">Dominic Orchard</a> at the <a href="https://www.cs.kent.ac.uk">University of Kent</a> where I gave a talk during the <a href="https://www.cs.kent.ac.uk/research/groups/plas/">PLAS</a> seminar. In this short post I summarize each of these recent contributions.</p>
<p>The abstract and title for my PLAS talk are as follows:</p>
<ul>
<li>
<p><strong>Title</strong>: <em>Advancing Programming-Language Based Formal Methods Research and Education</em></p>
</li>
<li>
<p><strong>Abstract</strong>:
In this talk I will introduce my work in both research and CS education. First, I will present a project applying substructural logics and functional programming to the theory of threat analysis using attack trees. This will include an overview of a new domain-specific programming language called Lina for conducting threat analysis. Then I will present a new project developing substructural dependent type systems that treat modeling resources as a first-class feature of the language. Finally, I will conclude with three new projects in CS education: an overview of a new community outreach program called the Pull CS Back Initiative for primary and secondary CS educators, an overview of a new education programming language called Disco that is used to teach functional programming and formal methods in discrete mathematics, and finally, an overview of a new auto-grading system for the Haskell programming language.</p>
</li>
</ul>
<p>The slides for this talk can be found <a href="http://metatheorem.org/includes/talks/PLAS-Kent-2018/">here</a>.</p>
<p>Following my amazing week at Kent I gave a talk presenting my coauthors, Jiaming Jiang and Aubrey Bryant, and my new paper at the <a href="http://gramsec.uni.lu/">Fifth International Workshop on Graphical Models for Security</a>:</p>
<ul>
<li>
<p><strong>Title</strong>: <em>On Linear Logic, Functional Programming, and Attack Trees</em></p>
</li>
<li>
<p><strong>Abstract</strong>:
This paper has two main contributions. The first is a new linear logical semantics of causal attack trees in four-valued truth tables. Our semantics is very simple and expressive, supporting specializations, and supports the ideal semantics of causal attack trees, and partially supporting the filter semantics of causal attack trees. Our second contribution is Lina, a new embedded, in Haskell, domain specific functional programming language for conducting threat analysis using attack trees. Lina has many benefits over existing tools; for example, Lina allows one to specify attack trees very abstractly, which provides the ability to develop libraries of attack trees, furthermore, Lina is compositional, allowing one to break down complex attack trees into smaller ones that can be reasoned about and analyzed incrementally. Furthermore, Lina supports automatically proving properties of attack trees, such as equivalences and specializations, using Maude and the semantics introduced in this paper.</p>
</li>
</ul>
<p>The paper can be found <a href="http://metatheorem.org/includes/pubs/GraMSec18.pdf">here</a> and the slides for my talk <a href="http://metatheorem.org/includes/talks/GraMSec-2018/">here</a>.</p>
<p>Finally, I had to fill in for Jiaming at the <a href="">Joint Workshop on Linearity & TLLA</a>, because her flight got delayed, but she is the first author and lead of the following paper that is joint work with myself and <a href="http://www.valeriadepaiva.org/">Valeria de Paiva</a>:</p>
<ul>
<li>
<p><strong>Title</strong>: <em>On the Lambek Calculus with an Exchange Modality</em></p>
</li>
<li>
<p><strong>Abstract</strong>:
In this paper we introduce Commutative/Non-Commutative Logic (CNC logic) and two categorical models for CNC logic. This work abstracts Benton’s Linear/Non-Linear Logic [4] by removing the existence of the exchange structural rule. One should view this logic as composed of two logics; one sitting to the left of the other. On the left, there is intuitionistic linear logic, and on the right is a mixed commutative/non-commutative formalization of the Lambek calculus. Then both of these logics are connected via a pair of monoidal adjoint functors. An exchange modality is then derivable within the logic using the adjunction between both sides. Thus, the adjoint functors allow one to pull the exchange structural rule from the left side to the right side. We then give a categorical model in terms of a monoidal adjunction, and then a concrete model in terms of dialectica Lambek spaces.</p>
</li>
</ul>
<p>The paper can be found <a href="http://metatheorem.org/includes/pubs/LINEARITY-TLLA18.pdf">here</a> and the slides <a href="http://metatheorem.org/includes/talks/LINEARITY-TLLA-2018.pdf">here</a>.</p>
<p>I am particularly proud of the last two contributions above. They are the first contributions I have produced in collaboration with both undergraduate students at Augusta University and also visiting Ph.D. students. Jiaming Jiang is a very talented Ph.D. student at North Carolina State University and Aubrey Bryant is also a very talented undergraduate research assistant. I am very lucky to get the chance to work with them. These are also contributions that were produced as a result of my first NSF award which ends in March. I am really happy to be ending that award on a high note.</p>This summer I went to FLOC 2018 where I gave two talks related to a paper and an extended abstract, but the week before I had the pleasure to visit Dominic Orchard at the University of Kent where I gave a talk during the PLAS seminar. In this short post I summarize each of these recent contributions.