2 | 15. f: reduce( s,m. [[s]] rho m;Prop;[hd(ls) / tl(ls)]) 16. ||ls|| = ||v||+1  17. i: . i < ||v||+1  ls[i] term_types(ds;st1;de;[u / v][i]) 18. 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 a tr);f;v) Prop 19. f:reduce( s,m. [[s]] rho m;Prop;tl(ls)).
||tl(ls)|| = ||v|| & ( i: . i < ||v||  tl(ls)[i] term_types(ds;st1;de;v[i])) 
list_accum(x,t.x([[t]] e1 s a tr);f;v) Prop f([[u]] e1 s a tr) reduce( s,m. [[s]] rho m;Prop;tl(ls)) |