proposition: Lemma dio_move_spec {k k'} (P : dio_polynomial (pos k) (pos (S k'))) v w x : dp_eval (vec_pos (x ## v)) (vec_pos w) (dio_move P) = dp_eval (vec_pos v) (vec_pos (x ## w)) P.
proof: Proof. induction P as [n | n | p | op P1 IH1 P2 IH2]. - reflexivity. - reflexivity. - unfold dio_move. eapply (Fin.caseS' p); reflexivity. - cbn -[vec_pos]; destruct op; congruence. Qed.
imports: List Lia Undecidability.Shared.Libs.DLW.Utils(utils_tac utils_nat) Undecidability.Shared.Libs.DLW.Vec(pos vec) Undecidability.H10(Dio.dio_single H10 Diophantine) Undecidability.MuRec.Util(recalg ra_dio_poly MuRec_computable ra_sem_eq ra_recomp)