Section StepRelations.
Variable A : Type.
Variable trace : Type.
Definition step_relation := A -> A -> list trace -> Prop.
Inductive refl_trans_1n_trace (step : step_relation) : step_relation :=
| RT1nTBase : forall x, refl_trans_1n_trace step x x []
| RT1nTStep : forall x x' x'' cs cs',
step x x' cs ->
refl_trans_1n_trace step x' x'' cs' ->
refl_trans_1n_trace step x x'' (cs ++ cs').

Theorem refl_trans_1n_trace_trans : forall step (a b c : A) (os os' : list trace),
refl_trans_1n_trace step a b os ->
refl_trans_1n_trace step b c os' ->
refl_trans_1n_trace step a c (os ++ os').