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 expanded first-order arithmetic statement
forall p b c n r s. (((((exists ff_h_pft_trace_successor_sourcestart. ff_h_pft_trace_successor_sourcestart + S (0) = S ((S (0)) * c)) /\ exists ff_q_pft_trace_successor_sourcestart. b = ff_q_pft_trace_successor_sourcestart * S ((S (0)) * c) + (0))) /\ (((((exists ff_h_pft_trace_successor_sourceterminal. ff_h_pft_trace_successor_sourceterminal + S (r) = S ((S (n)) * c)) /\ exists ff_q_pft_trace_successor_sourceterminal. b = ff_q_pft_trace_successor_sourceterminal * S ((S (n)) * c) + (r))) /\ ((forall pff_trace_index_trace_successor_sourcesteps. (exists pfa_gap_trace_successor_sourcestepsindex. pfa_gap_trace_successor_sourcestepsindex + S (pff_trace_index_trace_successor_sourcesteps) = (n)) -> exists pff_trace_before_trace_successor_sourcesteps pff_trace_after_trace_successor_sourcesteps. ((((exists ff_h_pft_trace_successor_sourcestepsbefore. ff_h_pft_trace_successor_sourcestepsbefore + S (pff_trace_before_trace_successor_sourcesteps) = S ((S (pff_trace_index_trace_successor_sourcesteps)) * c)) /\ exists ff_q_pft_trace_successor_sourcestepsbefore. b = ff_q_pft_trace_successor_sourcestepsbefore * S ((S (pff_trace_index_trace_successor_sourcesteps)) * c) + (pff_trace_before_trace_successor_sourcesteps))) /\ (((((exists ff_h_pft_trace_successor_sourcestepsafter. ff_h_pft_trace_successor_sourcestepsafter + S (pff_trace_after_trace_successor_sourcesteps) = S ((S (S (pff_trace_index_trace_successor_sourcesteps))) * c)) /\ exists ff_q_pft_trace_successor_sourcestepsafter. b = ff_q_pft_trace_successor_sourcestepsafter * S ((S (S (pff_trace_index_trace_successor_sourcesteps))) * c) + (pff_trace_after_trace_successor_sourcesteps))) /\ ((((exists pfa_gap_trace_successor_sourcestepsadditionleft. pfa_gap_trace_successor_sourcestepsadditionleft + S (pff_trace_before_trace_successor_sourcesteps) = (p)) /\ (((exists pfa_gap_trace_successor_sourcestepsadditionright. pfa_gap_trace_successor_sourcestepsadditionright + S (1) = (p)) /\ ((((exists pfa_gap_trace_successor_sourcestepsadditionresultbound. pfa_gap_trace_successor_sourcestepsadditionresultbound + S (pff_trace_after_trace_successor_sourcesteps) = (p)) /\ ((exists pfa_offset_left_trace_successor_sourcestepsadditionresultcongruence pfa_offset_right_trace_successor_sourcestepsadditionresultcongruence. ((pff_trace_before_trace_successor_sourcesteps) + (1)) + (p) * pfa_offset_left_trace_successor_sourcestepsadditionresultcongruence = (pff_trace_after_trace_successor_sourcesteps) + (p) * pfa_offset_right_trace_successor_sourcestepsadditionresultcongruence))))))))))))))))))) -> (((exists pfa_gap_trace_successor_addleft. pfa_gap_trace_successor_addleft + S (r) = (p)) /\ (((exists pfa_gap_trace_successor_addright. pfa_gap_trace_successor_addright + S (1) = (p)) /\ ((((exists pfa_gap_trace_successor_addresultbound. pfa_gap_trace_successor_addresultbound + S (s) = (p)) /\ ((exists pfa_offset_left_trace_successor_addresultcongruence pfa_offset_right_trace_successor_addresultcongruence. ((r) + (1)) + (p) * pfa_offset_left_trace_successor_addresultcongruence = (s) + (p) * pfa_offset_right_trace_successor_addresultcongruence))))))))) -> exists B C. (((((exists ff_h_pft_trace_successor_resultstart. ff_h_pft_trace_successor_resultstart + S (0) = S ((S (0)) * C)) /\ exists ff_q_pft_trace_successor_resultstart. B = ff_q_pft_trace_successor_resultstart * S ((S (0)) * C) + (0))) /\ (((((exists ff_h_pft_trace_successor_resultterminal. ff_h_pft_trace_successor_resultterminal + S (s) = S ((S (S n)) * C)) /\ exists ff_q_pft_trace_successor_resultterminal. B = ff_q_pft_trace_successor_resultterminal * S ((S (S n)) * C) + (s))) /\ ((forall pff_trace_index_trace_successor_resultsteps. (exists pfa_gap_trace_successor_resultstepsindex. pfa_gap_trace_successor_resultstepsindex + S (pff_trace_index_trace_successor_resultsteps) = (S n)) -> exists pff_trace_before_trace_successor_resultsteps pff_trace_after_trace_successor_resultsteps. ((((exists ff_h_pft_trace_successor_resultstepsbefore. ff_h_pft_trace_successor_resultstepsbefore + S (pff_trace_before_trace_successor_resultsteps) = S ((S (pff_trace_index_trace_successor_resultsteps)) * C)) /\ exists ff_q_pft_trace_successor_resultstepsbefore. B = ff_q_pft_trace_successor_resultstepsbefore * S ((S (pff_trace_index_trace_successor_resultsteps)) * C) + (pff_trace_before_trace_successor_resultsteps))) /\ (((((exists ff_h_pft_trace_successor_resultstepsafter. ff_h_pft_trace_successor_resultstepsafter + S (pff_trace_after_trace_successor_resultsteps) = S ((S (S (pff_trace_index_trace_successor_resultsteps))) * C)) /\ exists ff_q_pft_trace_successor_resultstepsafter. B = ff_q_pft_trace_successor_resultstepsafter * S ((S (S (pff_trace_index_trace_successor_resultsteps))) * C) + (pff_trace_after_trace_successor_resultsteps))) /\ ((((exists pfa_gap_trace_successor_resultstepsadditionleft. pfa_gap_trace_successor_resultstepsadditionleft + S (pff_trace_before_trace_successor_resultsteps) = (p)) /\ (((exists pfa_gap_trace_successor_resultstepsadditionright. pfa_gap_trace_successor_resultstepsadditionright + S (1) = (p)) /\ ((((exists pfa_gap_trace_successor_resultstepsadditionresultbound. pfa_gap_trace_successor_resultstepsadditionresultbound + S (pff_trace_after_trace_successor_resultsteps) = (p)) /\ ((exists pfa_offset_left_trace_successor_resultstepsadditionresultcongruence pfa_offset_right_trace_successor_resultstepsadditionresultcongruence. ((pff_trace_before_trace_successor_resultsteps) + (1)) + (p) * pfa_offset_left_trace_successor_resultstepsadditionresultcongruence = (pff_trace_after_trace_successor_resultsteps) + (p) * pfa_offset_right_trace_successor_resultstepsadditionresultcongruence)))))))))))))))))))Constructive proof overview
Generated structural guide
Append the genuinely computed next unit sum to an actual finite beta history.
The unchanged tactic script uses 3 declared prerequisites and contains 58 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_prefix_extend Stable theorem; checked-use authorized FP004D prime_field_unit_trace_recode finite_lt_succ_eq_or_lt Stable theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
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 (1)
01Fix variables and assumptionsL1–8
02Establish heL9–14
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.
03Separate the logical casesL15–17
04Establish htL18–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field unit trace recode.
- L18
have ht : FpUnitTrace(p,x,x1,n,r)Definitions: FpUnitTrace - L19
specialize prime_field_unit_trace_recode (p) - L20
specialize prime_field_unit_trace_recode (b) - L21
specialize prime_field_unit_trace_recode (c) - L22
specialize prime_field_unit_trace_recode (x) - L23
specialize prime_field_unit_trace_recode (x1) - L24
specialize prime_field_unit_trace_recode (n) - L25
specialize prime_field_unit_trace_recode (r) - L26
apply prime_field_unit_trace_recode - L27
exact htrace
05Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact he_witness_witness_right
06Separate the logical casesL29–30
07Construct an explicit witnessL31–32
08Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
split
09Use earlier factsL34–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
exact ht_left
10Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
split
11Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
exact he_witness_witness_left
12Fix variables and assumptionsL37–38
13Establish hcasesL39–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
14Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
cases hcases
15Calculate and transport equalitiesL45–48
16Construct an explicit witnessL49–50
17Separate the logical casesL51–51
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L51
split
18Use earlier factsL52–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L52
exact ht_right_left
19Separate the logical casesL53–53
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L53
split
Original exact command ledger · 58 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
intro n - 0005
intro r - 0006
intro s - 0007
intro htrace - 0008
intro hadd - 0009
have he : exists B C. (((exists ff_h_pft_trace_append_last. ff_h_pft_trace_append_last + S (s) = S ((S (S n)) * C)) /\ exists ff_q_pft_trace_append_last. B = ff_q_pft_trace_append_last * S ((S (S n)) * C) + (s))) /\ (forall i v. (exists pfa_gap_trace_append_bound. pfa_gap_trace_append_bound + S (i) = (S n)) -> (((exists ff_h_pft_trace_append_old. ff_h_pft_trace_append_old + S (v) = S ((S (i)) * c)) /\ exists ff_q_pft_trace_append_old. b = ff_q_pft_trace_append_old * S ((S (i)) * c) + (v))) -> (((exists ff_h_pft_trace_append_new. ff_h_pft_trace_append_new + S (v) = S ((S (i)) * C)) /\ exists ff_q_pft_trace_append_new. B = ff_q_pft_trace_append_new * S ((S (i)) * C) + (v)))) - 0010
specialize beta_prefix_extend (S n) - 0011
specialize beta_prefix_extend (b) - 0012
specialize beta_prefix_extend (c) - 0013
specialize beta_prefix_extend (s) - 0014
apply beta_prefix_extend - 0015
cases he - 0016
cases he_witness - 0017
cases he_witness_witness - 0018
have ht : ((((exists ff_h_pft_trace_append_recodedstart. ff_h_pft_trace_append_recodedstart + S (0) = S ((S (0)) * x1)) /\ exists ff_q_pft_trace_append_recodedstart. x = ff_q_pft_trace_append_recodedstart * S ((S (0)) * x1) + (0))) /\ (((((exists ff_h_pft_trace_append_recodedterminal. ff_h_pft_trace_append_recodedterminal + S (r) = S ((S (n)) * x1)) /\ exists ff_q_pft_trace_append_recodedterminal. x = ff_q_pft_trace_append_recodedterminal * S ((S (n)) * x1) + (r))) /\ ((forall pff_trace_index_trace_append_recodedsteps. (exists pfa_gap_trace_append_recodedstepsindex. pfa_gap_trace_append_recodedstepsindex + S (pff_trace_index_trace_append_recodedsteps) = (n)) -> exists pff_trace_before_trace_append_recodedsteps pff_trace_after_trace_append_recodedsteps. ((((exists ff_h_pft_trace_append_recodedstepsbefore. ff_h_pft_trace_append_recodedstepsbefore + S (pff_trace_before_trace_append_recodedsteps) = S ((S (pff_trace_index_trace_append_recodedsteps)) * x1)) /\ exists ff_q_pft_trace_append_recodedstepsbefore. x = ff_q_pft_trace_append_recodedstepsbefore * S ((S (pff_trace_index_trace_append_recodedsteps)) * x1) + (pff_trace_before_trace_append_recodedsteps))) /\ (((((exists ff_h_pft_trace_append_recodedstepsafter. ff_h_pft_trace_append_recodedstepsafter + S (pff_trace_after_trace_append_recodedsteps) = S ((S (S (pff_trace_index_trace_append_recodedsteps))) * x1)) /\ exists ff_q_pft_trace_append_recodedstepsafter. x = ff_q_pft_trace_append_recodedstepsafter * S ((S (S (pff_trace_index_trace_append_recodedsteps))) * x1) + (pff_trace_after_trace_append_recodedsteps))) /\ ((((exists pfa_gap_trace_append_recodedstepsadditionleft. pfa_gap_trace_append_recodedstepsadditionleft + S (pff_trace_before_trace_append_recodedsteps) = (p)) /\ (((exists pfa_gap_trace_append_recodedstepsadditionright. pfa_gap_trace_append_recodedstepsadditionright + S (1) = (p)) /\ ((((exists pfa_gap_trace_append_recodedstepsadditionresultbound. pfa_gap_trace_append_recodedstepsadditionresultbound + S (pff_trace_after_trace_append_recodedsteps) = (p)) /\ ((exists pfa_offset_left_trace_append_recodedstepsadditionresultcongruence pfa_offset_right_trace_append_recodedstepsadditionresultcongruence. ((pff_trace_before_trace_append_recodedsteps) + (1)) + (p) * pfa_offset_left_trace_append_recodedstepsadditionresultcongruence = (pff_trace_after_trace_append_recodedsteps) + (p) * pfa_offset_right_trace_append_recodedstepsadditionresultcongruence)))))))))))))))))) - 0019
specialize prime_field_unit_trace_recode (p) - 0020
specialize prime_field_unit_trace_recode (b) - 0021
specialize prime_field_unit_trace_recode (c) - 0022
specialize prime_field_unit_trace_recode (x) - 0023
specialize prime_field_unit_trace_recode (x1) - 0024
specialize prime_field_unit_trace_recode (n) - 0025
specialize prime_field_unit_trace_recode (r) - 0026
apply prime_field_unit_trace_recode - 0027
exact htrace - 0028
exact he_witness_witness_right - 0029
cases ht - 0030
cases ht_right - 0031
exists x - 0032
exists x1 - 0033
split - 0034
exact ht_left - 0035
split - 0036
exact he_witness_witness_left - 0037
intro i - 0038
intro hi - 0039
have hcases : i = n \/ (exists pfa_gap_trace_append_cases. pfa_gap_trace_append_cases + S (i) = (n)) - 0040
specialize finite_lt_succ_eq_or_lt (n) - 0041
specialize finite_lt_succ_eq_or_lt (i) - 0042
apply finite_lt_succ_eq_or_lt - 0043
exact hi - 0044
cases hcases - 0045
rewrite hcases_left - 0046
rewrite hcases_left - 0047
rewrite hcases_left - 0048
rewrite hcases_left - 0049
exists r - 0050
exists s - 0051
split - 0052
exact ht_right_left - 0053
split - 0054
exact he_witness_witness_left - 0055
exact hadd - 0056
specialize ht_right_right (i) - 0057
apply ht_right_right - 0058
exact hcases_right