Section ra_mm_comp.

Theorem ra_mm_compiler (n : nat) (f : recalg n) :
{ m & { P : list (mm_instr (pos (n+S m)))
|  (forall x v, ⟦f⟧ v x -> (1,P) /v/ (1,vec_app v vec_zero) ->> (1+length P,vec_app v (x##vec_zero)))
/\ (forall v, (1,P) /v/ (1,vec_app v vec_zero) ↓ -> ex (⟦f⟧ v)) } }.