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 f g. (((forall pfp_repeat_index_left_pad_functional_firstzeros. (exists pfa_gap_left_pad_functional_firstzerosindex. pfa_gap_left_pad_functional_firstzerosindex + S (pfp_repeat_index_left_pad_functional_firstzeros) = (t)) -> (((exists ff_h_pfp_left_pad_functional_firstzerosentry. ff_h_pfp_left_pad_functional_firstzerosentry + S (0) = S ((S (pfp_repeat_index_left_pad_functional_firstzeros)) * e)) /\ exists ff_q_pfp_left_pad_functional_firstzerosentry. d = ff_q_pfp_left_pad_functional_firstzerosentry * S ((S (pfp_repeat_index_left_pad_functional_firstzeros)) * e) + (0)))) /\ ((forall pfrep_index_left_pad_functional_first pfrep_value_left_pad_functional_first. (exists pfa_gap_left_pad_functional_firstbound. pfa_gap_left_pad_functional_firstbound + S (pfrep_index_left_pad_functional_first) = (L)) -> (((exists ff_h_pfp_left_pad_functional_firstinput. ff_h_pfp_left_pad_functional_firstinput + S (pfrep_value_left_pad_functional_first) = S ((S (pfrep_index_left_pad_functional_first)) * c)) /\ exists ff_q_pfp_left_pad_functional_firstinput. b = ff_q_pfp_left_pad_functional_firstinput * S ((S (pfrep_index_left_pad_functional_first)) * c) + (pfrep_value_left_pad_functional_first))) -> (((exists ff_h_pfp_left_pad_functional_firstoutput. ff_h_pfp_left_pad_functional_firstoutput + S (pfrep_value_left_pad_functional_first) = S ((S ((t)+pfrep_index_left_pad_functional_first)) * e)) /\ exists ff_q_pfp_left_pad_functional_firstoutput. d = ff_q_pfp_left_pad_functional_firstoutput * S ((S ((t)+pfrep_index_left_pad_functional_first)) * e) + (pfrep_value_left_pad_functional_first))))))) -> (((forall pfp_repeat_index_left_pad_functional_secondzeros. (exists pfa_gap_left_pad_functional_secondzerosindex. pfa_gap_left_pad_functional_secondzerosindex + S (pfp_repeat_index_left_pad_functional_secondzeros) = (t)) -> (((exists ff_h_pfp_left_pad_functional_secondzerosentry. ff_h_pfp_left_pad_functional_secondzerosentry + S (0) = S ((S (pfp_repeat_index_left_pad_functional_secondzeros)) * g)) /\ exists ff_q_pfp_left_pad_functional_secondzerosentry. f = ff_q_pfp_left_pad_functional_secondzerosentry * S ((S (pfp_repeat_index_left_pad_functional_secondzeros)) * g) + (0)))) /\ ((forall pfrep_index_left_pad_functional_second pfrep_value_left_pad_functional_second. (exists pfa_gap_left_pad_functional_secondbound. pfa_gap_left_pad_functional_secondbound + S (pfrep_index_left_pad_functional_second) = (L)) -> (((exists ff_h_pfp_left_pad_functional_secondinput. ff_h_pfp_left_pad_functional_secondinput + S (pfrep_value_left_pad_functional_second) = S ((S (pfrep_index_left_pad_functional_second)) * c)) /\ exists ff_q_pfp_left_pad_functional_secondinput. b = ff_q_pfp_left_pad_functional_secondinput * S ((S (pfrep_index_left_pad_functional_second)) * c) + (pfrep_value_left_pad_functional_second))) -> (((exists ff_h_pfp_left_pad_functional_secondoutput. ff_h_pfp_left_pad_functional_secondoutput + S (pfrep_value_left_pad_functional_second) = S ((S ((t)+pfrep_index_left_pad_functional_second)) * g)) /\ exists ff_q_pfp_left_pad_functional_secondoutput. f = ff_q_pfp_left_pad_functional_secondoutput * S ((S ((t)+pfrep_index_left_pad_functional_second)) * g) + (pfrep_value_left_pad_functional_second))))))) -> (forall mdr_i_pfp_left_pad_functional_result mdr_a_pfp_left_pad_functional_result. (exists mdr_gap_pfp_left_pad_functional_resultb. mdr_gap_pfp_left_pad_functional_resultb + S (mdr_i_pfp_left_pad_functional_result) = (t+L)) -> (((exists ff_h_mdr_pfp_left_pad_functional_resulto. ff_h_mdr_pfp_left_pad_functional_resulto + S (mdr_a_pfp_left_pad_functional_result) = S ((S (mdr_i_pfp_left_pad_functional_result)) * e)) /\ exists ff_q_mdr_pfp_left_pad_functional_resulto. d = ff_q_mdr_pfp_left_pad_functional_resulto * S ((S (mdr_i_pfp_left_pad_functional_result)) * e) + (mdr_a_pfp_left_pad_functional_result))) -> (((exists ff_h_mdr_pfp_left_pad_functional_resultn. ff_h_mdr_pfp_left_pad_functional_resultn + S (mdr_a_pfp_left_pad_functional_result) = S ((S (mdr_i_pfp_left_pad_functional_result)) * g)) /\ exists ff_q_mdr_pfp_left_pad_functional_resultn. f = ff_q_mdr_pfp_left_pad_functional_resultn * S ((S (mdr_i_pfp_left_pad_functional_result)) * g) + (mdr_a_pfp_left_pad_functional_result))))Constructive proof overview
Generated structural guide
Any two constructed left pads have equal decoded coefficients on the full padded length.
The unchanged tactic script uses 3 declared prerequisites and contains 71 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PX000A prime_field_polynomial_left_pad_index_cases beta_at_unique Alpha theorem; checked-use authorized beta_at_exists 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.
Named ingredients (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–14
03Separate the logical casesL15–16
04Establish hoL17–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial left pad index cases.
- L17
have ho : (exists pfa_gap_left_pad_equal_zero. pfa_gap_left_pad_equal_zero + S (i) = (t)) \/ exists j. (((exists pfa_gap_left_pad_equal_source. pfa_gap_left_pad_equal_source + S (j) = (L)) /\ ((i=t+j)))) - L18
specialize prime_field_polynomial_left_pad_index_cases (t) - L19
specialize prime_field_polynomial_left_pad_index_cases (L) - L20
specialize prime_field_polynomial_left_pad_index_cases (i) - L21
apply prime_field_polynomial_left_pad_index_cases - L22
exact hi
05Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
cases ho
06Establish heqL24–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
07Use earlier factsL34–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
exact ho_left
08Calculate and transport equalitiesL35–36
09Use earlier factsL37–39
10Separate the logical casesL40–41
11Establish hvL42–46
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L42
have hv : exists z. (((exists ff_h_pfp_left_pad_equal_choice. ff_h_pfp_left_pad_equal_choice + S (z) = S ((S (x)) * c)) /\ exists ff_q_pfp_left_pad_equal_choice. b = ff_q_pfp_left_pad_equal_choice * S ((S (x)) * c) + (z))) - L43
specialize beta_at_exists (b) - L44
specialize beta_at_exists (c) - L45
specialize beta_at_exists (x) - L46
apply beta_at_exists
12Separate the logical casesL47–47
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L47
cases hv
13Establish heqL48–57
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
14Use earlier factsL58–62
15Calculate and transport equalitiesL63–66
Original exact command ledger · 71 lines
- 0001
intro b - 0002
intro c - 0003
intro L - 0004
intro t - 0005
intro d - 0006
intro e - 0007
intro f - 0008
intro g - 0009
intro hd - 0010
intro hf - 0011
intro i - 0012
intro a - 0013
intro hi - 0014
intro ha - 0015
cases hd - 0016
cases hf - 0017
have ho : (exists pfa_gap_left_pad_equal_zero. pfa_gap_left_pad_equal_zero + S (i) = (t)) \/ exists j. (((exists pfa_gap_left_pad_equal_source. pfa_gap_left_pad_equal_source + S (j) = (L)) /\ ((i=t+j)))) - 0018
specialize prime_field_polynomial_left_pad_index_cases (t) - 0019
specialize prime_field_polynomial_left_pad_index_cases (L) - 0020
specialize prime_field_polynomial_left_pad_index_cases (i) - 0021
apply prime_field_polynomial_left_pad_index_cases - 0022
exact hi - 0023
cases ho - 0024
have heq : a=0 - 0025
specialize beta_at_unique (d) - 0026
specialize beta_at_unique (e) - 0027
specialize beta_at_unique (i) - 0028
specialize beta_at_unique (a) - 0029
specialize beta_at_unique (0) - 0030
apply beta_at_unique - 0031
exact ha - 0032
specialize hd_left (i) - 0033
apply hd_left - 0034
exact ho_left - 0035
rewrite heq - 0036
rewrite heq - 0037
specialize hf_left (i) - 0038
apply hf_left - 0039
exact ho_left - 0040
cases ho_right - 0041
cases ho_right_witness - 0042
have hv : exists z. (((exists ff_h_pfp_left_pad_equal_choice. ff_h_pfp_left_pad_equal_choice + S (z) = S ((S (x)) * c)) /\ exists ff_q_pfp_left_pad_equal_choice. b = ff_q_pfp_left_pad_equal_choice * S ((S (x)) * c) + (z))) - 0043
specialize beta_at_exists (b) - 0044
specialize beta_at_exists (c) - 0045
specialize beta_at_exists (x) - 0046
apply beta_at_exists - 0047
cases hv - 0048
have heq : a=x1 - 0049
specialize beta_at_unique (d) - 0050
specialize beta_at_unique (e) - 0051
specialize beta_at_unique (t+x) - 0052
specialize beta_at_unique (a) - 0053
specialize beta_at_unique (x1) - 0054
apply beta_at_unique - 0055
rewrite ho_right_witness_right at ha - 0056
rewrite ho_right_witness_right at ha - 0057
exact ha - 0058
specialize hd_right (x) - 0059
specialize hd_right (x1) - 0060
apply hd_right - 0061
exact ho_right_witness_left - 0062
exact hv_witness - 0063
rewrite ho_right_witness_right - 0064
rewrite ho_right_witness_right - 0065
rewrite heq - 0066
rewrite heq - 0067
specialize hf_right (x) - 0068
specialize hf_right (x1) - 0069
apply hf_right - 0070
exact ho_right_witness_left - 0071
exact hv_witness