|
1 \documentclass{article} |
|
2 \usepackage{charter} |
|
3 \usepackage{proof} |
|
4 |
|
5 \begin{document} |
|
6 |
|
7 \section*{Inference Rules} |
|
8 |
|
9 \begin{enumerate} |
|
10 \item Frequently used inference rules: |
|
11 |
|
12 \begin{center} |
|
13 \mbox{\infer{F,\Gamma \vdash F}{}}\medskip |
|
14 |
|
15 \mbox{\infer{\Gamma \vdash F_2} |
|
16 {\Gamma \vdash F_1 \Rightarrow F_2 & \Gamma \vdash F_1}} |
|
17 \hspace{10mm} |
|
18 \mbox{\infer{\Gamma \vdash F_1 \Rightarrow F_2} |
|
19 {F_1, \Gamma \vdash F_2}}\medskip |
|
20 |
|
21 \mbox{\infer{\Gamma \vdash P \;\textit{says}\; F} |
|
22 {\Gamma \vdash F}} |
|
23 \hspace{10mm} |
|
24 \mbox{\infer[\star]{\Gamma \vdash F} |
|
25 {\Gamma \vdash P \;\textit{controls}\; F & \Gamma \vdash P |
|
26 \;\textit{says}\; F}}\medskip |
|
27 |
|
28 \mbox{\infer{\Gamma \vdash P \;\textit{says}\;F_2} |
|
29 {\Gamma \vdash P \;\textit{says}\; (F_1 \Rightarrow F_2) & |
|
30 \Gamma \vdash P \;\textit{says}\;F_1}}\medskip |
|
31 |
|
32 \mbox{\infer{\Gamma \vdash F[x := t]} |
|
33 {\Gamma \vdash \forall x. F}}\medskip |
|
34 |
|
35 \mbox{\infer{\Gamma \vdash F_1 \wedge F_2} |
|
36 {\Gamma \vdash F_1 & \Gamma \vdash F_2}} |
|
37 \hspace{10mm} |
|
38 \mbox{\infer{\Gamma \vdash F_1} |
|
39 {\Gamma \vdash F_1 \wedge F_2}} |
|
40 \hspace{10mm} |
|
41 \mbox{\infer{\Gamma \vdash F_2} |
|
42 {\Gamma \vdash F_1 \wedge F_2}}\medskip |
|
43 |
|
44 \mbox{\infer[\star]{\Gamma \vdash Q\;\textit{says}\; F}{\Gamma \vdash P\mapsto Q & |
|
45 \Gamma \vdash P\;\textit{says}\; F}} |
|
46 \end{center} |
|
47 |
|
48 \item Less frequently used inference rules: |
|
49 |
|
50 \begin{center} |
|
51 \mbox{\infer{\Gamma \vdash slev(P) < slev(Q)} |
|
52 {\Gamma \vdash slev(P) = l_1 & \Gamma \vdash slev(Q) = l_2 & |
|
53 \Gamma \vdash l_1 < l_2}}\medskip |
|
54 |
|
55 \mbox{\infer{\Gamma \vdash slev(P) = slev(Q)} |
|
56 {\Gamma \vdash slev(P) = l & \Gamma \vdash slev(Q) = l}}\medskip |
|
57 |
|
58 \mbox{\infer{\Gamma \vdash l_1 < l_3} |
|
59 {\Gamma \vdash l_1 < l_2 & \Gamma \vdash l_2 < l_3}}\medskip |
|
60 |
|
61 \mbox{\infer[\star]{\Gamma \vdash P \mapsto R}{\Gamma \vdash P\mapsto Q & \Gamma |
|
62 \vdash Q \mapsto R}}\medskip |
|
63 |
|
64 |
|
65 \mbox{\infer{\Gamma \vdash F_1 \vee F_2}{\Gamma \vdash F_1}} |
|
66 \hspace{5mm} |
|
67 \mbox{\infer{\Gamma \vdash F_1 \vee F_2}{\Gamma \vdash F_2}} |
|
68 \hspace{5mm} |
|
69 \mbox{\infer{\Gamma \vdash F_3}{\Gamma \vdash F_1 \vee F_2 & F_1, \Gamma |
|
70 \vdash F_3 & F_2, \Gamma \vdash F_3}}\medskip |
|
71 |
|
72 \mbox{\infer[c\;\mbox{must be a fresh variable}]{\Gamma \vdash \forall |
|
73 x. F}{\Gamma \vdash F[x := c]}}\medskip |
|
74 |
|
75 \mbox{\infer{\Gamma \vdash \textit{true}}{}}\medskip |
|
76 |
|
77 \mbox{\infer[\star]{\Gamma \vdash P\;\textit{controls}\; F}{\Gamma \vdash P\mapsto Q |
|
78 & \Gamma \vdash Q\;\textit{controls} F}} |
|
79 |
|
80 |
|
81 \end{center} |
|
82 \end{enumerate} |
|
83 |
|
84 |
|
85 $\star$ derived rules |
|
86 \end{document} |
|
87 |
|
88 %%% Local Variables: |
|
89 %%% mode: latex |
|
90 %%% TeX-master: t |
|
91 %%% End: |