Section mm_term_ind.
Variables (n : nat) (P : nat*list (mm_instr n)) (se : nat * vec nat n)
(Q : nat * vec nat n -> Prop).
Hypothesis (HQ0 : out_code (fst se) P -> Q se)
(HQ1 : forall i ρ v j w,    (i,ρ::nil) <sc P
-> ρ // (i,v) -1> (j,w)
-> P // (j,w) ~~> se
-> Q (j,w)
-> Q (i,v)).

(* Specifications: *)
Theorem mm_term_ind s : P // s ~~> se -> Q s.
End mm_term_ind.