|
|
E[G] |- t : T c Ï EÈ G | |
WF(E;Def(G)(c:=t:T))[G] |
|
|
WF(E)[G] i<j | |
E[G] |- Type(i) : Type(j) |
WF(E)[G] (x:T)ÎG or (x:=t:T)ÎG for some t | |
E[G] |- x : T |
WF(E)[G] (c:T) Î E | |
E[G] |- c : T |
E[G] |- T : s1 E[G::(x:T)] |- U : s2 s1Î{Prop, Set} or s2Î{Prop, Set} | |
E[G] |- (x:T)U : s2 |
E[G] |- T : Type(i) E[G::(x:T)] |- U : Type(j) i£ k j £ k | |
E[G] |- (x:T)U : Type(k) |
E[G] |- (x:T)U : s E[G::(x:T)] |- t : U | |
E[G] |- [x:T]t : (x:T)U |
E[G] |- t : (x:U)T E[G] |- u : U | |
E[G] |- (t u) : T{x/u} |
E[G] |- t : T E[G::(x:=t:T)] |- u : U | |
E[G] |- [x:=t]u : U{x/t} |