Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Exact expanded PA statement
forall r s b c z d n p q. (forall fpr_i_fra fpr_j_fra fpr_x_fra. (exists fpr_h_fra. fpr_h_fra + S fpr_i_fra = S n) -> (((exists ff_h_fra_map. ff_h_fra_map + S (fpr_j_fra) = S ((S (fpr_i_fra)) * s)) /\ exists ff_q_fra_map. r = ff_q_fra_map * S ((S (fpr_i_fra)) * s) + (fpr_j_fra))) -> (((exists ff_h_fra_source. ff_h_fra_source + S (fpr_x_fra) = S ((S (fpr_j_fra)) * c)) /\ exists ff_q_fra_source. b = ff_q_fra_source * S ((S (fpr_j_fra)) * c) + (fpr_x_fra))) -> (((exists ff_h_fra_target. ff_h_fra_target + S (fpr_x_fra) = S ((S (fpr_i_fra)) * d)) /\ exists ff_q_fra_target. z = ff_q_fra_target * S ((S (fpr_i_fra)) * d) + (fpr_x_fra)))) -> (((exists ff_h_frm. ff_h_frm + S (n) = S ((S (n)) * s)) /\ exists ff_q_frm. r = ff_q_frm * S ((S (n)) * s) + (n))) -> (exists ff_u_frs ff_v_frs. ((((exists ff_h_frs_start. ff_h_frs_start + S (0) = S ((S (0)) * ff_v_frs)) /\ exists ff_q_frs_start. ff_u_frs = ff_q_frs_start * S ((S (0)) * ff_v_frs) + (0))) /\ ((((exists ff_h_frs_terminal. ff_h_frs_terminal + S (p) = S ((S (S n)) * ff_v_frs)) /\ exists ff_q_frs_terminal. ff_u_frs = ff_q_frs_terminal * S ((S (S n)) * ff_v_frs) + (p))) /\ forall ff_i_frs. (exists ff_lt_frs_bound. ff_lt_frs_bound + S ff_i_frs = S n) -> exists ff_a_frs ff_r_frs ff_s_frs. ((((exists ff_h_frs_summand. ff_h_frs_summand + S (ff_a_frs) = S ((S (ff_i_frs)) * c)) /\ exists ff_q_frs_summand. b = ff_q_frs_summand * S ((S (ff_i_frs)) * c) + (ff_a_frs))) /\ ((((exists ff_h_frs_partial. ff_h_frs_partial + S (ff_r_frs) = S ((S (ff_i_frs)) * ff_v_frs)) /\ exists ff_q_frs_partial. ff_u_frs = ff_q_frs_partial * S ((S (ff_i_frs)) * ff_v_frs) + (ff_r_frs))) /\ ((((exists ff_h_frs_successor. ff_h_frs_successor + S (ff_s_frs) = S ((S (S ff_i_frs)) * ff_v_frs)) /\ exists ff_q_frs_successor. ff_u_frs = ff_q_frs_successor * S ((S (S ff_i_frs)) * ff_v_frs) + (ff_s_frs))) /\ ff_s_frs = ff_r_frs + ff_a_frs)))))) -> (exists ff_u_frt ff_v_frt. ((((exists ff_h_frt_start. ff_h_frt_start + S (0) = S ((S (0)) * ff_v_frt)) /\ exists ff_q_frt_start. ff_u_frt = ff_q_frt_start * S ((S (0)) * ff_v_frt) + (0))) /\ ((((exists ff_h_frt_terminal. ff_h_frt_terminal + S (q) = S ((S (S n)) * ff_v_frt)) /\ exists ff_q_frt_terminal. ff_u_frt = ff_q_frt_terminal * S ((S (S n)) * ff_v_frt) + (q))) /\ forall ff_i_frt. (exists ff_lt_frt_bound. ff_lt_frt_bound + S ff_i_frt = S n) -> exists ff_a_frt ff_r_frt ff_s_frt. ((((exists ff_h_frt_summand. ff_h_frt_summand + S (ff_a_frt) = S ((S (ff_i_frt)) * d)) /\ exists ff_q_frt_summand. z = ff_q_frt_summand * S ((S (ff_i_frt)) * d) + (ff_a_frt))) /\ ((((exists ff_h_frt_partial. ff_h_frt_partial + S (ff_r_frt) = S ((S (ff_i_frt)) * ff_v_frt)) /\ exists ff_q_frt_partial. ff_u_frt = ff_q_frt_partial * S ((S (ff_i_frt)) * ff_v_frt) + (ff_r_frt))) /\ ((((exists ff_h_frt_successor. ff_h_frt_successor + S (ff_s_frt) = S ((S (S ff_i_frt)) * ff_v_frt)) /\ exists ff_q_frt_successor. ff_u_frt = ff_q_frt_successor * S ((S (S ff_i_frt)) * ff_v_frt) + (ff_s_frt))) /\ ff_s_frt = ff_r_frt + ff_a_frt)))))) -> (forall u v. (exists ff_u_fru ff_v_fru. ((((exists ff_h_fru_start. ff_h_fru_start + S (0) = S ((S (0)) * ff_v_fru)) /\ exists ff_q_fru_start. ff_u_fru = ff_q_fru_start * S ((S (0)) * ff_v_fru) + (0))) /\ ((((exists ff_h_fru_terminal. ff_h_fru_terminal + S (u) = S ((S (n)) * ff_v_fru)) /\ exists ff_q_fru_terminal. ff_u_fru = ff_q_fru_terminal * S ((S (n)) * ff_v_fru) + (u))) /\ forall ff_i_fru. (exists ff_lt_fru_bound. ff_lt_fru_bound + S ff_i_fru = n) -> exists ff_a_fru ff_r_fru ff_s_fru. ((((exists ff_h_fru_summand. ff_h_fru_summand + S (ff_a_fru) = S ((S (ff_i_fru)) * c)) /\ exists ff_q_fru_summand. b = ff_q_fru_summand * S ((S (ff_i_fru)) * c) + (ff_a_fru))) /\ ((((exists ff_h_fru_partial. ff_h_fru_partial + S (ff_r_fru) = S ((S (ff_i_fru)) * ff_v_fru)) /\ exists ff_q_fru_partial. ff_u_fru = ff_q_fru_partial * S ((S (ff_i_fru)) * ff_v_fru) + (ff_r_fru))) /\ ((((exists ff_h_fru_successor. ff_h_fru_successor + S (ff_s_fru) = S ((S (S ff_i_fru)) * ff_v_fru)) /\ exists ff_q_fru_successor. ff_u_fru = ff_q_fru_successor * S ((S (S ff_i_fru)) * ff_v_fru) + (ff_s_fru))) /\ ff_s_fru = ff_r_fru + ff_a_fru)))))) -> (exists ff_u_frv ff_v_frv. ((((exists ff_h_frv_start. ff_h_frv_start + S (0) = S ((S (0)) * ff_v_frv)) /\ exists ff_q_frv_start. ff_u_frv = ff_q_frv_start * S ((S (0)) * ff_v_frv) + (0))) /\ ((((exists ff_h_frv_terminal. ff_h_frv_terminal + S (v) = S ((S (n)) * ff_v_frv)) /\ exists ff_q_frv_terminal. ff_u_frv = ff_q_frv_terminal * S ((S (n)) * ff_v_frv) + (v))) /\ forall ff_i_frv. (exists ff_lt_frv_bound. ff_lt_frv_bound + S ff_i_frv = n) -> exists ff_a_frv ff_r_frv ff_s_frv. ((((exists ff_h_frv_summand. ff_h_frv_summand + S (ff_a_frv) = S ((S (ff_i_frv)) * d)) /\ exists ff_q_frv_summand. z = ff_q_frv_summand * S ((S (ff_i_frv)) * d) + (ff_a_frv))) /\ ((((exists ff_h_frv_partial. ff_h_frv_partial + S (ff_r_frv) = S ((S (ff_i_frv)) * ff_v_frv)) /\ exists ff_q_frv_partial. ff_u_frv = ff_q_frv_partial * S ((S (ff_i_frv)) * ff_v_frv) + (ff_r_frv))) /\ ((((exists ff_h_frv_successor. ff_h_frv_successor + S (ff_s_frv) = S ((S (S ff_i_frv)) * ff_v_frv)) /\ exists ff_q_frv_successor. ff_u_frv = ff_q_frv_successor * S ((S (S ff_i_frv)) * ff_v_frv) + (ff_s_frv))) /\ ff_s_frv = ff_r_frv + ff_a_frv)))))) -> u = v) -> p = qStructural proof guide
Generated structural guide
A fixed-final reindex reduces successor sum equality to equality of the two prefix sums.
Use the direct prerequisites beta_sum_succ_decompose, beta_at_unique, le_refl as previously established PA formulas.
The proof proceeds by case analysis (8), intermediate claims (5), equality transport (4).
Referenced ingredients
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v25 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–14
03Establish hsource_decompL15–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
04Establish htarget_decompL22–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
05Separate the logical casesL29–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
06Establish htarget_source_lastL37–45
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply haligned.
- L37
have htarget_source_last : ((exists ff_h_fixed_target_source_last. ff_h_fixed_target_source_last + S (x) = S ((S (n)) * d)) /\ exists ff_q_fixed_target_source_last. z = ff_q_fixed_target_source_last * S ((S (n)) * d) + (x)) - L38
specialize haligned n - L39
specialize haligned n - L40
specialize haligned x - L41
apply haligned - L42
specialize le_refl (S n) - L43
exact le_refl - L44
exact hmap_last - L45
exact hsource_decomp_witness_witness_left
07Establish hlast_equalL46–54
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
08Establish hprefixes_equalL55–64
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprefix equal.
- L55
have hprefixes_equal : x1 = x3 - L56
specialize hprefix_equal x1 - L57
specialize hprefix_equal x3 - L58
apply hprefix_equal - L59
exact hsource_decomp_witness_witness_right_left - L60
exact htarget_decomp_witness_witness_right_left - L61
rewrite hsource_decomp_witness_witness_right_right - L62
rewrite htarget_decomp_witness_witness_right_right - L63
rewrite hlast_equal - L64
rewrite hprefixes_equal
09Calculate and transport equalitiesL65–65
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L65
refl
Original exact command ledger · 65 lines
- 0001
intro r - 0002
intro s - 0003
intro b - 0004
intro c - 0005
intro z - 0006
intro d - 0007
intro n - 0008
intro p - 0009
intro q - 0010
intro haligned - 0011
intro hmap_last - 0012
intro hsource_product - 0013
intro htarget_product - 0014
intro hprefix_equal - 0015
have hsource_decomp : exists a u. (((exists ff_h_fixed_reindex_source_last. ff_h_fixed_reindex_source_last + S (a) = S ((S (n)) * c)) /\ exists ff_q_fixed_reindex_source_last. b = ff_q_fixed_reindex_source_last * S ((S (n)) * c) + (a))) /\ ((exists ff_u_fixed_reindex_source_prefix_witness ff_v_fixed_reindex_source_prefix_witness. ((((exists ff_h_fixed_reindex_source_prefix_witness_start. ff_h_fixed_reindex_source_prefix_witness_start + S (0) = S ((S (0)) * ff_v_fixed_reindex_source_prefix_witness)) /\ exists ff_q_fixed_reindex_source_prefix_witness_start. ff_u_fixed_reindex_source_prefix_witness = ff_q_fixed_reindex_source_prefix_witness_start * S ((S (0)) * ff_v_fixed_reindex_source_prefix_witness) + (0))) /\ ((((exists ff_h_fixed_reindex_source_prefix_witness_terminal. ff_h_fixed_reindex_source_prefix_witness_terminal + S (u) = S ((S (n)) * ff_v_fixed_reindex_source_prefix_witness)) /\ exists ff_q_fixed_reindex_source_prefix_witness_terminal. ff_u_fixed_reindex_source_prefix_witness = ff_q_fixed_reindex_source_prefix_witness_terminal * S ((S (n)) * ff_v_fixed_reindex_source_prefix_witness) + (u))) /\ forall ff_i_fixed_reindex_source_prefix_witness. (exists ff_lt_fixed_reindex_source_prefix_witness_bound. ff_lt_fixed_reindex_source_prefix_witness_bound + S ff_i_fixed_reindex_source_prefix_witness = n) -> exists ff_a_fixed_reindex_source_prefix_witness ff_r_fixed_reindex_source_prefix_witness ff_s_fixed_reindex_source_prefix_witness. ((((exists ff_h_fixed_reindex_source_prefix_witness_summand. ff_h_fixed_reindex_source_prefix_witness_summand + S (ff_a_fixed_reindex_source_prefix_witness) = S ((S (ff_i_fixed_reindex_source_prefix_witness)) * c)) /\ exists ff_q_fixed_reindex_source_prefix_witness_summand. b = ff_q_fixed_reindex_source_prefix_witness_summand * S ((S (ff_i_fixed_reindex_source_prefix_witness)) * c) + (ff_a_fixed_reindex_source_prefix_witness))) /\ ((((exists ff_h_fixed_reindex_source_prefix_witness_partial. ff_h_fixed_reindex_source_prefix_witness_partial + S (ff_r_fixed_reindex_source_prefix_witness) = S ((S (ff_i_fixed_reindex_source_prefix_witness)) * ff_v_fixed_reindex_source_prefix_witness)) /\ exists ff_q_fixed_reindex_source_prefix_witness_partial. ff_u_fixed_reindex_source_prefix_witness = ff_q_fixed_reindex_source_prefix_witness_partial * S ((S (ff_i_fixed_reindex_source_prefix_witness)) * ff_v_fixed_reindex_source_prefix_witness) + (ff_r_fixed_reindex_source_prefix_witness))) /\ ((((exists ff_h_fixed_reindex_source_prefix_witness_successor. ff_h_fixed_reindex_source_prefix_witness_successor + S (ff_s_fixed_reindex_source_prefix_witness) = S ((S (S ff_i_fixed_reindex_source_prefix_witness)) * ff_v_fixed_reindex_source_prefix_witness)) /\ exists ff_q_fixed_reindex_source_prefix_witness_successor. ff_u_fixed_reindex_source_prefix_witness = ff_q_fixed_reindex_source_prefix_witness_successor * S ((S (S ff_i_fixed_reindex_source_prefix_witness)) * ff_v_fixed_reindex_source_prefix_witness) + (ff_s_fixed_reindex_source_prefix_witness))) /\ ff_s_fixed_reindex_source_prefix_witness = ff_r_fixed_reindex_source_prefix_witness + ff_a_fixed_reindex_source_prefix_witness)))))) /\ p = u + a) - 0016
specialize beta_sum_succ_decompose b - 0017
specialize beta_sum_succ_decompose c - 0018
specialize beta_sum_succ_decompose n - 0019
specialize beta_sum_succ_decompose p - 0020
apply beta_sum_succ_decompose - 0021
exact hsource_product - 0022
have htarget_decomp : exists a v. (((exists ff_h_fixed_reindex_target_last. ff_h_fixed_reindex_target_last + S (a) = S ((S (n)) * d)) /\ exists ff_q_fixed_reindex_target_last. z = ff_q_fixed_reindex_target_last * S ((S (n)) * d) + (a))) /\ ((exists ff_u_fixed_reindex_target_prefix_witness ff_v_fixed_reindex_target_prefix_witness. ((((exists ff_h_fixed_reindex_target_prefix_witness_start. ff_h_fixed_reindex_target_prefix_witness_start + S (0) = S ((S (0)) * ff_v_fixed_reindex_target_prefix_witness)) /\ exists ff_q_fixed_reindex_target_prefix_witness_start. ff_u_fixed_reindex_target_prefix_witness = ff_q_fixed_reindex_target_prefix_witness_start * S ((S (0)) * ff_v_fixed_reindex_target_prefix_witness) + (0))) /\ ((((exists ff_h_fixed_reindex_target_prefix_witness_terminal. ff_h_fixed_reindex_target_prefix_witness_terminal + S (v) = S ((S (n)) * ff_v_fixed_reindex_target_prefix_witness)) /\ exists ff_q_fixed_reindex_target_prefix_witness_terminal. ff_u_fixed_reindex_target_prefix_witness = ff_q_fixed_reindex_target_prefix_witness_terminal * S ((S (n)) * ff_v_fixed_reindex_target_prefix_witness) + (v))) /\ forall ff_i_fixed_reindex_target_prefix_witness. (exists ff_lt_fixed_reindex_target_prefix_witness_bound. ff_lt_fixed_reindex_target_prefix_witness_bound + S ff_i_fixed_reindex_target_prefix_witness = n) -> exists ff_a_fixed_reindex_target_prefix_witness ff_r_fixed_reindex_target_prefix_witness ff_s_fixed_reindex_target_prefix_witness. ((((exists ff_h_fixed_reindex_target_prefix_witness_summand. ff_h_fixed_reindex_target_prefix_witness_summand + S (ff_a_fixed_reindex_target_prefix_witness) = S ((S (ff_i_fixed_reindex_target_prefix_witness)) * d)) /\ exists ff_q_fixed_reindex_target_prefix_witness_summand. z = ff_q_fixed_reindex_target_prefix_witness_summand * S ((S (ff_i_fixed_reindex_target_prefix_witness)) * d) + (ff_a_fixed_reindex_target_prefix_witness))) /\ ((((exists ff_h_fixed_reindex_target_prefix_witness_partial. ff_h_fixed_reindex_target_prefix_witness_partial + S (ff_r_fixed_reindex_target_prefix_witness) = S ((S (ff_i_fixed_reindex_target_prefix_witness)) * ff_v_fixed_reindex_target_prefix_witness)) /\ exists ff_q_fixed_reindex_target_prefix_witness_partial. ff_u_fixed_reindex_target_prefix_witness = ff_q_fixed_reindex_target_prefix_witness_partial * S ((S (ff_i_fixed_reindex_target_prefix_witness)) * ff_v_fixed_reindex_target_prefix_witness) + (ff_r_fixed_reindex_target_prefix_witness))) /\ ((((exists ff_h_fixed_reindex_target_prefix_witness_successor. ff_h_fixed_reindex_target_prefix_witness_successor + S (ff_s_fixed_reindex_target_prefix_witness) = S ((S (S ff_i_fixed_reindex_target_prefix_witness)) * ff_v_fixed_reindex_target_prefix_witness)) /\ exists ff_q_fixed_reindex_target_prefix_witness_successor. ff_u_fixed_reindex_target_prefix_witness = ff_q_fixed_reindex_target_prefix_witness_successor * S ((S (S ff_i_fixed_reindex_target_prefix_witness)) * ff_v_fixed_reindex_target_prefix_witness) + (ff_s_fixed_reindex_target_prefix_witness))) /\ ff_s_fixed_reindex_target_prefix_witness = ff_r_fixed_reindex_target_prefix_witness + ff_a_fixed_reindex_target_prefix_witness)))))) /\ q = v + a) - 0023
specialize beta_sum_succ_decompose z - 0024
specialize beta_sum_succ_decompose d - 0025
specialize beta_sum_succ_decompose n - 0026
specialize beta_sum_succ_decompose q - 0027
apply beta_sum_succ_decompose - 0028
exact htarget_product - 0029
cases hsource_decomp - 0030
cases hsource_decomp_witness - 0031
cases hsource_decomp_witness_witness - 0032
cases hsource_decomp_witness_witness_right - 0033
cases htarget_decomp - 0034
cases htarget_decomp_witness - 0035
cases htarget_decomp_witness_witness - 0036
cases htarget_decomp_witness_witness_right - 0037
have htarget_source_last : ((exists ff_h_fixed_target_source_last. ff_h_fixed_target_source_last + S (x) = S ((S (n)) * d)) /\ exists ff_q_fixed_target_source_last. z = ff_q_fixed_target_source_last * S ((S (n)) * d) + (x)) - 0038
specialize haligned n - 0039
specialize haligned n - 0040
specialize haligned x - 0041
apply haligned - 0042
specialize le_refl (S n) - 0043
exact le_refl - 0044
exact hmap_last - 0045
exact hsource_decomp_witness_witness_left - 0046
have hlast_equal : x2 = x - 0047
specialize beta_at_unique z - 0048
specialize beta_at_unique d - 0049
specialize beta_at_unique n - 0050
specialize beta_at_unique x2 - 0051
specialize beta_at_unique x - 0052
apply beta_at_unique - 0053
exact htarget_decomp_witness_witness_left - 0054
exact htarget_source_last - 0055
have hprefixes_equal : x1 = x3 - 0056
specialize hprefix_equal x1 - 0057
specialize hprefix_equal x3 - 0058
apply hprefix_equal - 0059
exact hsource_decomp_witness_witness_right_left - 0060
exact htarget_decomp_witness_witness_right_left - 0061
rewrite hsource_decomp_witness_witness_right_right - 0062
rewrite htarget_decomp_witness_witness_right_right - 0063
rewrite hlast_equal - 0064
rewrite hprefixes_equal - 0065
refl