1 | 31. i: . i < ||v||  [[v[i]]] e1 s1 a tr = [[v1[i]]] e1 s1 s2 a tr [[v2[i]]] rho 32. i: . i < ||v1||  v2[i] term_types(ds;da;de;v1[i]) 33. i: . i < ||v||  v2[i] term_types(ds;da;de;v[i]) 34. ||v2||+1 = ||v1||+1 & ( i: . i < ||v1||+1  [u2 / v2][i] term_types(ds;da;de;[u1 / v1][i])) 35. ||v2||+1 = ||v||+1 & ( i: . i < ||v||+1  [u2 / v2][i] term_types(ds;da;de;[u / v][i])) 36. f:reduce( s,m. [[s]] rho m;Prop;v2).
( i: ||v||. trace_consistent(rho;daa;tr.proj;v[i]))

( i: ||v1||. trace_consistent(rho;daa;tr.proj;v1[i]))

||v2|| = ||v|| & ( i: . i < ||v||  v2[i] term_types(ds;da;de;v[i]))

||v2|| = ||v1|| & ( i: . i < ||v1||  v2[i] term_types(ds;da;de;v1[i]))

( i: . i < ||v||  [[v[i]]] e1 s1 a tr = [[v1[i]]] e1 s1 s2 a tr [[v2[i]]] rho)

(list_accum(x,t.x([[t]] e1 s1 a tr);f;v)  list_accum(x,t.x([[t]] e1 s1 s2 a tr);f;v1)) 37. [[u]] e1 s1 a tr = [[u1]] e1 s1 s2 a tr [[u2]] rho list_accum(x,t.x([[t]] e1 s1 a tr);f([[u]] e1 s1 a tr);v)  list_accum(x,t.x([[t]] e1 s1 s2 a tr);f([[u1]] e1 s1 s2 a tr);v1) |