(* Final Theorem *)
Variable rule_default:rule.

(* Specifications: *)
Theorem BC_to_TRS_P_criterion bc st no sa:
forall i s p c f lv d v,
let trs := snd (BC_to_TRS bc st) in
let t := fapply f lv in
let pi := cbv_update i s p c t d v in
arities bc = ok_arities no sa → f ∈ all_lhs_funcs trs →
wf Nat.eq_dec Nat.eq_dec constructor_eq_dec rule_default trs.(rules) trs.(maxar) pi →
cache_bounded variable function constructor qic (qif trs) c →
size pi ≤ global_bound variable function constructor trs.(rules) trs.(maxar) trs.(maxrank) mcs (qif trs) f lv c.