A.2.6 Coproduct types
*[right=+-form]
Î âĒA : ð° _i
Î âĒB : ð° _i
Î âĒA+B : ð° _i
\inferrule*[right=+-intro1]
Î âĒA : ð° _i
Î âĒB : ð° _i
Î âĒa : A
Î âĒððð
(a) : A+B
\inferrule*[right=+-intro2]
Î âĒA : ð° _i
Î âĒB : ð° _i
Î âĒb : B
Î âĒððð (b) : A+B
\inferrule*[right=+-elim]
Î,z : (A+B) âĒC : ð° _i
Î,x : A âĒc : C[ððð
(x)/z]
Î,y : B âĒd : C[ððð (y)/z]
Î âĒe : A+B
Î âĒind_A+B(z.C,x.c,y.d,e) : C[e/z]
\inferrule*[right=+-comp1]
Î,z : (A+B) âĒC : ð° _i
Î,x : A âĒc : C[ððð
(x)/z]
Î,y : B âĒd : C[ððð (y)/z]
Î âĒa : A
Î âĒind_A+B(z.C,x.c,y.d,ððð
(a)) âĄc[a/x] : C[ððð
(a)/z]
\inferrule*[right=+-comp2]
Î,z : (A+B) âĒC : ð° _i
Î,x : A âĒc : C[ððð
(x)/z]
Î,y : B âĒd : C[ððð (y)/z]
Î âĒb : B
Î âĒind_A+B(z.C,x.c,y.d,ððð (b)) âĄd[b/y] : C[ððð (b)/z]
In ððð―A+B, z is bound in C, x is bound in c, and y is bound in
d.
Title | A.2.6 Coproduct![]() |
---|---|
\metatable |