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 first-order arithmetic statement
forall l b c. exists g. (((forall ppf_index_gcd_existscommon ppf_entry_gcd_existscommon. (exists pvs_gap_gcd_existscommonbound. pvs_gap_gcd_existscommonbound + S (ppf_index_gcd_existscommon) = (l)) -> (((exists ff_h_pvs_gcd_existscommonentry. ff_h_pvs_gcd_existscommonentry + S (ppf_entry_gcd_existscommon) = S ((S (ppf_index_gcd_existscommon)) * c)) /\ exists ff_q_pvs_gcd_existscommonentry. b = ff_q_pvs_gcd_existscommonentry * S ((S (ppf_index_gcd_existscommon)) * c) + (ppf_entry_gcd_existscommon))) -> (exists pvs_factor_gcd_existscommondivisor. (ppf_entry_gcd_existscommon) = (g) * pvs_factor_gcd_existscommondivisor)) /\ (forall ppf_common_gcd_exists. (forall ppf_index_gcd_existsother ppf_entry_gcd_existsother. (exists pvs_gap_gcd_existsotherbound. pvs_gap_gcd_existsotherbound + S (ppf_index_gcd_existsother) = (l)) -> (((exists ff_h_pvs_gcd_existsotherentry. ff_h_pvs_gcd_existsotherentry + S (ppf_entry_gcd_existsother) = S ((S (ppf_index_gcd_existsother)) * c)) /\ exists ff_q_pvs_gcd_existsotherentry. b = ff_q_pvs_gcd_existsotherentry * S ((S (ppf_index_gcd_existsother)) * c) + (ppf_entry_gcd_existsother))) -> (exists pvs_factor_gcd_existsotherdivisor. (ppf_entry_gcd_existsother) = (ppf_common_gcd_exists) * pvs_factor_gcd_existsotherdivisor)) -> (exists pvs_factor_gcd_existsgreatest. (g) = (ppf_common_gcd_exists) * pvs_factor_gcd_existsgreatest))))Constructive proof overview
Generated structural guide
Ordinary finite induction constructs a genuine gcd of every actual beta prefix, including empty and zero-entry prefixes.
The unchanged tactic script uses 4 declared prerequisites and contains 37 exact native proof lines.
Alpha v34 checked-use · first admitted v29 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
SK001E prime_exponent_prefix_gcd_empty beta_at_exists Stable theorem; checked-use authorized canonical_gcd_exists Alpha theorem; checked-use authorized SK001F prime_exponent_prefix_gcd_successorDirect 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 (2)
01Fix variables and assumptionsL1–1
Work with arbitrary variables or the premises of the current implication.
- L1
intro l
02Induction on lL2–4
03Construct an explicit witnessL5–5
Supply the displayed value, then prove that it has the required property.
- L5
exists 0
04Use earlier factsL6–8
05Fix variables and assumptionsL9–10
06Establish hprevL11–14
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L11
have hprev : ∃ g. PrimeExponentPrefixGCD(b,c,l,g)Definitions: PrimeExponentPrefixGCD - L12
specialize IH (b) - L13
specialize IH (c) - L14
apply IH
07Separate the logical casesL15–15
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L15
cases hprev
08Establish hlastL16–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L16
have hlast : exists v. (((exists ff_h_pvs_gcd_terminal. ff_h_pvs_gcd_terminal + S (v) = S ((S (l)) * c)) /\ exists ff_q_pvs_gcd_terminal. b = ff_q_pvs_gcd_terminal * S ((S (l)) * c) + (v))) - L17
specialize beta_at_exists (b) - L18
specialize beta_at_exists (c) - L19
specialize beta_at_exists (l) - L20
apply beta_at_exists
09Separate the logical casesL21–21
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L21
cases hlast
10Establish hmergeL22–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply canonical gcd exists.
11Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
cases hmerge
12Construct an explicit witnessL27–27
Supply the displayed value, then prove that it has the required property.
- L27
exists x2
13Use earlier factsL28–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
specialize prime_exponent_prefix_gcd_successor (b) - L29
specialize prime_exponent_prefix_gcd_successor (c) - L30
specialize prime_exponent_prefix_gcd_successor (l) - L31
specialize prime_exponent_prefix_gcd_successor (x) - L32
specialize prime_exponent_prefix_gcd_successor (x1) - L33
specialize prime_exponent_prefix_gcd_successor (x2) - L34
apply prime_exponent_prefix_gcd_successor - L35
exact hprev_witness - L36
exact hlast_witness - L37
exact hmerge_witness
Original exact command ledger · 37 lines
- 0001
intro l - 0002
induction l - 0003
intro b - 0004
intro c - 0005
exists 0 - 0006
specialize prime_exponent_prefix_gcd_empty (b) - 0007
specialize prime_exponent_prefix_gcd_empty (c) - 0008
apply prime_exponent_prefix_gcd_empty - 0009
intro b - 0010
intro c - 0011
have hprev : exists g. (((forall ppf_index_gcd_previouscommon ppf_entry_gcd_previouscommon. (exists pvs_gap_gcd_previouscommonbound. pvs_gap_gcd_previouscommonbound + S (ppf_index_gcd_previouscommon) = (l)) -> (((exists ff_h_pvs_gcd_previouscommonentry. ff_h_pvs_gcd_previouscommonentry + S (ppf_entry_gcd_previouscommon) = S ((S (ppf_index_gcd_previouscommon)) * c)) /\ exists ff_q_pvs_gcd_previouscommonentry. b = ff_q_pvs_gcd_previouscommonentry * S ((S (ppf_index_gcd_previouscommon)) * c) + (ppf_entry_gcd_previouscommon))) -> (exists pvs_factor_gcd_previouscommondivisor. (ppf_entry_gcd_previouscommon) = (g) * pvs_factor_gcd_previouscommondivisor)) /\ (forall ppf_common_gcd_previous. (forall ppf_index_gcd_previousother ppf_entry_gcd_previousother. (exists pvs_gap_gcd_previousotherbound. pvs_gap_gcd_previousotherbound + S (ppf_index_gcd_previousother) = (l)) -> (((exists ff_h_pvs_gcd_previousotherentry. ff_h_pvs_gcd_previousotherentry + S (ppf_entry_gcd_previousother) = S ((S (ppf_index_gcd_previousother)) * c)) /\ exists ff_q_pvs_gcd_previousotherentry. b = ff_q_pvs_gcd_previousotherentry * S ((S (ppf_index_gcd_previousother)) * c) + (ppf_entry_gcd_previousother))) -> (exists pvs_factor_gcd_previousotherdivisor. (ppf_entry_gcd_previousother) = (ppf_common_gcd_previous) * pvs_factor_gcd_previousotherdivisor)) -> (exists pvs_factor_gcd_previousgreatest. (g) = (ppf_common_gcd_previous) * pvs_factor_gcd_previousgreatest)))) - 0012
specialize IH (b) - 0013
specialize IH (c) - 0014
apply IH - 0015
cases hprev - 0016
have hlast : exists v. (((exists ff_h_pvs_gcd_terminal. ff_h_pvs_gcd_terminal + S (v) = S ((S (l)) * c)) /\ exists ff_q_pvs_gcd_terminal. b = ff_q_pvs_gcd_terminal * S ((S (l)) * c) + (v))) - 0017
specialize beta_at_exists (b) - 0018
specialize beta_at_exists (c) - 0019
specialize beta_at_exists (l) - 0020
apply beta_at_exists - 0021
cases hlast - 0022
have hmerge : exists h. ((((exists hag_left_factor_ppf_gcd_construct. x = h * hag_left_factor_ppf_gcd_construct) /\ (exists hag_right_factor_ppf_gcd_construct. x1 = h * hag_right_factor_ppf_gcd_construct)) /\ forall hag_divisor_ppf_gcd_construct. (exists hag_common_left_ppf_gcd_construct. x = hag_divisor_ppf_gcd_construct * hag_common_left_ppf_gcd_construct) -> (exists hag_common_right_ppf_gcd_construct. x1 = hag_divisor_ppf_gcd_construct * hag_common_right_ppf_gcd_construct) -> exists hag_greatest_factor_ppf_gcd_construct. h = hag_divisor_ppf_gcd_construct * hag_greatest_factor_ppf_gcd_construct)) - 0023
specialize canonical_gcd_exists (x) - 0024
specialize canonical_gcd_exists (x1) - 0025
apply canonical_gcd_exists - 0026
cases hmerge - 0027
exists x2 - 0028
specialize prime_exponent_prefix_gcd_successor (b) - 0029
specialize prime_exponent_prefix_gcd_successor (c) - 0030
specialize prime_exponent_prefix_gcd_successor (l) - 0031
specialize prime_exponent_prefix_gcd_successor (x) - 0032
specialize prime_exponent_prefix_gcd_successor (x1) - 0033
specialize prime_exponent_prefix_gcd_successor (x2) - 0034
apply prime_exponent_prefix_gcd_successor - 0035
exact hprev_witness - 0036
exact hlast_witness - 0037
exact hmerge_witness