(**************************************************************)
(*   Copyright Dominique Larchey-Wendling [*]                 *)
(*             Yannick Forster            [+]                 *)
(*                                                            *)
(*                             [*] Affiliation LORIA -- CNRS  *)
(*                             [+] Affiliation Saarland Univ. *)
(**************************************************************)
(*      This file is distributed under the terms of the       *)
(*         CeCILL v2 FREE SOFTWARE LICENSE AGREEMENT          *)
(**************************************************************)
(** ** MM reduces to FRACTRAN *)
Set Implicit Arguments.
(** Given a FRACTRAN program and a starting state, does it terminate *)
Definition FRACTRAN_PROBLEM := (list (nat*nat) * nat)%type.
Definition FRACTRAN_HALTING (P : FRACTRAN_PROBLEM) : Prop.
End MM_HALTING_FRACTRAN_ALT_HALTING.
Section FRACTRAN_ALT_HALTING_HALTING.
Let f : FRACTRAN_ALT_PROBLEM -> FRACTRAN_PROBLEM.
End FRACTRAN_ALT_HALTING_HALTING.

(* Specifications: *)
Corollary MM_FRACTRAN_HALTING : MM_HALTING ⪯ FRACTRAN_HALTING.
Check MM_FRACTRAN_HALTING.