Exact expanded PA statement
forall b c n sn. sn = S n -> (forall fp_i_bounded_succ. (exists fp_gap_bounded_succ_index. fp_gap_bounded_succ_index + S fp_i_bounded_succ = sn) -> exists fp_value_bounded_succ. ((((exists ff_h_bounded_succ_entry. ff_h_bounded_succ_entry + S (fp_value_bounded_succ) = S ((S (fp_i_bounded_succ)) * c)) /\ exists ff_q_bounded_succ_entry. b = ff_q_bounded_succ_entry * S ((S (fp_i_bounded_succ)) * c) + (fp_value_bounded_succ))) /\ (exists fp_gap_bounded_succ_value. fp_gap_bounded_succ_value + S fp_value_bounded_succ = sn))) -> (forall fp_i_inj_succ fp_j_inj_succ fp_value_inj_succ. (exists fp_gap_inj_succ_i. fp_gap_inj_succ_i + S fp_i_inj_succ = sn) -> (exists fp_gap_inj_succ_j. fp_gap_inj_succ_j + S fp_j_inj_succ = sn) -> (((exists ff_h_inj_succ_left. ff_h_inj_succ_left + S (fp_value_inj_succ) = S ((S (fp_i_inj_succ)) * c)) /\ exists ff_q_inj_succ_left. b = ff_q_inj_succ_left * S ((S (fp_i_inj_succ)) * c) + (fp_value_inj_succ))) -> (((exists ff_h_inj_succ_right. ff_h_inj_succ_right + S (fp_value_inj_succ) = S ((S (fp_j_inj_succ)) * c)) /\ exists ff_q_inj_succ_right. b = ff_q_inj_succ_right * S ((S (fp_j_inj_succ)) * c) + (fp_value_inj_succ))) -> fp_i_inj_succ = fp_j_inj_succ) -> (forall fp_value_surj_n. (exists fp_gap_surj_n_value. fp_gap_surj_n_value + S fp_value_surj_n = n) -> exists fp_i_surj_n. ((exists fp_gap_surj_n_index. fp_gap_surj_n_index + S fp_i_surj_n = n) /\ (((exists ff_h_surj_n_entry. ff_h_surj_n_entry + S (fp_value_surj_n) = S ((S (fp_i_surj_n)) * c)) /\ exists ff_q_surj_n_entry. b = ff_q_surj_n_entry * S ((S (fp_i_surj_n)) * c) + (fp_value_surj_n))))) -> (((exists ff_h_last_n. ff_h_last_n + S (n) = S ((S (n)) * c)) /\ exists ff_q_last_n. b = ff_q_last_n * S ((S (n)) * c) + (n)))Structural proof guide
Generated structural guide
A bounded injective successor sequence must place the new value last once its prefix is surjective.
Use the direct prerequisites finite_bounded_last_succ, finite_lt_succ_eq_or_lt, le_refl, le_succ, lt_irrefl_expanded as previously established PA formulas.
The proof proceeds by case analysis (5), intermediate claims (4), equality transport (5).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA004I finite_bounded_last_succ PA003D finite_lt_succ_eq_or_lt PA001A le_refl PA002O le_succ PA0010 lt_irrefl_expandedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Stable checked-use theorem is independently kernel-checked when replayed.
- 0001
intro b - 0002
intro c - 0003
intro n - 0004
intro sn - 0005
intro hsn - 0006
intro hbounded - 0007
intro hinj - 0008
intro hsurj - 0009
rewrite hsn at hinj - 0010
rewrite hsn at hinj - 0011
have hlast : exists x. (((exists h. h + S x = S ((S n) * c)) /\ exists q. b = q * S ((S n) * c) + x) /\ exists h. h + S x = S n) - 0012
specialize finite_bounded_last_succ b - 0013
specialize finite_bounded_last_succ c - 0014
specialize finite_bounded_last_succ n - 0015
specialize finite_bounded_last_succ sn - 0016
apply finite_bounded_last_succ - 0017
exact hsn - 0018
exact hbounded - 0019
cases hlast - 0020
cases hlast_witness - 0021
have hsplit : x = n \/ exists h. h + S x = n - 0022
specialize finite_lt_succ_eq_or_lt n - 0023
specialize finite_lt_succ_eq_or_lt x - 0024
apply finite_lt_succ_eq_or_lt - 0025
exact hlast_witness_right - 0026
cases hsplit - 0027
rewrite hsplit_left at hlast_witness_left - 0028
rewrite hsplit_left at hlast_witness_left - 0029
exact hlast_witness_left - 0030
specialize hsurj x - 0031
have hpre : exists i. ((exists h. h + S i = n) /\ ((exists h. h + S x = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + x)) - 0032
apply hsurj - 0033
exact hsplit_right - 0034
cases hpre - 0035
cases hpre_witness - 0036
have hni : n = x1 - 0037
specialize hinj n - 0038
specialize hinj x1 - 0039
specialize hinj x - 0040
apply hinj - 0041
specialize le_refl (S n) - 0042
exact le_refl - 0043
specialize le_succ (S x1) - 0044
specialize le_succ n - 0045
apply le_succ - 0046
exact hpre_witness_left - 0047
exact hlast_witness_left - 0048
exact hpre_witness_right - 0049
exfalso - 0050
specialize lt_irrefl_expanded n - 0051
apply lt_irrefl_expanded - 0052
rewrite hni - 0053
exact hpre_witness_left