A.2.6 Coproduct types
*[right=-form]
Î âĒA : _i
Î âĒB : _i
Î âĒA+B : _i
\inferrule*[right=-intro]
Î âĒA : _i
Î âĒB : _i
Î âĒa : A
Î âĒ (a) : A+B
\inferrule*[right=-intro]
Î âĒ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=-comp]
Î,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=-comp]
Î,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 , is bound in , is bound in , and is bound in
.
Title | A.2.6 Coproduct types |
---|---|
\metatable |