|  |  | @ -165,7 +165,7 @@ let memmov_foot us dst src len = | 
			
		
	
		
		
			
				
					
					|  |  |  |   let mem_src = (src_dst, arr_src) in |  |  |  |   let mem_src = (src_dst, arr_src) in | 
			
		
	
		
		
			
				
					
					|  |  |  |   let mem_dst_mid_src = [|mem_dst; mem_mid; mem_src|] in |  |  |  |   let mem_dst_mid_src = [|mem_dst; mem_mid; mem_src|] in | 
			
		
	
		
		
			
				
					
					|  |  |  |   let siz_dst_mid_src, us, xs = fresh_var "m" us xs in |  |  |  |   let siz_dst_mid_src, us, xs = fresh_var "m" us xs in | 
			
		
	
		
		
			
				
					
					|  |  |  |   let arr_dst_mid_src, _, xs = fresh_var "a" us xs in |  |  |  |   let arr_dst_mid_src, us, xs = fresh_var "a" us xs in | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   let eq_mem_dst_mid_src = |  |  |  |   let eq_mem_dst_mid_src = | 
			
		
	
		
		
			
				
					
					|  |  |  |     Term.eq_concat (siz_dst_mid_src, arr_dst_mid_src) mem_dst_mid_src |  |  |  |     Term.eq_concat (siz_dst_mid_src, arr_dst_mid_src) mem_dst_mid_src | 
			
		
	
		
		
			
				
					
					|  |  |  |   in |  |  |  |   in | 
			
		
	
	
		
		
			
				
					|  |  | @ -178,14 +178,14 @@ let memmov_foot us dst src len = | 
			
		
	
		
		
			
				
					
					|  |  |  |       (Sh.and_ (Term.lt dst src) |  |  |  |       (Sh.and_ (Term.lt dst src) | 
			
		
	
		
		
			
				
					
					|  |  |  |          (Sh.and_ (Term.lt src (Term.add dst len)) seg)) |  |  |  |          (Sh.and_ (Term.lt src (Term.add dst len)) seg)) | 
			
		
	
		
		
			
				
					
					|  |  |  |   in |  |  |  |   in | 
			
		
	
		
		
			
				
					
					|  |  |  |   (xs, bas, siz, mem_dst, mem_mid, mem_src, foot) |  |  |  |   (us, xs, bas, siz, mem_dst, mem_mid, mem_src, foot) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | (* { d<s * s<d+l * d-[b;m)->⟨s-d,α⟩^⟨l-(s-d),β⟩^⟨s-d,γ⟩ } |  |  |  | (* { d<s * s<d+l * d-[b;m)->⟨s-d,α⟩^⟨l-(s-d),β⟩^⟨s-d,γ⟩ } | 
			
		
	
		
		
			
				
					
					|  |  |  |  *   memmov l d s |  |  |  |  *   memmov l d s | 
			
		
	
		
		
			
				
					
					|  |  |  |  * { d-[b;m)->⟨l-(s-d),β⟩^⟨s-d,γ⟩^⟨s-d,γ⟩ } |  |  |  |  * { d-[b;m)->⟨l-(s-d),β⟩^⟨s-d,γ⟩^⟨s-d,γ⟩ } | 
			
		
	
		
		
			
				
					
					|  |  |  |  *) |  |  |  |  *) | 
			
		
	
		
		
			
				
					
					|  |  |  | let memmov_dn_spec us dst src len = |  |  |  | let memmov_dn_spec us dst src len = | 
			
		
	
		
		
			
				
					
					|  |  |  |   let xs, bas, siz, _, mem_mid, mem_src, foot = |  |  |  |   let us, xs, bas, siz, _, mem_mid, mem_src, foot = | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     memmov_foot us dst src len |  |  |  |     memmov_foot us dst src len | 
			
		
	
		
		
			
				
					
					|  |  |  |   in |  |  |  |   in | 
			
		
	
		
		
			
				
					
					|  |  |  |   let mem_mid_src_src = [|mem_mid; mem_src; mem_src|] in |  |  |  |   let mem_mid_src_src = [|mem_mid; mem_src; mem_src|] in | 
			
		
	
	
		
		
			
				
					|  |  | @ -210,7 +210,7 @@ let memmov_dn_spec us dst src len = | 
			
		
	
		
		
			
				
					
					|  |  |  |  * { s-[b;m)->⟨d-s,α⟩^⟨d-s,α⟩^⟨l-(d-s),β⟩ } |  |  |  |  * { s-[b;m)->⟨d-s,α⟩^⟨d-s,α⟩^⟨l-(d-s),β⟩ } | 
			
		
	
		
		
			
				
					
					|  |  |  |  *) |  |  |  |  *) | 
			
		
	
		
		
			
				
					
					|  |  |  | let memmov_up_spec us dst src len = |  |  |  | let memmov_up_spec us dst src len = | 
			
		
	
		
		
			
				
					
					|  |  |  |   let xs, bas, siz, mem_src, mem_mid, _, foot = |  |  |  |   let us, xs, bas, siz, mem_src, mem_mid, _, foot = | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     memmov_foot us src dst len |  |  |  |     memmov_foot us src dst len | 
			
		
	
		
		
			
				
					
					|  |  |  |   in |  |  |  |   in | 
			
		
	
		
		
			
				
					
					|  |  |  |   let mem_src_src_mid = [|mem_src; mem_src; mem_mid|] in |  |  |  |   let mem_src_src_mid = [|mem_src; mem_src; mem_mid|] in | 
			
		
	
	
		
		
			
				
					|  |  | 
 |