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 m x a b. (exists ff_modulus_gap_binary_guard. ff_modulus_gap_binary_guard + S 1 = m) -> (b = 0 \/ b = 1) -> exists r. ((((b = 0) /\ (((exists ff_gap_binary_step_square. ff_gap_binary_step_square + S (r) = m) /\ (exists ff_left_binary_step_square_congruence ff_right_binary_step_square_congruence. (x * x) + m * ff_left_binary_step_square_congruence = (r) + m * ff_right_binary_step_square_congruence)))) \/ ((b = 1) /\ (((exists ff_gap_binary_step_multiply. ff_gap_binary_step_multiply + S (r) = m) /\ (exists ff_left_binary_step_multiply_congruence ff_right_binary_step_multiply_congruence. ((x * x) * a) + m * ff_left_binary_step_multiply_congruence = (r) + m * ff_right_binary_step_multiply_congruence))))))Constructive proof overview
Generated structural guide
Every guarded square-and-optional-multiply binary transition has a canonical result.
The unchanged tactic script uses 1 declared prerequisite and contains 29 exact native proof lines.
Alpha v34 checked-use · first admitted v21 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
Direct 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 (1)
01Fix variables and assumptionsL1–6
02Separate the logical casesL7–7
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L7
cases hbit
03Establish hsquareL8–12
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary canonical residue exists.
- L8
have hsquare : exists r. (((exists ff_gap_binary_step_square_witness. ff_gap_binary_step_square_witness + S (r) = m) /\ (exists ff_left_binary_step_square_witness_congruence ff_right_binary_step_square_witness_congruence. (x * x) + m * ff_left_binary_step_square_witness_congruence = (r) + m * ff_right_binary_step_square_witness_congruence))) - L9
specialize binary_canonical_residue_exists m - L10
specialize binary_canonical_residue_exists (x * x) - L11
apply binary_canonical_residue_exists - L12
exact hmodulus
04Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
cases hsquare
05Construct an explicit witnessL14–14
Supply the displayed value, then prove that it has the required property.
- L14
exists x1
06Separate the logical casesL15–16
07Use earlier factsL17–18
08Establish hproductL19–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary canonical residue exists.
- L19
have hproduct : exists r. (((exists ff_gap_binary_step_product_witness. ff_gap_binary_step_product_witness + S (r) = m) /\ (exists ff_left_binary_step_product_witness_congruence ff_right_binary_step_product_witness_congruence. ((x * x) * a) + m * ff_left_binary_step_product_witness_congruence = (r) + m * ff_right_binary_step_product_witness_congruence))) - L20
specialize binary_canonical_residue_exists m - L21
specialize binary_canonical_residue_exists ((x * x) * a) - L22
apply binary_canonical_residue_exists - L23
exact hmodulus
09Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
cases hproduct
10Construct an explicit witnessL25–25
Supply the displayed value, then prove that it has the required property.
- L25
exists x1
11Separate the logical casesL26–27
Original exact command ledger · 29 lines
- 0001
intro m - 0002
intro x - 0003
intro a - 0004
intro b - 0005
intro hmodulus - 0006
intro hbit - 0007
cases hbit - 0008
have hsquare : exists r. (((exists ff_gap_binary_step_square_witness. ff_gap_binary_step_square_witness + S (r) = m) /\ (exists ff_left_binary_step_square_witness_congruence ff_right_binary_step_square_witness_congruence. (x * x) + m * ff_left_binary_step_square_witness_congruence = (r) + m * ff_right_binary_step_square_witness_congruence))) - 0009
specialize binary_canonical_residue_exists m - 0010
specialize binary_canonical_residue_exists (x * x) - 0011
apply binary_canonical_residue_exists - 0012
exact hmodulus - 0013
cases hsquare - 0014
exists x1 - 0015
left - 0016
split - 0017
exact hbit_left - 0018
exact hsquare_witness - 0019
have hproduct : exists r. (((exists ff_gap_binary_step_product_witness. ff_gap_binary_step_product_witness + S (r) = m) /\ (exists ff_left_binary_step_product_witness_congruence ff_right_binary_step_product_witness_congruence. ((x * x) * a) + m * ff_left_binary_step_product_witness_congruence = (r) + m * ff_right_binary_step_product_witness_congruence))) - 0020
specialize binary_canonical_residue_exists m - 0021
specialize binary_canonical_residue_exists ((x * x) * a) - 0022
apply binary_canonical_residue_exists - 0023
exact hmodulus - 0024
cases hproduct - 0025
exists x1 - 0026
right - 0027
split - 0028
exact hbit_right - 0029
exact hproduct_witness