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 m b c l v. (forall eu_factor_index_factors_extend_old. (exists eut_gap_eu_factors_extend_old_index. eut_gap_eu_factors_extend_old_index + S (eu_factor_index_factors_extend_old) = (l)) -> exists eu_factor_value_factors_extend_old. (((exists fs_h_eu_factors_extend_old_at. fs_h_eu_factors_extend_old_at + S (eu_factor_value_factors_extend_old) = S ((S (eu_factor_index_factors_extend_old)) * c)) /\ exists fs_q_eu_factors_extend_old_at. b = fs_q_eu_factors_extend_old_at * S ((S (eu_factor_index_factors_extend_old)) * c) + (eu_factor_value_factors_extend_old))) /\ ((((forall eut_divisor_eu_factors_extend_old_choice_coprime. (exists eut_left_eu_factors_extend_old_choice_coprime. (eu_factor_index_factors_extend_old) = eut_divisor_eu_factors_extend_old_choice_coprime * eut_left_eu_factors_extend_old_choice_coprime) -> (exists eut_right_eu_factors_extend_old_choice_coprime. (m) = eut_divisor_eu_factors_extend_old_choice_coprime * eut_right_eu_factors_extend_old_choice_coprime) -> eut_divisor_eu_factors_extend_old_choice_coprime = 1) /\ (eu_factor_value_factors_extend_old)=(eu_factor_index_factors_extend_old)) \/ (~(forall eut_divisor_eu_factors_extend_old_choice_coprime. (exists eut_left_eu_factors_extend_old_choice_coprime. (eu_factor_index_factors_extend_old) = eut_divisor_eu_factors_extend_old_choice_coprime * eut_left_eu_factors_extend_old_choice_coprime) -> (exists eut_right_eu_factors_extend_old_choice_coprime. (m) = eut_divisor_eu_factors_extend_old_choice_coprime * eut_right_eu_factors_extend_old_choice_coprime) -> eut_divisor_eu_factors_extend_old_choice_coprime = 1) /\ (eu_factor_value_factors_extend_old)=1)))) -> ((((forall eut_divisor_eu_factor_extend_last_coprime. (exists eut_left_eu_factor_extend_last_coprime. (l) = eut_divisor_eu_factor_extend_last_coprime * eut_left_eu_factor_extend_last_coprime) -> (exists eut_right_eu_factor_extend_last_coprime. (m) = eut_divisor_eu_factor_extend_last_coprime * eut_right_eu_factor_extend_last_coprime) -> eut_divisor_eu_factor_extend_last_coprime = 1) /\ (v)=(l)) \/ (~(forall eut_divisor_eu_factor_extend_last_coprime. (exists eut_left_eu_factor_extend_last_coprime. (l) = eut_divisor_eu_factor_extend_last_coprime * eut_left_eu_factor_extend_last_coprime) -> (exists eut_right_eu_factor_extend_last_coprime. (m) = eut_divisor_eu_factor_extend_last_coprime * eut_right_eu_factor_extend_last_coprime) -> eut_divisor_eu_factor_extend_last_coprime = 1) /\ (v)=1))) -> exists d e. (forall eu_factor_index_factors_extend_new. (exists eut_gap_eu_factors_extend_new_index. eut_gap_eu_factors_extend_new_index + S (eu_factor_index_factors_extend_new) = (S l)) -> exists eu_factor_value_factors_extend_new. (((exists fs_h_eu_factors_extend_new_at. fs_h_eu_factors_extend_new_at + S (eu_factor_value_factors_extend_new) = S ((S (eu_factor_index_factors_extend_new)) * e)) /\ exists fs_q_eu_factors_extend_new_at. d = fs_q_eu_factors_extend_new_at * S ((S (eu_factor_index_factors_extend_new)) * e) + (eu_factor_value_factors_extend_new))) /\ ((((forall eut_divisor_eu_factors_extend_new_choice_coprime. (exists eut_left_eu_factors_extend_new_choice_coprime. (eu_factor_index_factors_extend_new) = eut_divisor_eu_factors_extend_new_choice_coprime * eut_left_eu_factors_extend_new_choice_coprime) -> (exists eut_right_eu_factors_extend_new_choice_coprime. (m) = eut_divisor_eu_factors_extend_new_choice_coprime * eut_right_eu_factors_extend_new_choice_coprime) -> eut_divisor_eu_factors_extend_new_choice_coprime = 1) /\ (eu_factor_value_factors_extend_new)=(eu_factor_index_factors_extend_new)) \/ (~(forall eut_divisor_eu_factors_extend_new_choice_coprime. (exists eut_left_eu_factors_extend_new_choice_coprime. (eu_factor_index_factors_extend_new) = eut_divisor_eu_factors_extend_new_choice_coprime * eut_left_eu_factors_extend_new_choice_coprime) -> (exists eut_right_eu_factors_extend_new_choice_coprime. (m) = eut_divisor_eu_factors_extend_new_choice_coprime * eut_right_eu_factors_extend_new_choice_coprime) -> eut_divisor_eu_factors_extend_new_choice_coprime = 1) /\ (eu_factor_value_factors_extend_new)=1))))Constructive proof overview
Generated structural guide
Actually append the independently chosen next factor while preserving every earlier factor.
The unchanged tactic script uses 2 declared prerequisites and contains 47 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 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.
01Fix variables and assumptionsL1–7
02Use earlier factsL8–11
03Separate the logical casesL12–14
04Construct an explicit witnessL15–16
05Fix variables and assumptionsL17–18
06Establish hsL19–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
07Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
cases hs
08Construct an explicit witnessL25–25
Supply the displayed value, then prove that it has the required property.
- L25
exists v
09Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
split
10Calculate and transport equalitiesL27–28
11Use earlier factsL29–29
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L29
exact beta_prefix_extend_witness_witness_left
12Calculate and transport equalitiesL30–32
13Use earlier factsL33–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
exact hv
14Establish hpL34–37
15Separate the logical casesL38–39
16Construct an explicit witnessL40–40
Supply the displayed value, then prove that it has the required property.
- L40
exists x2
17Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
split
18Use earlier factsL42–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 47 lines
- 0001
intro m - 0002
intro b - 0003
intro c - 0004
intro l - 0005
intro v - 0006
intro h - 0007
intro hv - 0008
specialize beta_prefix_extend l - 0009
specialize beta_prefix_extend b - 0010
specialize beta_prefix_extend c - 0011
specialize beta_prefix_extend v - 0012
cases beta_prefix_extend - 0013
cases beta_prefix_extend_witness - 0014
cases beta_prefix_extend_witness_witness - 0015
exists x - 0016
exists x1 - 0017
intro i - 0018
intro hi - 0019
have hs : i=l \/ (exists eut_gap_eu_factor_extend_index. eut_gap_eu_factor_extend_index + S (i) = (l)) - 0020
specialize finite_lt_succ_eq_or_lt (l) - 0021
specialize finite_lt_succ_eq_or_lt (i) - 0022
apply finite_lt_succ_eq_or_lt - 0023
exact hi - 0024
cases hs - 0025
exists v - 0026
split - 0027
rewrite hs_left - 0028
rewrite hs_left - 0029
exact beta_prefix_extend_witness_witness_left - 0030
rewrite hs_left - 0031
rewrite hs_left - 0032
rewrite hs_left - 0033
exact hv - 0034
have hp : exists w. (((exists fs_h_eu_factor_extend_old. fs_h_eu_factor_extend_old + S (w) = S ((S (i)) * c)) /\ exists fs_q_eu_factor_extend_old. b = fs_q_eu_factor_extend_old * S ((S (i)) * c) + (w))) /\ ((((forall eut_divisor_eu_factor_extend_old_coprime. (exists eut_left_eu_factor_extend_old_coprime. (i) = eut_divisor_eu_factor_extend_old_coprime * eut_left_eu_factor_extend_old_coprime) -> (exists eut_right_eu_factor_extend_old_coprime. (m) = eut_divisor_eu_factor_extend_old_coprime * eut_right_eu_factor_extend_old_coprime) -> eut_divisor_eu_factor_extend_old_coprime = 1) /\ (w)=(i)) \/ (~(forall eut_divisor_eu_factor_extend_old_coprime. (exists eut_left_eu_factor_extend_old_coprime. (i) = eut_divisor_eu_factor_extend_old_coprime * eut_left_eu_factor_extend_old_coprime) -> (exists eut_right_eu_factor_extend_old_coprime. (m) = eut_divisor_eu_factor_extend_old_coprime * eut_right_eu_factor_extend_old_coprime) -> eut_divisor_eu_factor_extend_old_coprime = 1) /\ (w)=1))) - 0035
specialize h (i) - 0036
apply h - 0037
exact hs_right - 0038
cases hp - 0039
cases hp_witness - 0040
exists x2 - 0041
split - 0042
specialize beta_prefix_extend_witness_witness_right (i) - 0043
specialize beta_prefix_extend_witness_witness_right (x2) - 0044
apply beta_prefix_extend_witness_witness_right - 0045
exact hs_right - 0046
exact hp_witness_left - 0047
exact hp_witness_right