Proposition BC_to_TRS_arity bc n s st:
  let trs := snd (BC_to_TRS bc st) in
  arities bc = ok_arities n s →
  max_arity_prog trs.(rules) ≤ trs.(maxar).

(* Specifications: *)
Theorem BC_to_TRS_wf bc n s st: let trs := snd (BC_to_TRS bc st) in arities bc = ok_arities n s → wf_prog trs.(maxar) trs.(rules).
Lemma BC_to_TRS_state_bounds bc st: let (st',trs) := BC_to_TRS bc st in st+1 = trs.(first) ∧ trs.(last) = st'.
Lemma BC_to_TRS_first bc st: (snd (BC_to_TRS bc st)).(first) = st+1.
Lemma BC_to_TRS_last bc st: (snd (BC_to_TRS bc st)).(last) = fst (BC_to_TRS bc st).
Lemma BC_to_TRS_first_le_last bc st: let trs := snd (BC_to_TRS bc st) in trs.(first) ≤ trs.(last).
Lemma BC_to_TRS_main_is_last bc st: let trs := snd (BC_to_TRS bc st) in trs.(main) = trs.(last).
Lemma BC_to_TRS_rhs_funcs_defined bc st: let trs := snd (BC_to_TRS bc st) in incl (all_rhs_funcs trs.(rules)) (all_lhs_funcs trs).
(* *) (*****************************************************************************) Lemma BC_to_TRS_pos_
(* maxrank is indeed a bound on the ranks of fun *) Lemma BC_to_TRS_maxrank bc st:
Qed. Lemma BC_to_TRS_maxrank_is_max_rank_error
(* main always has the highest rank *) Lemma BC_to_TRS_main_has_maxrank bc st n s: let trs := snd (BC_to_TRS bc st) in
Qed. Lemma BC_to_TRS_rank_main_aux f bc st inf n s: let trs := snd (BC_to_TRS bc st) in arities bc = ok_arities n s
(* main is the only function with maximum rank *) Lemma BC_to_TRS_main_has_unique_max_rank bc n s: arities bc = ok_arities n s → ∀ st f,