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 b c L t d e. (forall pfp_repeat_index_suffix_to_pad_zero. (exists pfa_gap_suffix_to_pad_zeroindex. pfa_gap_suffix_to_pad_zeroindex + S (pfp_repeat_index_suffix_to_pad_zero) = (t)) -> (((exists ff_h_pfp_suffix_to_pad_zeroentry. ff_h_pfp_suffix_to_pad_zeroentry + S (0) = S ((S (pfp_repeat_index_suffix_to_pad_zero)) * e)) /\ exists ff_q_pfp_suffix_to_pad_zeroentry. d = ff_q_pfp_suffix_to_pad_zeroentry * S ((S (pfp_repeat_index_suffix_to_pad_zero)) * e) + (0)))) -> (forall pftrim_index_suffix_to_pad_suffix pftrim_value_suffix_to_pad_suffix. (exists pfa_gap_suffix_to_pad_suffixbound. pfa_gap_suffix_to_pad_suffixbound + S (pftrim_index_suffix_to_pad_suffix) = (L)) -> (((exists ff_h_pfp_suffix_to_pad_suffixsource. ff_h_pfp_suffix_to_pad_suffixsource + S (pftrim_value_suffix_to_pad_suffix) = S ((S ((t)+pftrim_index_suffix_to_pad_suffix)) * e)) /\ exists ff_q_pfp_suffix_to_pad_suffixsource. d = ff_q_pfp_suffix_to_pad_suffixsource * S ((S ((t)+pftrim_index_suffix_to_pad_suffix)) * e) + (pftrim_value_suffix_to_pad_suffix))) -> (((exists ff_h_pfp_suffix_to_pad_suffixoutput. ff_h_pfp_suffix_to_pad_suffixoutput + S (pftrim_value_suffix_to_pad_suffix) = S ((S (pftrim_index_suffix_to_pad_suffix)) * c)) /\ exists ff_q_pfp_suffix_to_pad_suffixoutput. b = ff_q_pfp_suffix_to_pad_suffixoutput * S ((S (pftrim_index_suffix_to_pad_suffix)) * c) + (pftrim_value_suffix_to_pad_suffix)))) -> (((forall pfp_repeat_index_suffix_to_pad_resultzeros. (exists pfa_gap_suffix_to_pad_resultzerosindex. pfa_gap_suffix_to_pad_resultzerosindex + S (pfp_repeat_index_suffix_to_pad_resultzeros) = (t)) -> (((exists ff_h_pfp_suffix_to_pad_resultzerosentry. ff_h_pfp_suffix_to_pad_resultzerosentry + S (0) = S ((S (pfp_repeat_index_suffix_to_pad_resultzeros)) * e)) /\ exists ff_q_pfp_suffix_to_pad_resultzerosentry. d = ff_q_pfp_suffix_to_pad_resultzerosentry * S ((S (pfp_repeat_index_suffix_to_pad_resultzeros)) * e) + (0)))) /\ ((forall pfrep_index_suffix_to_pad_result pfrep_value_suffix_to_pad_result. (exists pfa_gap_suffix_to_pad_resultbound. pfa_gap_suffix_to_pad_resultbound + S (pfrep_index_suffix_to_pad_result) = (L)) -> (((exists ff_h_pfp_suffix_to_pad_resultinput. ff_h_pfp_suffix_to_pad_resultinput + S (pfrep_value_suffix_to_pad_result) = S ((S (pfrep_index_suffix_to_pad_result)) * c)) /\ exists ff_q_pfp_suffix_to_pad_resultinput. b = ff_q_pfp_suffix_to_pad_resultinput * S ((S (pfrep_index_suffix_to_pad_result)) * c) + (pfrep_value_suffix_to_pad_result))) -> (((exists ff_h_pfp_suffix_to_pad_resultoutput. ff_h_pfp_suffix_to_pad_resultoutput + S (pfrep_value_suffix_to_pad_result) = S ((S ((t)+pfrep_index_suffix_to_pad_result)) * e)) /\ exists ff_q_pfp_suffix_to_pad_resultoutput. d = ff_q_pfp_suffix_to_pad_resultoutput * S ((S ((t)+pfrep_index_suffix_to_pad_result)) * e) + (pfrep_value_suffix_to_pad_result)))))))Constructive proof overview
Generated structural guide
A real suffix after an actual zero block gives the reverse decoding needed by genuine left padding.
The unchanged tactic script uses 2 declared prerequisites and contains 36 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_at_exists Alpha theorem; checked-use authorized beta_at_unique Alpha 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.
01Fix variables and assumptionsL1–8
02Separate the logical casesL9–9
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L9
split
03Use earlier factsL10–10
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L10
exact hz
04Fix variables and assumptionsL11–14
05Establish hvL15–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L15
have hv : exists r. (((exists ff_h_pfp_suffix_to_pad_choice. ff_h_pfp_suffix_to_pad_choice + S (r) = S ((S (t+i)) * e)) /\ exists ff_q_pfp_suffix_to_pad_choice. d = ff_q_pfp_suffix_to_pad_choice * S ((S (t+i)) * e) + (r))) - L16
specialize beta_at_exists (d) - L17
specialize beta_at_exists (e) - L18
specialize beta_at_exists (t+i) - L19
apply beta_at_exists
06Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
cases hv
07Establish heqL21–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
08Use earlier factsL31–33
09Calculate and transport equalitiesL34–35
10Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
exact hv_witness
Original exact command ledger · 36 lines
- 0001
intro b - 0002
intro c - 0003
intro L - 0004
intro t - 0005
intro d - 0006
intro e - 0007
intro hz - 0008
intro hs - 0009
split - 0010
exact hz - 0011
intro i - 0012
intro a - 0013
intro hi - 0014
intro ha - 0015
have hv : exists r. (((exists ff_h_pfp_suffix_to_pad_choice. ff_h_pfp_suffix_to_pad_choice + S (r) = S ((S (t+i)) * e)) /\ exists ff_q_pfp_suffix_to_pad_choice. d = ff_q_pfp_suffix_to_pad_choice * S ((S (t+i)) * e) + (r))) - 0016
specialize beta_at_exists (d) - 0017
specialize beta_at_exists (e) - 0018
specialize beta_at_exists (t+i) - 0019
apply beta_at_exists - 0020
cases hv - 0021
have heq : x=a - 0022
specialize beta_at_unique (b) - 0023
specialize beta_at_unique (c) - 0024
specialize beta_at_unique (i) - 0025
specialize beta_at_unique (x) - 0026
specialize beta_at_unique (a) - 0027
apply beta_at_unique - 0028
specialize hs (i) - 0029
specialize hs (x) - 0030
apply hs - 0031
exact hi - 0032
exact hv_witness - 0033
exact ha - 0034
rewrite heq at hv_witness - 0035
rewrite heq at hv_witness - 0036
exact hv_witness