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

Lemma same_rank_same_ppo_rule_iff r rk rk': (* replace same_rank_same_ppo_rule in Ordering *)
(rk (lhs_func r) = rk' (lhs_func r)) →
(∀ f : function, f ∈ (rhs_funcs r) → rk f = rk' f) →
PPO_rule rk r ↔ PPO_rule rk' r.