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 b c l. ((exists ftsp_first_fpcd_generic ftsp_second_fpcd_generic ftsp_value_fpcd_generic. ((exists ftsp_gap_fpcd_generic_first. ftsp_gap_fpcd_generic_first + S (ftsp_first_fpcd_generic) = l) /\ ((exists ftsp_gap_fpcd_generic_second. ftsp_gap_fpcd_generic_second + S (ftsp_second_fpcd_generic) = l) /\ (~(ftsp_first_fpcd_generic = ftsp_second_fpcd_generic) /\ ((((exists ff_h_ftsp_fpcd_generic_left. ff_h_ftsp_fpcd_generic_left + S (ftsp_value_fpcd_generic) = S ((S (ftsp_first_fpcd_generic)) * c)) /\ exists ff_q_ftsp_fpcd_generic_left. b = ff_q_ftsp_fpcd_generic_left * S ((S (ftsp_first_fpcd_generic)) * c) + (ftsp_value_fpcd_generic))) /\ (((exists ff_h_ftsp_fpcd_generic_right. ff_h_ftsp_fpcd_generic_right + S (ftsp_value_fpcd_generic) = S ((S (ftsp_second_fpcd_generic)) * c)) /\ exists ff_q_ftsp_fpcd_generic_right. b = ff_q_ftsp_fpcd_generic_right * S ((S (ftsp_second_fpcd_generic)) * c) + (ftsp_value_fpcd_generic)))))))) \/ (forall fp_i_fpcd_generic fp_j_fpcd_generic fp_value_fpcd_generic. (exists fp_gap_fpcd_generic_i. fp_gap_fpcd_generic_i + S fp_i_fpcd_generic = l) -> (exists fp_gap_fpcd_generic_j. fp_gap_fpcd_generic_j + S fp_j_fpcd_generic = l) -> (((exists ff_h_fpcd_generic_left. ff_h_fpcd_generic_left + S (fp_value_fpcd_generic) = S ((S (fp_i_fpcd_generic)) * c)) /\ exists ff_q_fpcd_generic_left. b = ff_q_fpcd_generic_left * S ((S (fp_i_fpcd_generic)) * c) + (fp_value_fpcd_generic))) -> (((exists ff_h_fpcd_generic_right. ff_h_fpcd_generic_right + S (fp_value_fpcd_generic) = S ((S (fp_j_fpcd_generic)) * c)) /\ exists ff_q_fpcd_generic_right. b = ff_q_fpcd_generic_right * S ((S (fp_j_fpcd_generic)) * c) + (fp_value_fpcd_generic))) -> fp_i_fpcd_generic = fp_j_fpcd_generic))Constructive proof overview
Generated structural guide
Every finite beta-coded prefix constructively yields either explicit distinct equal-value indices or a proof of injectivity.
The unchanged tactic script uses 7 declared prerequisites and contains 60 exact native proof lines.
dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged
Proof neighborhood
Direct dependencies
add_eq_zero_right Stable theorem; checked-use authorized succ_ne_zero Stable theorem; checked-use authorized TS000O finite_prefix_collision_succ beta_at_exists Stable theorem; checked-use authorized finite_contains_decidable Stable theorem; checked-use authorized TS000P finite_prefix_last_occurrence_collision TS000Q finite_prefix_injective_extend_freshDirect 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 (3)
01Fix variables and assumptionsL1–2
02Induction on lL3–3
Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.
- L3
induction l
03Separate the logical casesL4–4
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L4
right
04Fix variables and assumptionsL5–11
05Separate the logical casesL12–13
06Establish hzeroL14–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
07Separate the logical casesL22–23
08Use earlier factsL24–28
09Establish hlastL29–33
Establish this local claim before using it. It is not an additional assumption.
- L29
have hlast : exists v. (((exists ff_h_fpcd_induction_last. ff_h_fpcd_induction_last + S (v) = S ((S (l)) * c)) /\ exists ff_q_fpcd_induction_last. b = ff_q_fpcd_induction_last * S ((S (l)) * c) + (v))) - L30
specialize beta_at_exists b - L31
specialize beta_at_exists c - L32
specialize beta_at_exists l - L33
exact beta_at_exists
10Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
cases hlast
11Establish hcontainsL35–40
Establish this local claim before using it. It is not an additional assumption.
12Separate the logical casesL41–42
13Use earlier factsL43–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L43
specialize finite_prefix_last_occurrence_collision b - L44
specialize finite_prefix_last_occurrence_collision c - L45
specialize finite_prefix_last_occurrence_collision l - L46
specialize finite_prefix_last_occurrence_collision x - L47
apply finite_prefix_last_occurrence_collision - L48
exact hlast_witness - L49
exact hcontains_left
14Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
right
15Use earlier factsL51–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
16Fix variables and assumptionsL58–58
Work with arbitrary variables or the premises of the current implication.
- L58
intro hoccurs
Original exact command ledger · 60 lines
- 0001
intro b - 0002
intro c - 0003
induction l - 0004
right - 0005
intro i - 0006
intro j - 0007
intro v - 0008
intro hibound - 0009
intro hjbound - 0010
intro hleft - 0011
intro hright - 0012
exfalso - 0013
cases hibound - 0014
have hzero : S i = 0 - 0015
specialize add_eq_zero_right x - 0016
specialize add_eq_zero_right (S i) - 0017
apply add_eq_zero_right - 0018
exact hibound_witness - 0019
specialize succ_ne_zero i - 0020
apply succ_ne_zero - 0021
exact hzero - 0022
cases IH - 0023
left - 0024
specialize finite_prefix_collision_succ b - 0025
specialize finite_prefix_collision_succ c - 0026
specialize finite_prefix_collision_succ l - 0027
apply finite_prefix_collision_succ - 0028
exact IH_left - 0029
have hlast : exists v. (((exists ff_h_fpcd_induction_last. ff_h_fpcd_induction_last + S (v) = S ((S (l)) * c)) /\ exists ff_q_fpcd_induction_last. b = ff_q_fpcd_induction_last * S ((S (l)) * c) + (v))) - 0030
specialize beta_at_exists b - 0031
specialize beta_at_exists c - 0032
specialize beta_at_exists l - 0033
exact beta_at_exists - 0034
cases hlast - 0035
have hcontains : ((exists fp_i_fpcd_induction_contains. ((exists fp_gap_fpcd_induction_contains_index. fp_gap_fpcd_induction_contains_index + S fp_i_fpcd_induction_contains = l) /\ (((exists ff_h_fpcd_induction_contains_entry. ff_h_fpcd_induction_contains_entry + S (x) = S ((S (fp_i_fpcd_induction_contains)) * c)) /\ exists ff_q_fpcd_induction_contains_entry. b = ff_q_fpcd_induction_contains_entry * S ((S (fp_i_fpcd_induction_contains)) * c) + (x))))) \/ ~(exists fp_i_fpcd_induction_contains. ((exists fp_gap_fpcd_induction_contains_index. fp_gap_fpcd_induction_contains_index + S fp_i_fpcd_induction_contains = l) /\ (((exists ff_h_fpcd_induction_contains_entry. ff_h_fpcd_induction_contains_entry + S (x) = S ((S (fp_i_fpcd_induction_contains)) * c)) /\ exists ff_q_fpcd_induction_contains_entry. b = ff_q_fpcd_induction_contains_entry * S ((S (fp_i_fpcd_induction_contains)) * c) + (x)))))) - 0036
specialize finite_contains_decidable b - 0037
specialize finite_contains_decidable c - 0038
specialize finite_contains_decidable l - 0039
specialize finite_contains_decidable x - 0040
exact finite_contains_decidable - 0041
cases hcontains - 0042
left - 0043
specialize finite_prefix_last_occurrence_collision b - 0044
specialize finite_prefix_last_occurrence_collision c - 0045
specialize finite_prefix_last_occurrence_collision l - 0046
specialize finite_prefix_last_occurrence_collision x - 0047
apply finite_prefix_last_occurrence_collision - 0048
exact hlast_witness - 0049
exact hcontains_left - 0050
right - 0051
specialize finite_prefix_injective_extend_fresh b - 0052
specialize finite_prefix_injective_extend_fresh c - 0053
specialize finite_prefix_injective_extend_fresh l - 0054
specialize finite_prefix_injective_extend_fresh x - 0055
apply finite_prefix_injective_extend_fresh - 0056
exact IH_right - 0057
exact hlast_witness - 0058
intro hoccurs - 0059
apply hcontains_right - 0060
exact hoccurs