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 PA statement
forall b c l n. (forall fom_value_search_cover. (exists fom_gap_search_cover_value_bound. fom_gap_search_cover_value_bound + S (fom_value_search_cover) = n) -> exists fom_index_search_cover. ((exists fom_gap_search_cover_index_bound. fom_gap_search_cover_index_bound + S (fom_index_search_cover) = l) /\ (((exists fom_beta_height_search_cover_entry. fom_beta_height_search_cover_entry + S (fom_value_search_cover) = S ((S (fom_index_search_cover)) * c)) /\ exists fom_beta_quotient_search_cover_entry. b = fom_beta_quotient_search_cover_entry * S ((S (fom_index_search_cover)) * c) + (fom_value_search_cover))))) \/ (exists fom_value_search_omit. ((exists fom_gap_search_omit_value_bound. fom_gap_search_omit_value_bound + S (fom_value_search_omit) = n) /\ ~(exists fom_index_search_omit. ((exists fom_gap_search_omit_index_bound. fom_gap_search_omit_index_bound + S (fom_index_search_omit) = l) /\ (((exists fom_beta_height_search_omit_entry. fom_beta_height_search_omit_entry + S (fom_value_search_omit) = S ((S (fom_index_search_omit)) * c)) /\ exists fom_beta_quotient_search_omit_entry. b = fom_beta_quotient_search_omit_entry * S ((S (fom_index_search_omit)) * c) + (fom_value_search_omit)))))))Structural proof guide
Generated structural guide
Bounded occurrence search either covers the target interval or returns an explicit omission.
Use the direct prerequisites add_eq_zero_right, succ_ne_zero, finite_contains_decidable, finite_lt_succ_eq_or_lt, le_succ, le_refl as previously established PA formulas.
The proof proceeds by structural induction (1), case analysis (6), intermediate claims (5), equality transport (2).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA0004 add_eq_zero_right PA0005 succ_ne_zero PA004H finite_contains_decidable PA003D finite_lt_succ_eq_or_lt PA002O le_succ PA001A le_reflDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v25 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
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 (6)
01Fix variables and assumptionsL1–3
02Induction on nL4–4
Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.
- L4
induction n
03Separate the logical casesL5–5
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L5
left
04Fix variables and assumptionsL6–7
05Separate the logical casesL8–9
06Establish hsyL10–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
07Establish hpreviousL18–19
Establish this local claim before using it. It is not an additional assumption.
- L18
have hprevious : (∀ x. Lt(x,n) → ContainsPrefix(b,c,l,x)) ∨ (∃ x. Lt(x,n) ∧ ¬ContainsPrefix(b,c,l,x))Definitions: LtContainsPrefix - L19
exact IH
08Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
cases hprevious
09Establish htopL21–26
Establish this local claim before using it. It is not an additional assumption.
10Separate the logical casesL27–28
11Establish hsuccessor_coverL29–31
Establish this local claim before using it. It is not an additional assumption.
- L29
have hsuccessor_cover : ∀ fom_value_search_successor_cover. Lt(fom_value_search_successor_cover,S n) → ContainsPrefix(b,c,l,fom_value_search_successor_cover)Definitions: LtContainsPrefix - L30
intro y - L31
intro hy
12Establish hsplitL32–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
13Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
cases hsplit
14Calculate and transport equalitiesL38–39
15Use earlier factsL40–44
16Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
right
17Construct an explicit witnessL46–46
Supply the displayed value, then prove that it has the required property.
- L46
exists n
18Separate the logical casesL47–47
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L47
split
19Use earlier factsL48–50
20Separate the logical casesL51–53
21Construct an explicit witnessL54–54
Supply the displayed value, then prove that it has the required property.
- L54
exists x
22Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
split
Original exact command ledger · 60 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
induction n - 0005
left - 0006
intro y - 0007
intro hy - 0008
exfalso - 0009
cases hy - 0010
have hsy : S y = 0 - 0011
specialize add_eq_zero_right x - 0012
specialize add_eq_zero_right (S y) - 0013
apply add_eq_zero_right - 0014
exact hy_witness - 0015
specialize succ_ne_zero y - 0016
apply succ_ne_zero - 0017
exact hsy - 0018
have hprevious : (forall fom_value_search_previous_cover. (exists fom_gap_search_previous_cover_value_bound. fom_gap_search_previous_cover_value_bound + S (fom_value_search_previous_cover) = n) -> exists fom_index_search_previous_cover. ((exists fom_gap_search_previous_cover_index_bound. fom_gap_search_previous_cover_index_bound + S (fom_index_search_previous_cover) = l) /\ (((exists fom_beta_height_search_previous_cover_entry. fom_beta_height_search_previous_cover_entry + S (fom_value_search_previous_cover) = S ((S (fom_index_search_previous_cover)) * c)) /\ exists fom_beta_quotient_search_previous_cover_entry. b = fom_beta_quotient_search_previous_cover_entry * S ((S (fom_index_search_previous_cover)) * c) + (fom_value_search_previous_cover))))) \/ (exists fom_value_search_previous_omit. ((exists fom_gap_search_previous_omit_value_bound. fom_gap_search_previous_omit_value_bound + S (fom_value_search_previous_omit) = n) /\ ~(exists fom_index_search_previous_omit. ((exists fom_gap_search_previous_omit_index_bound. fom_gap_search_previous_omit_index_bound + S (fom_index_search_previous_omit) = l) /\ (((exists fom_beta_height_search_previous_omit_entry. fom_beta_height_search_previous_omit_entry + S (fom_value_search_previous_omit) = S ((S (fom_index_search_previous_omit)) * c)) /\ exists fom_beta_quotient_search_previous_omit_entry. b = fom_beta_quotient_search_previous_omit_entry * S ((S (fom_index_search_previous_omit)) * c) + (fom_value_search_previous_omit))))))) - 0019
exact IH - 0020
cases hprevious - 0021
have htop : (exists fp_i_search_top_contains. ((exists fp_gap_search_top_contains_index. fp_gap_search_top_contains_index + S fp_i_search_top_contains = l) /\ (((exists ff_h_search_top_contains_entry. ff_h_search_top_contains_entry + S (n) = S ((S (fp_i_search_top_contains)) * c)) /\ exists ff_q_search_top_contains_entry. b = ff_q_search_top_contains_entry * S ((S (fp_i_search_top_contains)) * c) + (n))))) \/ ~(exists fp_i_search_top_contains. ((exists fp_gap_search_top_contains_index. fp_gap_search_top_contains_index + S fp_i_search_top_contains = l) /\ (((exists ff_h_search_top_contains_entry. ff_h_search_top_contains_entry + S (n) = S ((S (fp_i_search_top_contains)) * c)) /\ exists ff_q_search_top_contains_entry. b = ff_q_search_top_contains_entry * S ((S (fp_i_search_top_contains)) * c) + (n))))) - 0022
specialize finite_contains_decidable b - 0023
specialize finite_contains_decidable c - 0024
specialize finite_contains_decidable l - 0025
specialize finite_contains_decidable n - 0026
exact finite_contains_decidable - 0027
cases htop - 0028
left - 0029
have hsuccessor_cover : forall fom_value_search_successor_cover. (exists fom_gap_search_successor_cover_value_bound. fom_gap_search_successor_cover_value_bound + S (fom_value_search_successor_cover) = S n) -> exists fom_index_search_successor_cover. ((exists fom_gap_search_successor_cover_index_bound. fom_gap_search_successor_cover_index_bound + S (fom_index_search_successor_cover) = l) /\ (((exists fom_beta_height_search_successor_cover_entry. fom_beta_height_search_successor_cover_entry + S (fom_value_search_successor_cover) = S ((S (fom_index_search_successor_cover)) * c)) /\ exists fom_beta_quotient_search_successor_cover_entry. b = fom_beta_quotient_search_successor_cover_entry * S ((S (fom_index_search_successor_cover)) * c) + (fom_value_search_successor_cover)))) - 0030
intro y - 0031
intro hy - 0032
have hsplit : y = n \/ exists h. h + S y = n - 0033
specialize finite_lt_succ_eq_or_lt n - 0034
specialize finite_lt_succ_eq_or_lt y - 0035
apply finite_lt_succ_eq_or_lt - 0036
exact hy - 0037
cases hsplit - 0038
rewrite hsplit_left - 0039
rewrite hsplit_left - 0040
exact htop_left - 0041
specialize hprevious_left y - 0042
apply hprevious_left - 0043
exact hsplit_right - 0044
exact hsuccessor_cover - 0045
right - 0046
exists n - 0047
split - 0048
specialize le_refl (S n) - 0049
exact le_refl - 0050
exact htop_right - 0051
right - 0052
cases hprevious_right - 0053
cases hprevious_right_witness - 0054
exists x - 0055
split - 0056
specialize le_succ (S x) - 0057
specialize le_succ n - 0058
apply le_succ - 0059
exact hprevious_right_witness_left - 0060
exact hprevious_right_witness_right