Moved the bergamot article to new math delimiters
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
This commit is contained in:
parent
b705aa217c
commit
ffda1d3235
|
@ -36,9 +36,9 @@ but whenever I read a paper, my eyes search for the rules first and foremost.
|
||||||
|
|
||||||
But to those just starting their PL journey, inference rules can be quite cryptic
|
But to those just starting their PL journey, inference rules can be quite cryptic
|
||||||
-- I know they were to me! The first level of difficulty are the symbols: we have
|
-- I know they were to me! The first level of difficulty are the symbols: we have
|
||||||
lots of Greek (\\(\\Gamma\\) and \\(\\Delta\\) for environments, \\(\\tau\\) and perhaps \\(\\sigma\\)
|
lots of Greek (\(\Gamma\) and \(\Delta\) for environments, \(\tau\) and perhaps \(\sigma\)
|
||||||
for types), and the occasional mathematical symbol (the "entails" symbol \\(\\vdash\\) is the most
|
for types), and the occasional mathematical symbol (the "entails" symbol \(\vdash\) is the most
|
||||||
common, but for operational semantics we can have \\(\\leadsto\\) and \\(\\Downarrow\\)).
|
common, but for operational semantics we can have \(\leadsto\) and \(\Downarrow\)).
|
||||||
If you don't know what they mean, or if you're still getting used to them, symbols
|
If you don't know what they mean, or if you're still getting used to them, symbols
|
||||||
in judgements are difficult enough to parse.
|
in judgements are difficult enough to parse.
|
||||||
|
|
||||||
|
@ -49,8 +49,8 @@ Inductive Constructions is a doozy, for instance.
|
||||||
|
|
||||||
{{< figure src="CIC.png" caption="The `match` inference rule from [Introduction to the Calculus of Inductive Constructions](https://inria.hal.science/hal-01094195/document) by Christine Paulin-Mohring" class="fullwide" >}}
|
{{< figure src="CIC.png" caption="The `match` inference rule from [Introduction to the Calculus of Inductive Constructions](https://inria.hal.science/hal-01094195/document) by Christine Paulin-Mohring" class="fullwide" >}}
|
||||||
|
|
||||||
Just look at the metavariables! We have \\(\\textit{pars}\\), \\(t_1\\) through \\(t_p\\),
|
Just look at the metavariables! We have \(\textit{pars}\), \(t_1\) through \(t_p\),
|
||||||
\\(x_1\\) through \\(x_n\\), plain \\(x\\), and at least two other sets of variables. Not
|
\(x_1\) through \(x_n\), plain \(x\), and at least two other sets of variables. Not
|
||||||
only this, but the rule requires at least some familiarity with [GADTs](https://en.wikipedia.org/wiki/Generalized_algebraic_data_type) to understand
|
only this, but the rule requires at least some familiarity with [GADTs](https://en.wikipedia.org/wiki/Generalized_algebraic_data_type) to understand
|
||||||
completely.
|
completely.
|
||||||
|
|
||||||
|
@ -85,8 +85,8 @@ Let me show you both, and try to explain the two. First, here's the wrong way:
|
||||||
{{< /latex >}}
|
{{< /latex >}}
|
||||||
|
|
||||||
This says that the type of adding two _variables_ of type `string` is still `string`.
|
This says that the type of adding two _variables_ of type `string` is still `string`.
|
||||||
Here, \\(\\Gamma\\) is a _context_, which keeps track of which variable has what
|
Here, \(\Gamma\) is a _context_, which keeps track of which variable has what
|
||||||
type. Writing \\(x : \\text{string} \\in \\Gamma\\) is the same as saying
|
type. Writing \(x : \text{string} \in \Gamma\) is the same as saying
|
||||||
"we know the variable `x` has type `string`". The whole rule reads,
|
"we know the variable `x` has type `string`". The whole rule reads,
|
||||||
|
|
||||||
> If the variables `x` and `y` both have type `string`,
|
> If the variables `x` and `y` both have type `string`,
|
||||||
|
@ -301,8 +301,8 @@ expression is rendered__. For one, this is a losing battle: we can't possibly
|
||||||
keep up with all the notation that people use in PL literature, and even if
|
keep up with all the notation that people use in PL literature, and even if
|
||||||
we focused ourselves on only "beginner" notation, there wouldn't be one way to do it!
|
we focused ourselves on only "beginner" notation, there wouldn't be one way to do it!
|
||||||
Different PL papers and texts use slightly different variations of notation.
|
Different PL papers and texts use slightly different variations of notation.
|
||||||
For instance, I render my pairs as \\((a, b)\\), but the very first screenshot
|
For instance, I render my pairs as \((a, b)\), but the very first screenshot
|
||||||
in this post demonstrates a PL paper that writes pairs as \\(\\langle a, b \\rangle\\).
|
in this post demonstrates a PL paper that writes pairs as \(\langle a, b \rangle\).
|
||||||
Neither way (as far as I know!) is right or wrong. But if we hardcode one,
|
Neither way (as far as I know!) is right or wrong. But if we hardcode one,
|
||||||
we lose the ability to draw the other.
|
we lose the ability to draw the other.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user