Module Type FORWARD_TRACE.
Declare Module F: FORWARD.
Parameter forward_trace: forall {state: Type} {state_R: Relation state}, traces state.
Parameter forward_trace_with_test: forall {state: Type} {state_R: Relation state} (P: state -> Prop), traces state.

(* Specifications: *)
Axiom singleton_trace_forward: forall {state: Type} {state_R: Relation state} s ms,
F.forward (Terminating s) ms ->
forward_trace (singleton_trace s ms).
Axiom singleton_trace_forward_test: forall {state: Type} {state_R: Relation state} (P: _ -> Prop) s ms,
F.forward (Terminating s) ms ->
P s ->
forward_trace_with_test P (singleton_trace s ms).