proposition: Lemma CASE_LAM_SUBST_spec n vs s t xts xss p w offset : (offset, CASE_LAM_SUBST p offset) // (offset, Vector.append w (0##enc_closure (closure xss s)##n##enc_vs vs##enc_cs xts##enc_term t##vec_nil)) ->> (p, Vector.append w (0##0##0##enc_vs vs##0##enc_closure (closure ((closure xts (lam t)) :: xss) s)##vec_nil)).
proof: Proof. rewrite ?vec_simpl. apply: (compose_sss_compute_trans 0). { by apply: ZERO_spec. } rewrite ?vec_simpl. apply: (compose_sss_compute_trans 1). { by apply: INC_spec. } rewrite ?vec_simpl. apply: (compose_sss_compute_trans 2). { by apply: PACK_spec. } rewrite ?vec_simpl. apply: (compose_sss_compute_trans 3). { by apply: PACK_spec. } rewrite ?vec_simpl. apply: (compose_sss_compute_trans 4). { by apply: UNPACK_spec. } rewrite ?vec_simpl. apply: (compose_sss_compute_trans 5). { by apply: PACK_spec. } rewrite ?vec_simpl. apply: (compose_sss_compute_trans 6). { by apply: PACK_spec. } rewrite ?vec_simpl. apply: (compose_sss_compute_trans 7). { by apply: MOVE_spec. } rewrite ?vec_simpl. apply: (compose_sss_compute_trans 8). { by apply: JMP_spec. } rewrite ?vec_simpl. by apply: sss_compute_refl. Qed.
imports: Undecidability(MinskyMachines.MM MinskyMachines.MMA L.L) Undecidability.Shared.Libs.DLW(Vec.pos Vec.vec Code.sss Code.subcode) Undecidability(MinskyMachines.Util.MMA_pairing L.AbstractMachines.wCBV) PeanoNat List Lia Wf_nat ssreflect ssrbool ssrfun