-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpl-theory.tex
77 lines (60 loc) · 2.32 KB
/
pl-theory.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
\DeclareMathSymbol{\qm}{\mathalpha}{operators}{"3F}
% General
\newcommand{\code}[1]{\texttt {#1}}
\newcommand{\highlight}[1]{\colorbox{yellow}{#1}}
% Logic
\newcommand{\turns}{\vdash}
% PL
\newcommand{\cast}[2]{\langle #1 \hookrightarrow #2 \rangle ~}
\newcommand{\erasetp}[1]{\lceil{#1}\rceil}
\newcommand{\static}{\mathcal{S}}
\newcommand{\gradual}{\mathcal{G}}
\newcommand{\gsubst}{S^\gradual}
\newcommand{\ssubst}{S^\static}
\newcommand{\psubst}{S^\mathcal{P}}
\newcommand{\unknown}{\mathit{\qm}}
\newcommand{\subst}[2]{\lbrack #1 / #2 \rbrack}
\newcommand{\concatOp}{+\kern-1.3ex+\kern0.8ex} % http://tex.stackexchange.com/a/4195/73122
\newcommand{\mask}[2]{{#1}|_{#2}}
\newcommand{\kw}[1]{\operatorname{\mathbf{#1}}}
\newcommand{\tsub}{<:}
\newcommand{\agtconssub}{~\widetilde{\tsub}~}
\newcommand{\lessp}{\sqsubseteq}
\newcommand{\nat}{\mathsf{Int}}
\newcommand{\bool}{\mathsf{Bool}}
\newcommand{\pbccons}{\prec}
% Constructors
\newcommand{\syndef}{$::=$}
\newcommand{\for}[2]{\forall #1. \, #2}
\newcommand{\lam}[2]{\lambda #1. \, #2}
\newcommand{\app}[2]{#1 \; #2}
\newcommand{\blam}[2]{\Lambda #1. #2}
\newcommand{\tapp}[2]{#1 \; #2}
\newcommand{\pair}[2]{\langle #1, #2 \rangle}
\newcommand{\inter}[2]{#1 \,\&\, #2}
\newcommand{\mer}[2]{#1 \, ,, \, #2}
\newcommand{\proj}[2]{{\code{proj}}_{#1} #2}
\newcommand{\ctx}[2]{#1\left\{#2\right\}}
\newcommand{\bra}[1]{\llbracket #1 \rrbracket}
\newcommand{\recordType}[2]{\{ #1 : #2 \}}
\newcommand{\recordCon}[2]{\{ #1 = #2 \}}
\newcommand{\ifThenElse}[3]{\code{if} \; #1 \; \code{then} \; #2 \; \code{else} \; #3}
\newcommand{\defeq}{\triangleq}
\newcommand{\logeq}[2]{#1 \backsimeq_{log} #2}
\newcommand{\kleq}[2]{#1 \backsimeq #2}
\newcommand{\ctxeq}[3]{#1 \backsimeq_{ctx} #2 : #3}
\newcommand{\ctxappro}[3]{#1 \preceq_{ctx} #2 : #3}
\newcommand{\reduce}{\Downarrow}
\newcommand{\diverge}{\Uparrow}
\newcommand{\blamev}{\mathsf{blame}}
\newcommand{\aeq}{\equiv_\alpha}
\newcommand{\stepn}{\longmapsto^*}
\newcommand{\step}{\longmapsto}
\newcommand{\cmark}{\ding{51}}%
\newcommand{\xmark}{\ding{55}}%
\newcommand{\hl}[2][gray!40]{\colorbox{#1}{#2}}
\newcommand{\hll}[2][gray!40]{\colorbox{#1}{#2}}
\newcommand{\hlmath}[2][gray!40]{\colorbox{#1}{$\displaystyle#2$}}
\newcommand{\rulehl}[2][gray!40]{\colorbox{#1}{$\displaystyle#2$}}
\newcommand{\transto}[2][gray!40]{%
\colorbox{#1}{$\displaystyle#2$}}