Inductive MetaState (state: Type): Type :=
  | Error: MetaState state
  | NonTerminating: MetaState state
  | Terminating: state -> MetaState state.Inductive MetaState (state: Type): Type :=
  | Error: MetaState state
  | NonTerminating: MetaState state
  | Terminating: state -> MetaState state.Inductive MetaState (state: Type): Type :=
  | Error: MetaState state
  | NonTerminating: MetaState state
  | Terminating: state -> MetaState state.Inductive MetaState (state: Type): Type :=
  | Error: MetaState state
  | NonTerminating: MetaState state
  | Terminating: state -> MetaState state.Inductive forward'
          {state: Type}
          {state_R: Relation state}:
  MetaState state -> MetaState state -> Prop :=
| forward_Error:
    forward' Error Error
| forward_NonTerminating:
    forward' NonTerminating NonTerminating
| forward_Terminating_NonTerminating:
    forall x, forward' (Terminating x) NonTerminating
| forward_Terminating:
    forall x y, x <= y -> forward' (Terminating x) (Terminating y).Inductive forward'
          {state: Type}
          {state_R: Relation state}:
  MetaState state -> MetaState state -> Prop :=
| forward_Error:
    forward' Error Error
| forward_NonTerminating:
    forward' NonTerminating NonTerminating
| forward_Terminating_NonTerminating:
    forall x, forward' (Terminating x) NonTerminating
| forward_Terminating:
    forall x y, x <= y -> forward' (Terminating x) (Terminating y).Inductive forward'
          {state: Type}
          {state_R: Relation state}:
  MetaState state -> MetaState state -> Prop :=
| forward_Error:
    forward' Error Error
| forward_NonTerminating:
    forward' NonTerminating NonTerminating
| forward_Terminating_NonTerminating:
    forall x, forward' (Terminating x) NonTerminating
| forward_Terminating:
    forall x y, x <= y -> forward' (Terminating x) (Terminating y).Inductive forward'
          {state: Type}
          {state_R: Relation state}:
  MetaState state -> MetaState state -> Prop :=
| forward_Error:
    forward' Error Error
| forward_NonTerminating:
    forward' NonTerminating NonTerminating
| forward_Terminating_NonTerminating:
    forall x, forward' (Terminating x) NonTerminating
| forward_Terminating:
    forall x y, x <= y -> forward' (Terminating x) (Terminating y).Inductive forward'
          {state: Type}
          {state_R: Relation state}:
  MetaState state -> MetaState state -> Prop :=
| forward_Error:
    forward' Error Error
| forward_NonTerminating:
    forward' NonTerminating NonTerminating
| forward_Terminating_NonTerminating:
    forall x, forward' (Terminating x) NonTerminating
| forward_Terminating:
    forall x y, x <= y -> forward' (Terminating x) (Terminating y).Definition forward {state: Type} {state_R: Relation state} := forward'.Inductive forward'
          {state: Type}
          {state_R: Relation state}:
  MetaState state -> MetaState state -> Prop :=
| forward_Error:
    forward' Error Error
| forward_NonTerminating:
    forward' NonTerminating NonTerminating
| forward_Terminating:
    forall x y, x <= y -> forward' (Terminating x) (Terminating y).Inductive forward'
          {state: Type}
          {state_R: Relation state}:
  MetaState state -> MetaState state -> Prop :=
| forward_Error:
    forward' Error Error
| forward_NonTerminating:
    forward' NonTerminating NonTerminating
| forward_Terminating:
    forall x y, x <= y -> forward' (Terminating x) (Terminating y).Inductive forward'
          {state: Type}
          {state_R: Relation state}:
  MetaState state -> MetaState state -> Prop :=
| forward_Error:
    forward' Error Error
| forward_NonTerminating:
    forward' NonTerminating NonTerminating
| forward_Terminating:
    forall x y, x <= y -> forward' (Terminating x) (Terminating y).Inductive forward'
          {state: Type}
          {state_R: Relation state}:
  MetaState state -> MetaState state -> Prop :=
| forward_Error:
    forward' Error Error
| forward_NonTerminating:
    forward' NonTerminating NonTerminating
| forward_Terminating:
    forall x y, x <= y -> forward' (Terminating x) (Terminating y).Definition forward {state: Type} {state_R: Relation state} := forward'.

(* Specifications: *)
Lemma Total2Partial_forward {state: Type} {state_R: Relation state}: forall ms1 ms2, Total.forward ms1 ms2 -> Partial.forward ms1 ms2.