1 | 11. l: Term List 12. i: 0. trace_consistent(rho;da;tr.proj;nil[i]) ls:SimpleType List, f:reduce( s,m. [[s]] rho m;Prop;ls).
||ls|| = 0 & ( i: . i < 0  ls[i] term_types(ds;st1;de;nil[i]))  f Prop |
2 | 11. l: Term List 12. u: Term 13. v: Term List 14. ( i: ||v||. trace_consistent(rho;da;tr.proj;v[i])) 
( ls:SimpleType List, f:reduce( s,m. [[s]] rho m;Prop;ls).
||ls|| = ||v|| & ( i: . i < ||v||  ls[i] term_types(ds;st1;de;v[i])) 
list_accum(x,t.x([[t]] e1 s s' a tr);f;v) Prop) 15. i: (||v||+1). trace_consistent(rho;da;tr.proj;[u / v][i]) ls:SimpleType List, f:reduce( s,m. [[s]] rho m;Prop;ls).
||ls|| = ||v||+1 & ( i: . i < ||v||+1  ls[i] term_types(ds;st1;de;[u / v][i])) 
list_accum(x,t.x([[t]] e1 s s' a tr);f([[u]] e1 s s' a tr);v) Prop |
3 | 11. l: Term List 12. u: Term 13. v: Term List 14. ( i: ||v||. trace_consistent(rho;da;tr.proj;v[i])) 
( ls:SimpleType List, f:reduce( s,m. [[s]] rho m;Prop;ls).
||ls|| = ||v|| & ( i: . i < ||v||  ls[i] term_types(ds;st1;de;v[i])) 
list_accum(x,t.x([[t]] e1 s s' a tr);f;v) Prop) 15. i: (||v||+1) i < ||[u / v]|| |