From Undecidability.Shared.Libs.DLW
  Require Import utils list_bool pos vec sss compiler_correction.

From Undecidability.StackMachines
  Require Import bsm_defs.

From Undecidability.MinskyMachines.MMA
  Require Import mma_defs mma_utils_bsm bsm_mma.

From Undecidability.Synthetic
  Require Import Definitions ReducibilityFacts.

Theorem reduction n : BSMn_HALTING n @MMA_HALTING (1+n).
Proof.
  apply reduces_dependent; exists.
  intros (i,(P,v)).
  exists (gc_code (bsm_mma_compiler _) (i, P) 1, 0##vec_map stack_enc v).
  apply (compiler_t_term_equiv (bsm_mma_compiler n) (i,P) 1); simpl; split; auto.
  intros; rew vec.
Qed.