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 expanded first-order arithmetic statement
forall F n d q z. ~(d=0) -> n=d*q -> ((((~((d)=0)) /\ (exists dm_quotient_read_mask. (((n)=(d)*dm_quotient_read_mask) /\ (exists dst_positive_code_read_maskinput dst_positive_scale_read_maskinput dst_negative_code_read_maskinput dst_negative_scale_read_maskinput dst_positive_read_maskinput dst_negative_read_maskinput. (((F) = (((((dst_positive_code_read_maskinput) + (dst_positive_scale_read_maskinput)) * S ((dst_positive_code_read_maskinput) + (dst_positive_scale_read_maskinput)) + ((dst_positive_scale_read_maskinput) + (dst_positive_scale_read_maskinput))) + (((dst_negative_code_read_maskinput) + (dst_negative_scale_read_maskinput)) * S ((dst_negative_code_read_maskinput) + (dst_negative_scale_read_maskinput)) + ((dst_negative_scale_read_maskinput) + (dst_negative_scale_read_maskinput)))) * S ((((dst_positive_code_read_maskinput) + (dst_positive_scale_read_maskinput)) * S ((dst_positive_code_read_maskinput) + (dst_positive_scale_read_maskinput)) + ((dst_positive_scale_read_maskinput) + (dst_positive_scale_read_maskinput))) + (((dst_negative_code_read_maskinput) + (dst_negative_scale_read_maskinput)) * S ((dst_negative_code_read_maskinput) + (dst_negative_scale_read_maskinput)) + ((dst_negative_scale_read_maskinput) + (dst_negative_scale_read_maskinput)))) + ((((dst_negative_code_read_maskinput) + (dst_negative_scale_read_maskinput)) * S ((dst_negative_code_read_maskinput) + (dst_negative_scale_read_maskinput)) + ((dst_negative_scale_read_maskinput) + (dst_negative_scale_read_maskinput))) + (((dst_negative_code_read_maskinput) + (dst_negative_scale_read_maskinput)) * S ((dst_negative_code_read_maskinput) + (dst_negative_scale_read_maskinput)) + ((dst_negative_scale_read_maskinput) + (dst_negative_scale_read_maskinput)))))) /\ (((((exists ff_h_pvs_read_maskinputpositive. ff_h_pvs_read_maskinputpositive + S (dst_positive_read_maskinput) = S ((S (d)) * dst_positive_scale_read_maskinput)) /\ exists ff_q_pvs_read_maskinputpositive. dst_positive_code_read_maskinput = ff_q_pvs_read_maskinputpositive * S ((S (d)) * dst_positive_scale_read_maskinput) + (dst_positive_read_maskinput))) /\ (((((exists ff_h_pvs_read_maskinputnegative. ff_h_pvs_read_maskinputnegative + S (dst_negative_read_maskinput) = S ((S (d)) * dst_negative_scale_read_maskinput)) /\ exists ff_q_pvs_read_maskinputnegative. dst_negative_code_read_maskinput = ff_q_pvs_read_maskinputnegative * S ((S (d)) * dst_negative_scale_read_maskinput) + (dst_negative_read_maskinput))) /\ (exists ge_balance_positive_read_maskinputvalue ge_balance_negative_read_maskinputvalue. (((((z) = 2 * (ge_balance_positive_read_maskinputvalue) /\ (ge_balance_negative_read_maskinputvalue) = 0) \/ exists ge_signed_half_read_maskinputvaluedecode. (((z) = 2 * ge_signed_half_read_maskinputvaluedecode + 1 /\ (ge_balance_positive_read_maskinputvalue) = 0) /\ (ge_balance_negative_read_maskinputvalue) = S ge_signed_half_read_maskinputvaluedecode))) /\ ((dst_positive_read_maskinput) + ge_balance_negative_read_maskinputvalue = (dst_negative_read_maskinput) + ge_balance_positive_read_maskinputvalue))))))))))))) \/ ((((d)=0 \/ ~(exists pvs_factor_read_masknondivisor. (n) = (d) * pvs_factor_read_masknondivisor)) /\ ((z)=0)))) -> (exists dst_positive_code_read_input dst_positive_scale_read_input dst_negative_code_read_input dst_negative_scale_read_input dst_positive_read_input dst_negative_read_input. (((F) = (((((dst_positive_code_read_input) + (dst_positive_scale_read_input)) * S ((dst_positive_code_read_input) + (dst_positive_scale_read_input)) + ((dst_positive_scale_read_input) + (dst_positive_scale_read_input))) + (((dst_negative_code_read_input) + (dst_negative_scale_read_input)) * S ((dst_negative_code_read_input) + (dst_negative_scale_read_input)) + ((dst_negative_scale_read_input) + (dst_negative_scale_read_input)))) * S ((((dst_positive_code_read_input) + (dst_positive_scale_read_input)) * S ((dst_positive_code_read_input) + (dst_positive_scale_read_input)) + ((dst_positive_scale_read_input) + (dst_positive_scale_read_input))) + (((dst_negative_code_read_input) + (dst_negative_scale_read_input)) * S ((dst_negative_code_read_input) + (dst_negative_scale_read_input)) + ((dst_negative_scale_read_input) + (dst_negative_scale_read_input)))) + ((((dst_negative_code_read_input) + (dst_negative_scale_read_input)) * S ((dst_negative_code_read_input) + (dst_negative_scale_read_input)) + ((dst_negative_scale_read_input) + (dst_negative_scale_read_input))) + (((dst_negative_code_read_input) + (dst_negative_scale_read_input)) * S ((dst_negative_code_read_input) + (dst_negative_scale_read_input)) + ((dst_negative_scale_read_input) + (dst_negative_scale_read_input)))))) /\ (((((exists ff_h_pvs_read_inputpositive. ff_h_pvs_read_inputpositive + S (dst_positive_read_input) = S ((S (d)) * dst_positive_scale_read_input)) /\ exists ff_q_pvs_read_inputpositive. dst_positive_code_read_input = ff_q_pvs_read_inputpositive * S ((S (d)) * dst_positive_scale_read_input) + (dst_positive_read_input))) /\ (((((exists ff_h_pvs_read_inputnegative. ff_h_pvs_read_inputnegative + S (dst_negative_read_input) = S ((S (d)) * dst_negative_scale_read_input)) /\ exists ff_q_pvs_read_inputnegative. dst_negative_code_read_input = ff_q_pvs_read_inputnegative * S ((S (d)) * dst_negative_scale_read_input) + (dst_negative_read_input))) /\ (exists ge_balance_positive_read_inputvalue ge_balance_negative_read_inputvalue. (((((z) = 2 * (ge_balance_positive_read_inputvalue) /\ (ge_balance_negative_read_inputvalue) = 0) \/ exists ge_signed_half_read_inputvaluedecode. (((z) = 2 * ge_signed_half_read_inputvaluedecode + 1 /\ (ge_balance_positive_read_inputvalue) = 0) /\ (ge_balance_negative_read_inputvalue) = S ge_signed_half_read_inputvaluedecode))) /\ ((dst_positive_read_input) + ge_balance_negative_read_inputvalue = (dst_negative_read_input) + ge_balance_positive_read_inputvalue)))))))))Constructive proof overview
Generated structural guide
At a witnessed positive divisor, a mask value is genuinely the input value, not a value attached to an unspecified quotient.
The unchanged tactic script uses 0 declared prerequisites and contains 21 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · 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.
01Fix variables and assumptionsL1–8
02Separate the logical casesL9–12
03Use earlier factsL13–13
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L13
exact he_left_right_witness_right
04Separate the logical casesL14–16
05Use earlier factsL17–19
06Construct an explicit witnessL20–20
Supply the displayed value, then prove that it has the required property.
- L20
exists q
07Use earlier factsL21–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
exact hq
Original exact command ledger · 21 lines
- 0001
intro F - 0002
intro n - 0003
intro d - 0004
intro q - 0005
intro z - 0006
intro hd - 0007
intro hq - 0008
intro he - 0009
cases he - 0010
cases he_left - 0011
cases he_left_right - 0012
cases he_left_right_witness - 0013
exact he_left_right_witness_right - 0014
cases he_right - 0015
exfalso - 0016
cases he_right_left - 0017
apply hd - 0018
exact he_right_left_left - 0019
apply he_right_left_right - 0020
exists q - 0021
exact hq