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.
Statement with defined notation
∀ b. ∀ c. ∀ l. (∃ x. ∃ y. ∃ z. Lt(x,l) ∧ (Lt(y,l) ∧ (¬x = y ∧ (BetaAt(b,c,x,z) ∧ BetaAt(b,c,y,z))))) ∨ InjectivePrefix(b,c,l)Every purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.
Definitions used by this theorem
In the theorem statement
In local proof propositions
Exact expanded first-order 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))Proof neighborhood
Direct theorem prerequisites
TS000O finite_prefix_collision_succ beta_at_exists · Stable closed finite_contains_decidable · Stable closed TS000P finite_prefix_last_occurrence_collision TS000Q finite_prefix_injective_extend_freshDirect theorem dependents
Definition-aware tactic body
Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay command.
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 : ∃ v. BetaAt(b,c,l,v)Definitions: BetaAt(b,c,l,v)Original native command in the exact edition - 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.
- L35
have hcontains : ContainsPrefix(b,c,l,x) ∨ ¬ContainsPrefix(b,c,l,x)Definitions: ContainsPrefix(b,c,l,x)Original native command in the exact edition - L36
specialize finite_contains_decidable b - L37
specialize finite_contains_decidable c - L38
specialize finite_contains_decidable l - L39
specialize finite_contains_decidable x - L40
exact finite_contains_decidable
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 defined 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 : ∃ v. BetaAt(b,c,l,v)Exact native replay line
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 : ContainsPrefix(b,c,l,x) ∨ ¬ContainsPrefix(b,c,l,x)Exact native replay line
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