Definition PPO_prog : Prop :=
forall r, In r prog -> PPO_rule r.

Lemma product_trans (A: Type) (R : A -> A -> Prop) lt1 lt2 lt3 :
(forall t1 t2 t3, In t1 lt1 -> In t2 lt2 -> In t3 lt3 -> R t1 t2 -> R t2 t3 -> R t1 t3) ->
product R lt1 lt2 -> product R lt2 lt3 -> product R lt1 lt3.