Exact expanded PA statement
forall r s n p a. (forall frm_index_bounded_map. (exists frm_gap_bounded_map_index_bound. frm_gap_bounded_map_index_bound + S frm_index_bounded_map = n) -> (exists frm_residue_bounded_map_result. (exists frm_gap_bounded_map_result_residue_bound. frm_gap_bounded_map_result_residue_bound + S frm_residue_bounded_map_result = n) /\ ((((exists ff_h_frm_bounded_map_result_decoded. ff_h_frm_bounded_map_result_decoded + S (frm_residue_bounded_map_result) = S ((S (frm_index_bounded_map)) * s)) /\ exists ff_q_frm_bounded_map_result_decoded. r = ff_q_frm_bounded_map_result_decoded * S ((S (frm_index_bounded_map)) * s) + (frm_residue_bounded_map_result))) /\ (exists frm_mod_left_bounded_map_result_congruence frm_mod_right_bounded_map_result_congruence. a * S frm_index_bounded_map + p * frm_mod_left_bounded_map_result_congruence = S frm_residue_bounded_map_result + p * frm_mod_right_bounded_map_result_congruence)))) -> (forall fp_i_bounded_result. (exists fp_gap_bounded_result_index. fp_gap_bounded_result_index + S fp_i_bounded_result = n) -> exists fp_value_bounded_result. ((((exists ff_h_bounded_result_entry. ff_h_bounded_result_entry + S (fp_value_bounded_result) = S ((S (fp_i_bounded_result)) * s)) /\ exists ff_q_bounded_result_entry. r = ff_q_bounded_result_entry * S ((S (fp_i_bounded_result)) * s) + (fp_value_bounded_result))) /\ (exists fp_gap_bounded_result_value. fp_gap_bounded_result_value + S fp_value_bounded_result = n)))Structural proof guide
Generated structural guide
The canonical multiplication-residue index map is bounded.
This root lemma is proved directly from the PA rules and the hypotheses introduced by its statement.
The proof proceeds by case analysis (3), intermediate claims (1).
Referenced ingredients
none
Proof neighborhood
Direct dependencies
none
Direct dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v16 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
- 0001
intro r - 0002
intro s - 0003
intro n - 0004
intro p - 0005
intro a - 0006
intro hmap - 0007
intro i - 0008
intro hi - 0009
have hentry : exists frm_residue_bounded_at_i. (exists frm_gap_bounded_at_i_residue_bound. frm_gap_bounded_at_i_residue_bound + S frm_residue_bounded_at_i = n) /\ ((((exists ff_h_frm_bounded_at_i_decoded. ff_h_frm_bounded_at_i_decoded + S (frm_residue_bounded_at_i) = S ((S (i)) * s)) /\ exists ff_q_frm_bounded_at_i_decoded. r = ff_q_frm_bounded_at_i_decoded * S ((S (i)) * s) + (frm_residue_bounded_at_i))) /\ (exists frm_mod_left_bounded_at_i_congruence frm_mod_right_bounded_at_i_congruence. a * S i + p * frm_mod_left_bounded_at_i_congruence = S frm_residue_bounded_at_i + p * frm_mod_right_bounded_at_i_congruence)) - 0010
specialize hmap i - 0011
apply hmap - 0012
exact hi - 0013
cases hentry - 0014
cases hentry_witness - 0015
cases hentry_witness_right - 0016
exists x - 0017
split - 0018
exact hentry_witness_right_left - 0019
exact hentry_witness_left