Module KnotInput <: KNOT_INPUT__HERED_PROP_OTH_REL.
Definition F := program.
Definition fmap A B (f:A->B) := map_fmap _ _ (fmap_instr f).
Implicit Arguments fmap [A B].
Definition Rel A (x y:F A) : Prop := x = y.
Definition Rel_unfmap : forall A B (f:A->B) x y,
Rel B (fmap f x) y ->
exists y', Rel A x y' /\ fmap f y' = y.
Definition other := (store * terminationMeasure)%type.
Definition ORel (x y:other) : Prop :=
store_incr (fst x) (fst y) /\
termMeasure_incr (snd x) (snd y).

Lemma ORel_trans : transitive other ORel.