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

Lemma map_BC_to_TRS_same_rank_same_ppo_rule bcl st r rk rk':
let trsl := snd ((lm_to_ml (map BC_to_TRS bcl)) st) in
(∀ ru, ru ∈ get_rules trsl → rk (lhs_func ru) = rk' (lhs_func ru)) →
r ∈ get_rules trsl → PPO_rule rk r → PPO_rule rk' r.