(*****************************************************************************)
(*                                                                           *)
(*                     Translation respects PPO                              *)
(*                                                                           *)
(*****************************************************************************)
Ltac ppo := Ordering.ppo Nat.eq_dec Nat.eq_dec constructor_eq_dec.

(* Translation produced an ordered TRS *)
Theorem BC_to_TRS_PPO bc st n s:
let trs := snd (BC_to_TRS bc st) in
arities bc = ok_arities n s →
PPO_prog trs.(rules) (get_rank trs).