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
∀ q. ∀ b. ∀ c. ∀ k. ∀ n. (∀ x. Lt(x,k) → ∃ y. BetaAt(b,c,x,y) ∧ (y = 1 ∧ Lt(x,q) ∨ y = 0 ∧ Lt(q,S x))) → Le(q,k) → BitCount(b,c,k,n) → n = qEvery purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
6 occurrences
In local proof propositions
14 occurrences
Exact expanded native-PA statement
forall q b c k n. (forall eis_index_initial_segment_exact_source. (exists eis_lt_gap_initial_segment_exact_source_bound. eis_lt_gap_initial_segment_exact_source_bound + S (eis_index_initial_segment_exact_source) = k) -> exists eis_bit_initial_segment_exact_source. ((((exists ff_h_eis_initial_segment_exact_source_decoded. ff_h_eis_initial_segment_exact_source_decoded + S (eis_bit_initial_segment_exact_source) = S ((S (eis_index_initial_segment_exact_source)) * c)) /\ exists ff_q_eis_initial_segment_exact_source_decoded. b = ff_q_eis_initial_segment_exact_source_decoded * S ((S (eis_index_initial_segment_exact_source)) * c) + (eis_bit_initial_segment_exact_source))) /\ (((eis_bit_initial_segment_exact_source = 1 /\ (exists eis_le_gap_initial_segment_exact_source_choice_inside. eis_le_gap_initial_segment_exact_source_choice_inside + (S eis_index_initial_segment_exact_source) = q)) \/ (eis_bit_initial_segment_exact_source = 0 /\ (exists eis_lt_gap_initial_segment_exact_source_choice_outside. eis_lt_gap_initial_segment_exact_source_choice_outside + S (q) = S eis_index_initial_segment_exact_source)))))) -> (exists eis_le_gap_initial_segment_exact_threshold. eis_le_gap_initial_segment_exact_threshold + (q) = k) -> (((exists ff_u_initial_segment_exact_count_sum ff_v_initial_segment_exact_count_sum. ((((exists ff_h_initial_segment_exact_count_sum_start. ff_h_initial_segment_exact_count_sum_start + S (0) = S ((S (0)) * ff_v_initial_segment_exact_count_sum)) /\ exists ff_q_initial_segment_exact_count_sum_start. ff_u_initial_segment_exact_count_sum = ff_q_initial_segment_exact_count_sum_start * S ((S (0)) * ff_v_initial_segment_exact_count_sum) + (0))) /\ ((((exists ff_h_initial_segment_exact_count_sum_terminal. ff_h_initial_segment_exact_count_sum_terminal + S (n) = S ((S (k)) * ff_v_initial_segment_exact_count_sum)) /\ exists ff_q_initial_segment_exact_count_sum_terminal. ff_u_initial_segment_exact_count_sum = ff_q_initial_segment_exact_count_sum_terminal * S ((S (k)) * ff_v_initial_segment_exact_count_sum) + (n))) /\ forall ff_i_initial_segment_exact_count_sum. (exists ff_lt_initial_segment_exact_count_sum_bound. ff_lt_initial_segment_exact_count_sum_bound + S ff_i_initial_segment_exact_count_sum = k) -> exists ff_a_initial_segment_exact_count_sum ff_r_initial_segment_exact_count_sum ff_s_initial_segment_exact_count_sum. ((((exists ff_h_initial_segment_exact_count_sum_summand. ff_h_initial_segment_exact_count_sum_summand + S (ff_a_initial_segment_exact_count_sum) = S ((S (ff_i_initial_segment_exact_count_sum)) * c)) /\ exists ff_q_initial_segment_exact_count_sum_summand. b = ff_q_initial_segment_exact_count_sum_summand * S ((S (ff_i_initial_segment_exact_count_sum)) * c) + (ff_a_initial_segment_exact_count_sum))) /\ ((((exists ff_h_initial_segment_exact_count_sum_partial. ff_h_initial_segment_exact_count_sum_partial + S (ff_r_initial_segment_exact_count_sum) = S ((S (ff_i_initial_segment_exact_count_sum)) * ff_v_initial_segment_exact_count_sum)) /\ exists ff_q_initial_segment_exact_count_sum_partial. ff_u_initial_segment_exact_count_sum = ff_q_initial_segment_exact_count_sum_partial * S ((S (ff_i_initial_segment_exact_count_sum)) * ff_v_initial_segment_exact_count_sum) + (ff_r_initial_segment_exact_count_sum))) /\ ((((exists ff_h_initial_segment_exact_count_sum_successor. ff_h_initial_segment_exact_count_sum_successor + S (ff_s_initial_segment_exact_count_sum) = S ((S (S ff_i_initial_segment_exact_count_sum)) * ff_v_initial_segment_exact_count_sum)) /\ exists ff_q_initial_segment_exact_count_sum_successor. ff_u_initial_segment_exact_count_sum = ff_q_initial_segment_exact_count_sum_successor * S ((S (S ff_i_initial_segment_exact_count_sum)) * ff_v_initial_segment_exact_count_sum) + (ff_s_initial_segment_exact_count_sum))) /\ ff_s_initial_segment_exact_count_sum = ff_r_initial_segment_exact_count_sum + ff_a_initial_segment_exact_count_sum)))))) /\ (forall ff_i_initial_segment_exact_count_bits. (exists ff_lt_initial_segment_exact_count_bits_bound. ff_lt_initial_segment_exact_count_bits_bound + S ff_i_initial_segment_exact_count_bits = k) -> exists ff_bit_initial_segment_exact_count_bits. ((((exists ff_h_initial_segment_exact_count_bits_decoded. ff_h_initial_segment_exact_count_bits_decoded + S (ff_bit_initial_segment_exact_count_bits) = S ((S (ff_i_initial_segment_exact_count_bits)) * c)) /\ exists ff_q_initial_segment_exact_count_bits_decoded. b = ff_q_initial_segment_exact_count_bits_decoded * S ((S (ff_i_initial_segment_exact_count_bits)) * c) + (ff_bit_initial_segment_exact_count_bits))) /\ (ff_bit_initial_segment_exact_count_bits = 0 \/ ff_bit_initial_segment_exact_count_bits = 1))))) -> n = qProof neighborhood
Direct theorem prerequisites
PA001B le_zero PA000W le_eq_or_lt PA000V le_of_succ_le_succ PA002O le_succ PA001A le_refl PA003A lt_not_le PA0048 bit_count_zero PA0042 bit_count_succ_decompose PA00DV eisenstein_initial_segment_decoded_choice PA00DW beta_all_one_bit_count_exactDirect theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed 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 (10)
01Fix variables and assumptionsL1–3
02Induction on kL4–8
03Establish hq0L9–12
04Establish hn0L13–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply bit count zero.
05Calculate and transport equalitiesL23–23
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L23
symm
06Use earlier factsL24–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
exact hq0
07Fix variables and assumptionsL25–28
08Establish hsplitL29–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le eq or lt.
09Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
cases hsplit
10Establish halloneL35–37
Establish this local claim before using it. It is not an additional assumption.
- L35
have hallone : Repeat(b,c,1,S k)Definitions: Repeat(b,c,1,S k)Original native command in the exact edition - L36
intro j - L37
intro hj
11Establish hstoredL38–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprefix.
- L38
have hstored : ∃ bit. BetaAt(b,c,j,bit) ∧ (bit = 1 ∧ Lt(j,q) ∨ bit = 0 ∧ Lt(q,S j))Definitions: BetaAt(b,c,j,bit)Lt(j,q)Lt(q,S j)Original native command in the exact edition - L39
specialize hprefix j - L40
apply hprefix - L41
exact hj
12Separate the logical casesL42–45
13Establish hbit_oneL46–50
14Separate the logical casesL51–52
15Calculate and transport equalitiesL53–53
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L53
rewrite hsplit_left at hstored_witness_right_right_right
16Use earlier factsL54–58
17Establish hnL59–68
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta all one bit count exact.
18Calculate and transport equalitiesL69–69
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L69
symm
19Use earlier factsL70–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
exact hsplit_left
20Establish hqk_previousL71–75
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.
21Establish hpreviousL76–84
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprefix.
- L76
have hprevious : ∀ eis_index_initial_segment_functional_previous. Lt(eis_index_initial_segment_functional_previous,k) → ∃ x. BetaAt(b,c,eis_index_initial_segment_functional_previous,x) ∧ (x = 1 ∧ Lt(eis_index_initial_segment_functional_previous,q) ∨ x = 0 ∧ Lt(q,S eis_index_initial_segment_functional_previous))Definitions: Lt(eis_index_initial_segment_functional_previous,k)BetaAt(b,c,eis_index_initial_segment_functional_previous,x)Lt(eis_index_initial_segment_functional_previous,q)Lt(q,S eis_index_initial_segment_functional_previous)Original native command in the exact edition - L77
intro j - L78
intro hj - L79
specialize hprefix j - L80
apply hprefix - L81
specialize le_succ (S j) - L82
specialize le_succ k - L83
apply le_succ - L84
exact hj
22Establish hdecompL85–93
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply bit count succ decompose.
- L85
have hdecomp : ∃ a. ∃ r. BetaAt(b,c,k,a) ∧ (BitCount(b,c,k,r) ∧ ((a = 0 ∨ a = 1) ∧ n = r + a))Definitions: BetaAt(b,c,k,a)BitCount(b,c,k,r)Original native command in the exact edition - L86
specialize bit_count_succ_decompose b - L87
specialize bit_count_succ_decompose c - L88
specialize bit_count_succ_decompose k - L89
specialize bit_count_succ_decompose (S k) - L90
specialize bit_count_succ_decompose n - L91
apply bit_count_succ_decompose - L92
refl - L93
exact hcount
23Separate the logical casesL94–98
24Establish hlast_choiceL99–108
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein initial segment decoded choice.
- L99
have hlast_choice : x = 1 ∧ Lt(k,q) ∨ x = 0 ∧ Lt(q,S k)Definitions: Lt(k,q)Lt(q,S k)Original native command in the exact edition - L100
specialize eisenstein_initial_segment_decoded_choice q - L101
specialize eisenstein_initial_segment_decoded_choice b - L102
specialize eisenstein_initial_segment_decoded_choice c - L103
specialize eisenstein_initial_segment_decoded_choice (S k) - L104
specialize eisenstein_initial_segment_decoded_choice k - L105
specialize eisenstein_initial_segment_decoded_choice x - L106
apply eisenstein_initial_segment_decoded_choice - L107
exact hprefix - L108
specialize le_refl (S k)
25Use earlier factsL109–110
26Separate the logical casesL111–113
27Use earlier factsL114–118
28Separate the logical casesL119–119
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L119
cases hlast_choice_right
29Establish hrqL120–129
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
Original defined command ledger · 129 lines
- 0001
intro q - 0002
intro b - 0003
intro c - 0004
induction k - 0005
intro n - 0006
intro hprefix - 0007
intro hqk - 0008
intro hcount - 0009
have hq0 : q = 0 - 0010
specialize le_zero q - 0011
apply le_zero - 0012
exact hqk - 0013
have hn0 : n = 0 - 0014
specialize bit_count_zero b - 0015
specialize bit_count_zero c - 0016
specialize bit_count_zero 0 - 0017
specialize bit_count_zero n - 0018
apply bit_count_zero - 0019
refl - 0020
exact hcount - 0021
trans 0 - 0022
exact hn0 - 0023
symm - 0024
exact hq0 - 0025
intro n - 0026
intro hprefix - 0027
intro hqk - 0028
intro hcount - 0029
have hsplit : q = S k ∨ Lt(q,S k)Exact native replay line
have hsplit : q = S k \/ exists gap. gap + S q = S k - 0030
specialize le_eq_or_lt q - 0031
specialize le_eq_or_lt (S k) - 0032
apply le_eq_or_lt - 0033
exact hqk - 0034
cases hsplit - 0035
have hallone : Repeat(b,c,1,S k)Exact native replay line
have hallone : forall eis_one_index_initial_segment_functional_all_one. (exists eis_lt_gap_initial_segment_functional_all_one_bound. eis_lt_gap_initial_segment_functional_all_one_bound + S (eis_one_index_initial_segment_functional_all_one) = S k) -> (((exists ff_h_eis_initial_segment_functional_all_one_decoded. ff_h_eis_initial_segment_functional_all_one_decoded + S (1) = S ((S (eis_one_index_initial_segment_functional_all_one)) * c)) /\ exists ff_q_eis_initial_segment_functional_all_one_decoded. b = ff_q_eis_initial_segment_functional_all_one_decoded * S ((S (eis_one_index_initial_segment_functional_all_one)) * c) + (1))) - 0036
intro j - 0037
intro hj - 0038
have hstored : ∃ bit. BetaAt(b,c,j,bit) ∧ (bit = 1 ∧ Lt(j,q) ∨ bit = 0 ∧ Lt(q,S j))Exact native replay line
have hstored : exists bit. ((((exists ff_h_initial_segment_functional_stored. ff_h_initial_segment_functional_stored + S (bit) = S ((S (j)) * c)) /\ exists ff_q_initial_segment_functional_stored. b = ff_q_initial_segment_functional_stored * S ((S (j)) * c) + (bit))) /\ (((bit = 1 /\ (exists eis_le_gap_initial_segment_functional_stored_choice_inside. eis_le_gap_initial_segment_functional_stored_choice_inside + (S j) = q)) \/ (bit = 0 /\ (exists eis_lt_gap_initial_segment_functional_stored_choice_outside. eis_lt_gap_initial_segment_functional_stored_choice_outside + S (q) = S j))))) - 0039
specialize hprefix j - 0040
apply hprefix - 0041
exact hj - 0042
cases hstored - 0043
cases hstored_witness - 0044
cases hstored_witness_right - 0045
cases hstored_witness_right_left - 0046
have hbit_one : x = 1 - 0047
exact hstored_witness_right_left_left - 0048
rewrite hbit_one at hstored_witness_left - 0049
rewrite hbit_one at hstored_witness_left - 0050
exact hstored_witness_left - 0051
cases hstored_witness_right_right - 0052
exfalso - 0053
rewrite hsplit_left at hstored_witness_right_right_right - 0054
specialize lt_not_le (S k) - 0055
specialize lt_not_le (S j) - 0056
apply lt_not_le - 0057
exact hstored_witness_right_right_right - 0058
exact hj - 0059
have hn : n = S k - 0060
specialize beta_all_one_bit_count_exact b - 0061
specialize beta_all_one_bit_count_exact c - 0062
specialize beta_all_one_bit_count_exact (S k) - 0063
specialize beta_all_one_bit_count_exact n - 0064
apply beta_all_one_bit_count_exact - 0065
exact hallone - 0066
exact hcount - 0067
trans S k - 0068
exact hn - 0069
symm - 0070
exact hsplit_left - 0071
have hqk_previous : Le(q,k)Exact native replay line
have hqk_previous : exists gap. gap + q = k - 0072
specialize le_of_succ_le_succ q - 0073
specialize le_of_succ_le_succ k - 0074
apply le_of_succ_le_succ - 0075
exact hsplit_right - 0076
have hprevious : ∀ eis_index_initial_segment_functional_previous. Lt(eis_index_initial_segment_functional_previous,k) → ∃ x. BetaAt(b,c,eis_index_initial_segment_functional_previous,x) ∧ (x = 1 ∧ Lt(eis_index_initial_segment_functional_previous,q) ∨ x = 0 ∧ Lt(q,S eis_index_initial_segment_functional_previous))Exact native replay line
have hprevious : forall eis_index_initial_segment_functional_previous. (exists eis_lt_gap_initial_segment_functional_previous_bound. eis_lt_gap_initial_segment_functional_previous_bound + S (eis_index_initial_segment_functional_previous) = k) -> exists eis_bit_initial_segment_functional_previous. ((((exists ff_h_eis_initial_segment_functional_previous_decoded. ff_h_eis_initial_segment_functional_previous_decoded + S (eis_bit_initial_segment_functional_previous) = S ((S (eis_index_initial_segment_functional_previous)) * c)) /\ exists ff_q_eis_initial_segment_functional_previous_decoded. b = ff_q_eis_initial_segment_functional_previous_decoded * S ((S (eis_index_initial_segment_functional_previous)) * c) + (eis_bit_initial_segment_functional_previous))) /\ (((eis_bit_initial_segment_functional_previous = 1 /\ (exists eis_le_gap_initial_segment_functional_previous_choice_inside. eis_le_gap_initial_segment_functional_previous_choice_inside + (S eis_index_initial_segment_functional_previous) = q)) \/ (eis_bit_initial_segment_functional_previous = 0 /\ (exists eis_lt_gap_initial_segment_functional_previous_choice_outside. eis_lt_gap_initial_segment_functional_previous_choice_outside + S (q) = S eis_index_initial_segment_functional_previous))))) - 0077
intro j - 0078
intro hj - 0079
specialize hprefix j - 0080
apply hprefix - 0081
specialize le_succ (S j) - 0082
specialize le_succ k - 0083
apply le_succ - 0084
exact hj - 0085
have hdecomp : ∃ a. ∃ r. BetaAt(b,c,k,a) ∧ (BitCount(b,c,k,r) ∧ ((a = 0 ∨ a = 1) ∧ n = r + a))Exact native replay line
have hdecomp : exists a r. (((exists ff_h_initial_segment_functional_last. ff_h_initial_segment_functional_last + S (a) = S ((S (k)) * c)) /\ exists ff_q_initial_segment_functional_last. b = ff_q_initial_segment_functional_last * S ((S (k)) * c) + (a))) /\ ((((exists ff_u_initial_segment_functional_prefix_count_sum ff_v_initial_segment_functional_prefix_count_sum. ((((exists ff_h_initial_segment_functional_prefix_count_sum_start. ff_h_initial_segment_functional_prefix_count_sum_start + S (0) = S ((S (0)) * ff_v_initial_segment_functional_prefix_count_sum)) /\ exists ff_q_initial_segment_functional_prefix_count_sum_start. ff_u_initial_segment_functional_prefix_count_sum = ff_q_initial_segment_functional_prefix_count_sum_start * S ((S (0)) * ff_v_initial_segment_functional_prefix_count_sum) + (0))) /\ ((((exists ff_h_initial_segment_functional_prefix_count_sum_terminal. ff_h_initial_segment_functional_prefix_count_sum_terminal + S (r) = S ((S (k)) * ff_v_initial_segment_functional_prefix_count_sum)) /\ exists ff_q_initial_segment_functional_prefix_count_sum_terminal. ff_u_initial_segment_functional_prefix_count_sum = ff_q_initial_segment_functional_prefix_count_sum_terminal * S ((S (k)) * ff_v_initial_segment_functional_prefix_count_sum) + (r))) /\ forall ff_i_initial_segment_functional_prefix_count_sum. (exists ff_lt_initial_segment_functional_prefix_count_sum_bound. ff_lt_initial_segment_functional_prefix_count_sum_bound + S ff_i_initial_segment_functional_prefix_count_sum = k) -> exists ff_a_initial_segment_functional_prefix_count_sum ff_r_initial_segment_functional_prefix_count_sum ff_s_initial_segment_functional_prefix_count_sum. ((((exists ff_h_initial_segment_functional_prefix_count_sum_summand. ff_h_initial_segment_functional_prefix_count_sum_summand + S (ff_a_initial_segment_functional_prefix_count_sum) = S ((S (ff_i_initial_segment_functional_prefix_count_sum)) * c)) /\ exists ff_q_initial_segment_functional_prefix_count_sum_summand. b = ff_q_initial_segment_functional_prefix_count_sum_summand * S ((S (ff_i_initial_segment_functional_prefix_count_sum)) * c) + (ff_a_initial_segment_functional_prefix_count_sum))) /\ ((((exists ff_h_initial_segment_functional_prefix_count_sum_partial. ff_h_initial_segment_functional_prefix_count_sum_partial + S (ff_r_initial_segment_functional_prefix_count_sum) = S ((S (ff_i_initial_segment_functional_prefix_count_sum)) * ff_v_initial_segment_functional_prefix_count_sum)) /\ exists ff_q_initial_segment_functional_prefix_count_sum_partial. ff_u_initial_segment_functional_prefix_count_sum = ff_q_initial_segment_functional_prefix_count_sum_partial * S ((S (ff_i_initial_segment_functional_prefix_count_sum)) * ff_v_initial_segment_functional_prefix_count_sum) + (ff_r_initial_segment_functional_prefix_count_sum))) /\ ((((exists ff_h_initial_segment_functional_prefix_count_sum_successor. ff_h_initial_segment_functional_prefix_count_sum_successor + S (ff_s_initial_segment_functional_prefix_count_sum) = S ((S (S ff_i_initial_segment_functional_prefix_count_sum)) * ff_v_initial_segment_functional_prefix_count_sum)) /\ exists ff_q_initial_segment_functional_prefix_count_sum_successor. ff_u_initial_segment_functional_prefix_count_sum = ff_q_initial_segment_functional_prefix_count_sum_successor * S ((S (S ff_i_initial_segment_functional_prefix_count_sum)) * ff_v_initial_segment_functional_prefix_count_sum) + (ff_s_initial_segment_functional_prefix_count_sum))) /\ ff_s_initial_segment_functional_prefix_count_sum = ff_r_initial_segment_functional_prefix_count_sum + ff_a_initial_segment_functional_prefix_count_sum)))))) /\ (forall ff_i_initial_segment_functional_prefix_count_bits. (exists ff_lt_initial_segment_functional_prefix_count_bits_bound. ff_lt_initial_segment_functional_prefix_count_bits_bound + S ff_i_initial_segment_functional_prefix_count_bits = k) -> exists ff_bit_initial_segment_functional_prefix_count_bits. ((((exists ff_h_initial_segment_functional_prefix_count_bits_decoded. ff_h_initial_segment_functional_prefix_count_bits_decoded + S (ff_bit_initial_segment_functional_prefix_count_bits) = S ((S (ff_i_initial_segment_functional_prefix_count_bits)) * c)) /\ exists ff_q_initial_segment_functional_prefix_count_bits_decoded. b = ff_q_initial_segment_functional_prefix_count_bits_decoded * S ((S (ff_i_initial_segment_functional_prefix_count_bits)) * c) + (ff_bit_initial_segment_functional_prefix_count_bits))) /\ (ff_bit_initial_segment_functional_prefix_count_bits = 0 \/ ff_bit_initial_segment_functional_prefix_count_bits = 1))))) /\ ((a = 0 \/ a = 1) /\ n = r + a)) - 0086
specialize bit_count_succ_decompose b - 0087
specialize bit_count_succ_decompose c - 0088
specialize bit_count_succ_decompose k - 0089
specialize bit_count_succ_decompose (S k) - 0090
specialize bit_count_succ_decompose n - 0091
apply bit_count_succ_decompose - 0092
refl - 0093
exact hcount - 0094
cases hdecomp - 0095
cases hdecomp_witness - 0096
cases hdecomp_witness_witness - 0097
cases hdecomp_witness_witness_right - 0098
cases hdecomp_witness_witness_right_right - 0099
have hlast_choice : x = 1 ∧ Lt(k,q) ∨ x = 0 ∧ Lt(q,S k)Exact native replay line
have hlast_choice : ((x = 1 /\ (exists eis_le_gap_initial_segment_functional_last_choice_inside. eis_le_gap_initial_segment_functional_last_choice_inside + (S k) = q)) \/ (x = 0 /\ (exists eis_lt_gap_initial_segment_functional_last_choice_outside. eis_lt_gap_initial_segment_functional_last_choice_outside + S (q) = S k))) - 0100
specialize eisenstein_initial_segment_decoded_choice q - 0101
specialize eisenstein_initial_segment_decoded_choice b - 0102
specialize eisenstein_initial_segment_decoded_choice c - 0103
specialize eisenstein_initial_segment_decoded_choice (S k) - 0104
specialize eisenstein_initial_segment_decoded_choice k - 0105
specialize eisenstein_initial_segment_decoded_choice x - 0106
apply eisenstein_initial_segment_decoded_choice - 0107
exact hprefix - 0108
specialize le_refl (S k) - 0109
exact le_refl - 0110
exact hdecomp_witness_witness_left - 0111
cases hlast_choice - 0112
cases hlast_choice_left - 0113
exfalso - 0114
specialize lt_not_le q - 0115
specialize lt_not_le (S k) - 0116
apply lt_not_le - 0117
exact hsplit_right - 0118
exact hlast_choice_left_right - 0119
cases hlast_choice_right - 0120
have hrq : x1 = q - 0121
specialize IH x1 - 0122
apply IH - 0123
exact hprevious - 0124
exact hqk_previous - 0125
exact hdecomp_witness_witness_right_left - 0126
rewrite hdecomp_witness_witness_right_right_right - 0127
rewrite hrq - 0128
rewrite hlast_choice_right_left - 0129
apply PA3