-
Notifications
You must be signed in to change notification settings - Fork 0
/
esop-proof-system.tex
75 lines (59 loc) · 1.89 KB
/
esop-proof-system.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
\begin{figure*}
\begin{mathpar}
\infer [L-Atom]
{ {\prop{}} \in {\propenv{}}}
{ \inpropenv {\propenv{}} {\prop{}}
}
\infer [L-True]
{}
{ \inpropenv {\propenv{}} {\topprop{}}}
\infer [L-False]
{ \inpropenv {\propenv{}} {\botprop{}}}
{ \inpropenv {\propenv{}} {\prop{}}}
\infer [L-AndI]
{ \inpropenv {\propenv{}} {\prop{1}}
\\\\
\inpropenv {\propenv{}} {\prop{2}}}
{ \inpropenv {\propenv{}} {\andprop {\prop{1}}{\prop{2}}}}
\infer [L-AndE]
{ \inpropenv {\propenv{}, {\prop{1}}, {\prop{2}}} {\prop{}} }
{ \inpropenv {\propenv{}, {\andprop {\prop{1}}{\prop{2}}}} {\prop{}}}
\infer [L-ImplI]
{ \inpropenv {\propenv{}, {\prop{1}}} {\prop{2}}}
{ \inpropenv {\propenv{}} {\impprop {\prop{1}}{\prop{2}}}}
\infer [L-ImplE]
{ \inpropenv {\propenv{}} {\prop{1}}
\\\\
\inpropenv {\propenv{}} {\impprop {\prop{1}}{\prop{2}}}}
{ \inpropenv {\propenv{}} {\prop{2}}}
\infer [L-OrI]
{ \inpropenv {\propenv{}} {\prop{1}}
\ \text{or}\
\inpropenv {\propenv{}} {\prop{2}}}
{ \inpropenv {\propenv{}} {\orprop {\prop{1}}{\prop{2}}}}
\infer [L-OrE]
{ \inpropenv {\propenv{}, {\prop{1}}}{\prop{}}
\\\\
\inpropenv {\propenv{}, {\prop{2}}}{\prop{}}}
{ \inpropenv {\propenv{}, {\orprop {\prop{1}}{\prop{2}}}}{\prop{}}}
\infer [L-Sub]
{ \inpropenv {\propenv{}} {\isprop {\t{}}{\pth {\pathelem{}} {\x{}}}}
\\
\issubtypein {} {\t{}}{\s{}}
}
{ \inpropenv {\propenv{}} {\isprop {\s{}}{\pth {\pathelem{}} {\x{}}}}}
\infer [L-SubNot]
{ \inpropenv {\propenv{}} {\notprop {\s{}}{\pth {\pathelem{}} {\x{}}}}
\\
\issubtypein {} {\t{}}{\s{}}}
{ \inpropenv {\propenv{}} {\notprop {\t{}}{\pth {\pathelem{}} {\x{}}}}}
\infer [L-Bot]
{ \inpropenv {\propenv{}} {\isprop {\Bot} {\pth {\pathelem{}} {\x{}}}}}
{ \inpropenv {\propenv{}} {\prop{}}}
{\LUpdate}
\\
\text{(The metavariable \propisnotmeta{} ranges over \t{} and \nottype{\t{}} (without variables).)}
\end{mathpar}
\caption{Proof System}
\label{appendix:figure:proofsystem}
\end{figure*}