[ formulas
| nd
| and
| lv
| nd -> and
| and -> lv
| lv -> and
| and -> nd
| reductions
|| minimal linear logic
|| LLF
]
Annotated Natural Deduction to Natural Deductions
%%% Converting annotated natural deduction to natural deductions
%%% in minimal linear logic
%%% Author: Frank Pfenning
i2nd : intro A -> nd A -> type.
e2nd : elim A -> nd A -> type.
%% Coercions
i2nd_e2i : i2nd (e2i E1) D
o- e2nd E1 D.
i2nd_i2e : e2nd (i2e I1) D
o- i2nd I1 D.
%% Multiplicative Connectives
i2nd_impi : i2nd (impi' I1) (impi D1)
o- ({u2:elim A} {h2:nd A}
e2nd u2 h2
-o i2nd (I1 u2) (D1 h2)).
e2nd_impe : e2nd (impe' I1 E2) (impe D1 D2)
o- i2nd I1 D1
o- e2nd E2 D2.
i2nd_timesi : i2nd (timesi' I1 I2) (timesi D1 D2)
o- i2nd I1 D1
o- i2nd I2 D2.
i2nd_timese : i2nd (timese' I1 E2) (timese D1 D2)
o- ({u1:elim A} {h1:nd A}
{u2:elim B} {h2:nd B}
e2nd u1 h1
-o e2nd u2 h2
-o i2nd (I1 u1 u2) (D1 h1 h2))
o- e2nd E2 D2.
i2nd_onei : i2nd (onei') (onei).
i2nd_onee : i2nd (onee' I1 E2) (onee D1 D2)
o- i2nd I1 D1
o- e2nd E2 D2.
%% Additive Connectives
i2nd_withi : i2nd (withi' (I1 , I2)) (withi (D1 , D2))
o- (i2nd I2 D1
& i2nd I2 D2).
e2nd_withe1 : e2nd (withe1' E1) (withe1 D1)
o- e2nd E1 D1.
e2nd_withe2 : e2nd (withe2' E2) (withe2 D2)
o- e2nd E2 D2.
i2nd_topi : i2nd (topi' ()) (topi ())
o- <T>.
% no tope
i2nd_plusi1 : i2nd (plusi1' I1) (plusi1 D1)
o- i2nd I1 D1.
i2nd_plusi2 : i2nd (plusi2' I2) (plusi2 D2)
o- i2nd I2 D2.
i2nd_pluse : i2nd (pluse' (I1 , I2) E3) (pluse (D1 , D2) D3)
o- (({u1:elim A} {h1:nd A}
e2nd u1 h1
-o i2nd (I1 u1) (D1 h1))
&
({u2:elim B} {h2:nd B}
e2nd u2 h2
-o i2nd (I2 u2) (D2 h2)))
o- e2nd E3 D3.
% no zeroi
i2nd_zeroe : i2nd (zeroe' () E1) (zeroe () D1)
o- e2nd E1 D1.
%% Quantifiers
i2nd_foralli : i2nd (foralli' I1) (foralli D1)
o- ({a:i} i2nd (I1 a) (D1 a)).
e2nd_foralle : e2nd (foralle' T E1) (foralle T D1)
o- e2nd E1 D1.
i2nd_existsi : i2nd (existsi' T I1) (existsi T D1)
o- i2nd I1 D1.
i2nd_existse : i2nd (existse' I1 E2) (existse D1 D2)
o- ({a:i}
{u1:elim (A a)} {h1:nd (A a)}
e2nd u1 h1
-o i2nd (I1 a u1) (D1 a h1))
o- e2nd E2 D2.
%% Exponentials
i2nd_!i : i2nd (!i' I1) (!i D1)
<- i2nd I1 D1.
i2nd_!e : i2nd (!e' I1 E2) (!e D1 D2)
o- ({u1!:elim A} {h1!:nd A}
e2nd u1! h1!
-> i2nd (I1 u1!) (D1 h1!))
o- e2nd E2 D2.
[ formulas
| nd
| and
| lv
| nd -> and
| and -> lv
| lv -> and
| and -> nd
| reductions
|| minimal linear logic
|| LLF
]
Frank Pfenning