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
∀ p. ∀ h. ∀ a. ∀ b. ∀ c. ∀ mb. ∀ mc. ∀ sb. ∀ sc. ∀ e. p = 2 · h + 1 → a = 2 → Range(b,c,1,h) → (∀ x. Lt(x,h) → ∃ y. ∃ z. ∃ n. BetaAt(b,c,x,y) ∧ (BetaAt(mb,mc,x,z) ∧ (BetaAt(sb,sc,x,n) ∧ (Lt(0,z) ∧ (Le(z,h) ∧ ((n = 0 ∨ n = 1) ∧ (n = 0 ∧ ModEq(p,a · y,z) ∨ n = 1 ∧ ModEq(p,a · y,2 · h · z)))))))) → BitCount(sb,sc,h,e) → h = 2 · e ∨ (∃ x. h = 2 · x + 1 ∧ e = S x)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 p h a b c mb mc sb sc e. p = 2 * h + 1 -> a = 2 -> (forall gsp_range_index_qst_goal_half. (exists gsp_lt_gap_qst_goal_half_range_bound. gsp_lt_gap_qst_goal_half_range_bound + S gsp_range_index_qst_goal_half = h) -> (((exists gsp_beta_height_qst_goal_half_range_entry. gsp_beta_height_qst_goal_half_range_entry + S (1 + gsp_range_index_qst_goal_half) = S ((S (gsp_range_index_qst_goal_half)) * c)) /\ exists gsp_beta_quotient_qst_goal_half_range_entry. b = gsp_beta_quotient_qst_goal_half_range_entry * S ((S (gsp_range_index_qst_goal_half)) * c) + (1 + gsp_range_index_qst_goal_half)))) -> (forall gsp_index_qst_goal_signed. (exists gsp_lt_gap_qst_goal_signed_index_bound. gsp_lt_gap_qst_goal_signed_index_bound + S gsp_index_qst_goal_signed = h) -> (exists gsp_value_qst_goal_signed_entry gsp_magnitude_qst_goal_signed_entry gsp_sign_qst_goal_signed_entry. (((exists ff_h_gsp_qst_goal_signed_entry_source. ff_h_gsp_qst_goal_signed_entry_source + S (gsp_value_qst_goal_signed_entry) = S ((S (gsp_index_qst_goal_signed)) * c)) /\ exists ff_q_gsp_qst_goal_signed_entry_source. b = ff_q_gsp_qst_goal_signed_entry_source * S ((S (gsp_index_qst_goal_signed)) * c) + (gsp_value_qst_goal_signed_entry))) /\ ((((exists ff_h_gsp_qst_goal_signed_entry_magnitude. ff_h_gsp_qst_goal_signed_entry_magnitude + S (gsp_magnitude_qst_goal_signed_entry) = S ((S (gsp_index_qst_goal_signed)) * mc)) /\ exists ff_q_gsp_qst_goal_signed_entry_magnitude. mb = ff_q_gsp_qst_goal_signed_entry_magnitude * S ((S (gsp_index_qst_goal_signed)) * mc) + (gsp_magnitude_qst_goal_signed_entry))) /\ ((((exists ff_h_gsp_qst_goal_signed_entry_sign. ff_h_gsp_qst_goal_signed_entry_sign + S (gsp_sign_qst_goal_signed_entry) = S ((S (gsp_index_qst_goal_signed)) * sc)) /\ exists ff_q_gsp_qst_goal_signed_entry_sign. sb = ff_q_gsp_qst_goal_signed_entry_sign * S ((S (gsp_index_qst_goal_signed)) * sc) + (gsp_sign_qst_goal_signed_entry))) /\ ((exists gsp_lt_gap_qst_goal_signed_entry_positive. gsp_lt_gap_qst_goal_signed_entry_positive + S 0 = gsp_magnitude_qst_goal_signed_entry) /\ ((exists gsp_le_gap_qst_goal_signed_entry_bounded. gsp_le_gap_qst_goal_signed_entry_bounded + gsp_magnitude_qst_goal_signed_entry = h) /\ ((gsp_sign_qst_goal_signed_entry = 0 \/ gsp_sign_qst_goal_signed_entry = 1) /\ (((gsp_sign_qst_goal_signed_entry = 0 /\ (exists gsp_mod_left_qst_goal_signed_entry_lower gsp_mod_right_qst_goal_signed_entry_lower. (a * gsp_value_qst_goal_signed_entry) + p * gsp_mod_left_qst_goal_signed_entry_lower = (gsp_magnitude_qst_goal_signed_entry) + p * gsp_mod_right_qst_goal_signed_entry_lower)) \/ (gsp_sign_qst_goal_signed_entry = 1 /\ (exists gsp_mod_left_qst_goal_signed_entry_reflected gsp_mod_right_qst_goal_signed_entry_reflected. (a * gsp_value_qst_goal_signed_entry) + p * gsp_mod_left_qst_goal_signed_entry_reflected = ((2 * h) * gsp_magnitude_qst_goal_signed_entry) + p * gsp_mod_right_qst_goal_signed_entry_reflected))))))))))) -> (((exists ff_u_qst_goal_count_sum ff_v_qst_goal_count_sum. ((((exists ff_h_qst_goal_count_sum_start. ff_h_qst_goal_count_sum_start + S (0) = S ((S (0)) * ff_v_qst_goal_count_sum)) /\ exists ff_q_qst_goal_count_sum_start. ff_u_qst_goal_count_sum = ff_q_qst_goal_count_sum_start * S ((S (0)) * ff_v_qst_goal_count_sum) + (0))) /\ ((((exists ff_h_qst_goal_count_sum_terminal. ff_h_qst_goal_count_sum_terminal + S (e) = S ((S (h)) * ff_v_qst_goal_count_sum)) /\ exists ff_q_qst_goal_count_sum_terminal. ff_u_qst_goal_count_sum = ff_q_qst_goal_count_sum_terminal * S ((S (h)) * ff_v_qst_goal_count_sum) + (e))) /\ forall ff_i_qst_goal_count_sum. (exists ff_lt_qst_goal_count_sum_bound. ff_lt_qst_goal_count_sum_bound + S ff_i_qst_goal_count_sum = h) -> exists ff_a_qst_goal_count_sum ff_r_qst_goal_count_sum ff_s_qst_goal_count_sum. ((((exists ff_h_qst_goal_count_sum_summand. ff_h_qst_goal_count_sum_summand + S (ff_a_qst_goal_count_sum) = S ((S (ff_i_qst_goal_count_sum)) * sc)) /\ exists ff_q_qst_goal_count_sum_summand. sb = ff_q_qst_goal_count_sum_summand * S ((S (ff_i_qst_goal_count_sum)) * sc) + (ff_a_qst_goal_count_sum))) /\ ((((exists ff_h_qst_goal_count_sum_partial. ff_h_qst_goal_count_sum_partial + S (ff_r_qst_goal_count_sum) = S ((S (ff_i_qst_goal_count_sum)) * ff_v_qst_goal_count_sum)) /\ exists ff_q_qst_goal_count_sum_partial. ff_u_qst_goal_count_sum = ff_q_qst_goal_count_sum_partial * S ((S (ff_i_qst_goal_count_sum)) * ff_v_qst_goal_count_sum) + (ff_r_qst_goal_count_sum))) /\ ((((exists ff_h_qst_goal_count_sum_successor. ff_h_qst_goal_count_sum_successor + S (ff_s_qst_goal_count_sum) = S ((S (S ff_i_qst_goal_count_sum)) * ff_v_qst_goal_count_sum)) /\ exists ff_q_qst_goal_count_sum_successor. ff_u_qst_goal_count_sum = ff_q_qst_goal_count_sum_successor * S ((S (S ff_i_qst_goal_count_sum)) * ff_v_qst_goal_count_sum) + (ff_s_qst_goal_count_sum))) /\ ff_s_qst_goal_count_sum = ff_r_qst_goal_count_sum + ff_a_qst_goal_count_sum)))))) /\ (forall ff_i_qst_goal_count_bits. (exists ff_lt_qst_goal_count_bits_bound. ff_lt_qst_goal_count_bits_bound + S ff_i_qst_goal_count_bits = h) -> exists ff_bit_qst_goal_count_bits. ((((exists ff_h_qst_goal_count_bits_decoded. ff_h_qst_goal_count_bits_decoded + S (ff_bit_qst_goal_count_bits) = S ((S (ff_i_qst_goal_count_bits)) * sc)) /\ exists ff_q_qst_goal_count_bits_decoded. sb = ff_q_qst_goal_count_bits_decoded * S ((S (ff_i_qst_goal_count_bits)) * sc) + (ff_bit_qst_goal_count_bits))) /\ (ff_bit_qst_goal_count_bits = 0 \/ ff_bit_qst_goal_count_bits = 1))))) -> (((h = 2 * e) \/ (exists qst_count_half_goal. h = 2 * qst_count_half_goal + 1 /\ e = S qst_count_half_goal)))Proof neighborhood
Direct theorem prerequisites
SL000K doubling_gauss_initial_segment_complement SL000M doubling_gauss_count_shape_from_initial_segment_complementDirect 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 (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–15
03Establish hhalfL16–18
04Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
cases hhalf
05Establish hinitialL20–23
Establish this local claim before using it. It is not an additional assumption.
- L20
have hinitial : ∃ ib. ∃ ic. ∀ y. Lt(y,h) → ∃ z. BetaAt(ib,ic,y,z) ∧ (z = 1 ∧ Lt(y,x) ∨ z = 0 ∧ Lt(x,S y))Definitions: Lt(y,h)BetaAt(ib,ic,y,z)Lt(y,x)Lt(x,S y)Original native command in the exact edition - L21
specialize eisenstein_initial_segment_prefix_exists x - L22
specialize eisenstein_initial_segment_prefix_exists h - L23
exact eisenstein_initial_segment_prefix_exists
06Separate the logical casesL24–25
07Establish hcomplementL26–35
Establish this local claim before using it. It is not an additional assumption.
- L26
have hcomplement : ∀ x. ∀ y. ∀ z. Lt(x,h) → BetaAt(sb,sc,x,y) → BetaAt(x1,x2,x,z) → y = 0 ∧ z = 1 ∨ y = 1 ∧ z = 0Definitions: Lt(x,h)BetaAt(sb,sc,x,y)BetaAt(x1,x2,x,z)Original native command in the exact edition - L27
specialize doubling_gauss_initial_segment_complement p - L28
specialize doubling_gauss_initial_segment_complement h - L29
specialize doubling_gauss_initial_segment_complement a - L30
specialize doubling_gauss_initial_segment_complement b - L31
specialize doubling_gauss_initial_segment_complement c - L32
specialize doubling_gauss_initial_segment_complement mb - L33
specialize doubling_gauss_initial_segment_complement mc - L34
specialize doubling_gauss_initial_segment_complement sb - L35
specialize doubling_gauss_initial_segment_complement sc
08Use earlier factsL36–45
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
specialize doubling_gauss_initial_segment_complement x1 - L37
specialize doubling_gauss_initial_segment_complement x2 - L38
specialize doubling_gauss_initial_segment_complement x - L39
apply doubling_gauss_initial_segment_complement - L40
exact hpodd - L41
exact hatwo - L42
exact hhalf_witness - L43
exact hrange - L44
exact hsigned - L45
exact hinitial_witness_witness
09Use earlier factsL46–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
specialize doubling_gauss_count_shape_from_initial_segment_complement h - L47
specialize doubling_gauss_count_shape_from_initial_segment_complement x - L48
specialize doubling_gauss_count_shape_from_initial_segment_complement sb - L49
specialize doubling_gauss_count_shape_from_initial_segment_complement sc - L50
specialize doubling_gauss_count_shape_from_initial_segment_complement x1 - L51
specialize doubling_gauss_count_shape_from_initial_segment_complement x2 - L52
specialize doubling_gauss_count_shape_from_initial_segment_complement e - L53
apply doubling_gauss_count_shape_from_initial_segment_complement - L54
exact hhalf_witness - L55
exact hinitial_witness_witness
Original defined command ledger · 57 lines
- 0001
intro p - 0002
intro h - 0003
intro a - 0004
intro b - 0005
intro c - 0006
intro mb - 0007
intro mc - 0008
intro sb - 0009
intro sc - 0010
intro e - 0011
intro hpodd - 0012
intro hatwo - 0013
intro hrange - 0014
intro hsigned - 0015
intro hcount - 0016
have hhalf : exists k. h = 2 * k \/ h = 2 * k + 1 - 0017
specialize parity_cases h - 0018
exact parity_cases - 0019
cases hhalf - 0020
have hinitial : ∃ ib. ∃ ic. ∀ y. Lt(y,h) → ∃ z. BetaAt(ib,ic,y,z) ∧ (z = 1 ∧ Lt(y,x) ∨ z = 0 ∧ Lt(x,S y))Exact native replay line
have hinitial : exists ib ic. (forall eis_index_qst_shape_initial. (exists eis_lt_gap_qst_shape_initial_bound. eis_lt_gap_qst_shape_initial_bound + S (eis_index_qst_shape_initial) = h) -> exists eis_bit_qst_shape_initial. ((((exists ff_h_eis_qst_shape_initial_decoded. ff_h_eis_qst_shape_initial_decoded + S (eis_bit_qst_shape_initial) = S ((S (eis_index_qst_shape_initial)) * ic)) /\ exists ff_q_eis_qst_shape_initial_decoded. ib = ff_q_eis_qst_shape_initial_decoded * S ((S (eis_index_qst_shape_initial)) * ic) + (eis_bit_qst_shape_initial))) /\ (((eis_bit_qst_shape_initial = 1 /\ (exists eis_le_gap_qst_shape_initial_choice_inside. eis_le_gap_qst_shape_initial_choice_inside + (S eis_index_qst_shape_initial) = x)) \/ (eis_bit_qst_shape_initial = 0 /\ (exists eis_lt_gap_qst_shape_initial_choice_outside. eis_lt_gap_qst_shape_initial_choice_outside + S (x) = S eis_index_qst_shape_initial)))))) - 0021
specialize eisenstein_initial_segment_prefix_exists x - 0022
specialize eisenstein_initial_segment_prefix_exists h - 0023
exact eisenstein_initial_segment_prefix_exists - 0024
cases hinitial - 0025
cases hinitial_witness - 0026
have hcomplement : ∀ x. ∀ y. ∀ z. Lt(x,h) → BetaAt(sb,sc,x,y) → BetaAt(x1,x2,x,z) → y = 0 ∧ z = 1 ∨ y = 1 ∧ z = 0Exact native replay line
have hcomplement : (forall i s t. (exists qst_complement_gap_shape. qst_complement_gap_shape + S i = h) -> (((exists ff_h_qst_shape_sign. ff_h_qst_shape_sign + S (s) = S ((S (i)) * sc)) /\ exists ff_q_qst_shape_sign. sb = ff_q_qst_shape_sign * S ((S (i)) * sc) + (s))) -> (((exists ff_h_qst_shape_indicator. ff_h_qst_shape_indicator + S (t) = S ((S (i)) * x2)) /\ exists ff_q_qst_shape_indicator. x1 = ff_q_qst_shape_indicator * S ((S (i)) * x2) + (t))) -> ((s = 0 /\ t = 1) \/ (s = 1 /\ t = 0))) - 0027
specialize doubling_gauss_initial_segment_complement p - 0028
specialize doubling_gauss_initial_segment_complement h - 0029
specialize doubling_gauss_initial_segment_complement a - 0030
specialize doubling_gauss_initial_segment_complement b - 0031
specialize doubling_gauss_initial_segment_complement c - 0032
specialize doubling_gauss_initial_segment_complement mb - 0033
specialize doubling_gauss_initial_segment_complement mc - 0034
specialize doubling_gauss_initial_segment_complement sb - 0035
specialize doubling_gauss_initial_segment_complement sc - 0036
specialize doubling_gauss_initial_segment_complement x1 - 0037
specialize doubling_gauss_initial_segment_complement x2 - 0038
specialize doubling_gauss_initial_segment_complement x - 0039
apply doubling_gauss_initial_segment_complement - 0040
exact hpodd - 0041
exact hatwo - 0042
exact hhalf_witness - 0043
exact hrange - 0044
exact hsigned - 0045
exact hinitial_witness_witness - 0046
specialize doubling_gauss_count_shape_from_initial_segment_complement h - 0047
specialize doubling_gauss_count_shape_from_initial_segment_complement x - 0048
specialize doubling_gauss_count_shape_from_initial_segment_complement sb - 0049
specialize doubling_gauss_count_shape_from_initial_segment_complement sc - 0050
specialize doubling_gauss_count_shape_from_initial_segment_complement x1 - 0051
specialize doubling_gauss_count_shape_from_initial_segment_complement x2 - 0052
specialize doubling_gauss_count_shape_from_initial_segment_complement e - 0053
apply doubling_gauss_count_shape_from_initial_segment_complement - 0054
exact hhalf_witness - 0055
exact hinitial_witness_witness - 0056
exact hcount - 0057
exact hcomplement