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 G H n a e z. (a=0 \/ ~(exists pvs_factor_zero_row_guard. (n) = (a) * pvs_factor_zero_row_guard)) -> ((((~((a)=0)) /\ (((~((e)=0)) /\ (exists dfg_middle_zero_row_cell dfg_first_zero_row_cell dfg_last_zero_row_cell dfg_value_zero_row_cell. (((n)=((a)*(e))*dfg_middle_zero_row_cell) /\ (((exists dst_positive_code_zero_row_cellfirst dst_positive_scale_zero_row_cellfirst dst_negative_code_zero_row_cellfirst dst_negative_scale_zero_row_cellfirst dst_positive_zero_row_cellfirst dst_negative_zero_row_cellfirst. (((F) = (((((dst_positive_code_zero_row_cellfirst) + (dst_positive_scale_zero_row_cellfirst)) * S ((dst_positive_code_zero_row_cellfirst) + (dst_positive_scale_zero_row_cellfirst)) + ((dst_positive_scale_zero_row_cellfirst) + (dst_positive_scale_zero_row_cellfirst))) + (((dst_negative_code_zero_row_cellfirst) + (dst_negative_scale_zero_row_cellfirst)) * S ((dst_negative_code_zero_row_cellfirst) + (dst_negative_scale_zero_row_cellfirst)) + ((dst_negative_scale_zero_row_cellfirst) + (dst_negative_scale_zero_row_cellfirst)))) * S ((((dst_positive_code_zero_row_cellfirst) + (dst_positive_scale_zero_row_cellfirst)) * S ((dst_positive_code_zero_row_cellfirst) + (dst_positive_scale_zero_row_cellfirst)) + ((dst_positive_scale_zero_row_cellfirst) + (dst_positive_scale_zero_row_cellfirst))) + (((dst_negative_code_zero_row_cellfirst) + (dst_negative_scale_zero_row_cellfirst)) * S ((dst_negative_code_zero_row_cellfirst) + (dst_negative_scale_zero_row_cellfirst)) + ((dst_negative_scale_zero_row_cellfirst) + (dst_negative_scale_zero_row_cellfirst)))) + ((((dst_negative_code_zero_row_cellfirst) + (dst_negative_scale_zero_row_cellfirst)) * S ((dst_negative_code_zero_row_cellfirst) + (dst_negative_scale_zero_row_cellfirst)) + ((dst_negative_scale_zero_row_cellfirst) + (dst_negative_scale_zero_row_cellfirst))) + (((dst_negative_code_zero_row_cellfirst) + (dst_negative_scale_zero_row_cellfirst)) * S ((dst_negative_code_zero_row_cellfirst) + (dst_negative_scale_zero_row_cellfirst)) + ((dst_negative_scale_zero_row_cellfirst) + (dst_negative_scale_zero_row_cellfirst)))))) /\ (((((exists ff_h_pvs_zero_row_cellfirstpositive. ff_h_pvs_zero_row_cellfirstpositive + S (dst_positive_zero_row_cellfirst) = S ((S (a)) * dst_positive_scale_zero_row_cellfirst)) /\ exists ff_q_pvs_zero_row_cellfirstpositive. dst_positive_code_zero_row_cellfirst = ff_q_pvs_zero_row_cellfirstpositive * S ((S (a)) * dst_positive_scale_zero_row_cellfirst) + (dst_positive_zero_row_cellfirst))) /\ (((((exists ff_h_pvs_zero_row_cellfirstnegative. ff_h_pvs_zero_row_cellfirstnegative + S (dst_negative_zero_row_cellfirst) = S ((S (a)) * dst_negative_scale_zero_row_cellfirst)) /\ exists ff_q_pvs_zero_row_cellfirstnegative. dst_negative_code_zero_row_cellfirst = ff_q_pvs_zero_row_cellfirstnegative * S ((S (a)) * dst_negative_scale_zero_row_cellfirst) + (dst_negative_zero_row_cellfirst))) /\ (exists ge_balance_positive_zero_row_cellfirstvalue ge_balance_negative_zero_row_cellfirstvalue. (((((dfg_first_zero_row_cell) = 2 * (ge_balance_positive_zero_row_cellfirstvalue) /\ (ge_balance_negative_zero_row_cellfirstvalue) = 0) \/ exists ge_signed_half_zero_row_cellfirstvaluedecode. (((dfg_first_zero_row_cell) = 2 * ge_signed_half_zero_row_cellfirstvaluedecode + 1 /\ (ge_balance_positive_zero_row_cellfirstvalue) = 0) /\ (ge_balance_negative_zero_row_cellfirstvalue) = S ge_signed_half_zero_row_cellfirstvaluedecode))) /\ ((dst_positive_zero_row_cellfirst) + ge_balance_negative_zero_row_cellfirstvalue = (dst_negative_zero_row_cellfirst) + ge_balance_positive_zero_row_cellfirstvalue))))))))) /\ (((exists dst_positive_code_zero_row_celllast dst_positive_scale_zero_row_celllast dst_negative_code_zero_row_celllast dst_negative_scale_zero_row_celllast dst_positive_zero_row_celllast dst_negative_zero_row_celllast. (((H) = (((((dst_positive_code_zero_row_celllast) + (dst_positive_scale_zero_row_celllast)) * S ((dst_positive_code_zero_row_celllast) + (dst_positive_scale_zero_row_celllast)) + ((dst_positive_scale_zero_row_celllast) + (dst_positive_scale_zero_row_celllast))) + (((dst_negative_code_zero_row_celllast) + (dst_negative_scale_zero_row_celllast)) * S ((dst_negative_code_zero_row_celllast) + (dst_negative_scale_zero_row_celllast)) + ((dst_negative_scale_zero_row_celllast) + (dst_negative_scale_zero_row_celllast)))) * S ((((dst_positive_code_zero_row_celllast) + (dst_positive_scale_zero_row_celllast)) * S ((dst_positive_code_zero_row_celllast) + (dst_positive_scale_zero_row_celllast)) + ((dst_positive_scale_zero_row_celllast) + (dst_positive_scale_zero_row_celllast))) + (((dst_negative_code_zero_row_celllast) + (dst_negative_scale_zero_row_celllast)) * S ((dst_negative_code_zero_row_celllast) + (dst_negative_scale_zero_row_celllast)) + ((dst_negative_scale_zero_row_celllast) + (dst_negative_scale_zero_row_celllast)))) + ((((dst_negative_code_zero_row_celllast) + (dst_negative_scale_zero_row_celllast)) * S ((dst_negative_code_zero_row_celllast) + (dst_negative_scale_zero_row_celllast)) + ((dst_negative_scale_zero_row_celllast) + (dst_negative_scale_zero_row_celllast))) + (((dst_negative_code_zero_row_celllast) + (dst_negative_scale_zero_row_celllast)) * S ((dst_negative_code_zero_row_celllast) + (dst_negative_scale_zero_row_celllast)) + ((dst_negative_scale_zero_row_celllast) + (dst_negative_scale_zero_row_celllast)))))) /\ (((((exists ff_h_pvs_zero_row_celllastpositive. ff_h_pvs_zero_row_celllastpositive + S (dst_positive_zero_row_celllast) = S ((S (e)) * dst_positive_scale_zero_row_celllast)) /\ exists ff_q_pvs_zero_row_celllastpositive. dst_positive_code_zero_row_celllast = ff_q_pvs_zero_row_celllastpositive * S ((S (e)) * dst_positive_scale_zero_row_celllast) + (dst_positive_zero_row_celllast))) /\ (((((exists ff_h_pvs_zero_row_celllastnegative. ff_h_pvs_zero_row_celllastnegative + S (dst_negative_zero_row_celllast) = S ((S (e)) * dst_negative_scale_zero_row_celllast)) /\ exists ff_q_pvs_zero_row_celllastnegative. dst_negative_code_zero_row_celllast = ff_q_pvs_zero_row_celllastnegative * S ((S (e)) * dst_negative_scale_zero_row_celllast) + (dst_negative_zero_row_celllast))) /\ (exists ge_balance_positive_zero_row_celllastvalue ge_balance_negative_zero_row_celllastvalue. (((((dfg_last_zero_row_cell) = 2 * (ge_balance_positive_zero_row_celllastvalue) /\ (ge_balance_negative_zero_row_celllastvalue) = 0) \/ exists ge_signed_half_zero_row_celllastvaluedecode. (((dfg_last_zero_row_cell) = 2 * ge_signed_half_zero_row_celllastvaluedecode + 1 /\ (ge_balance_positive_zero_row_celllastvalue) = 0) /\ (ge_balance_negative_zero_row_celllastvalue) = S ge_signed_half_zero_row_celllastvaluedecode))) /\ ((dst_positive_zero_row_celllast) + ge_balance_negative_zero_row_celllastvalue = (dst_negative_zero_row_celllast) + ge_balance_positive_zero_row_celllastvalue))))))))) /\ (((exists dst_positive_code_zero_row_cellmiddle dst_positive_scale_zero_row_cellmiddle dst_negative_code_zero_row_cellmiddle dst_negative_scale_zero_row_cellmiddle dst_positive_zero_row_cellmiddle dst_negative_zero_row_cellmiddle. (((G) = (((((dst_positive_code_zero_row_cellmiddle) + (dst_positive_scale_zero_row_cellmiddle)) * S ((dst_positive_code_zero_row_cellmiddle) + (dst_positive_scale_zero_row_cellmiddle)) + ((dst_positive_scale_zero_row_cellmiddle) + (dst_positive_scale_zero_row_cellmiddle))) + (((dst_negative_code_zero_row_cellmiddle) + (dst_negative_scale_zero_row_cellmiddle)) * S ((dst_negative_code_zero_row_cellmiddle) + (dst_negative_scale_zero_row_cellmiddle)) + ((dst_negative_scale_zero_row_cellmiddle) + (dst_negative_scale_zero_row_cellmiddle)))) * S ((((dst_positive_code_zero_row_cellmiddle) + (dst_positive_scale_zero_row_cellmiddle)) * S ((dst_positive_code_zero_row_cellmiddle) + (dst_positive_scale_zero_row_cellmiddle)) + ((dst_positive_scale_zero_row_cellmiddle) + (dst_positive_scale_zero_row_cellmiddle))) + (((dst_negative_code_zero_row_cellmiddle) + (dst_negative_scale_zero_row_cellmiddle)) * S ((dst_negative_code_zero_row_cellmiddle) + (dst_negative_scale_zero_row_cellmiddle)) + ((dst_negative_scale_zero_row_cellmiddle) + (dst_negative_scale_zero_row_cellmiddle)))) + ((((dst_negative_code_zero_row_cellmiddle) + (dst_negative_scale_zero_row_cellmiddle)) * S ((dst_negative_code_zero_row_cellmiddle) + (dst_negative_scale_zero_row_cellmiddle)) + ((dst_negative_scale_zero_row_cellmiddle) + (dst_negative_scale_zero_row_cellmiddle))) + (((dst_negative_code_zero_row_cellmiddle) + (dst_negative_scale_zero_row_cellmiddle)) * S ((dst_negative_code_zero_row_cellmiddle) + (dst_negative_scale_zero_row_cellmiddle)) + ((dst_negative_scale_zero_row_cellmiddle) + (dst_negative_scale_zero_row_cellmiddle)))))) /\ (((((exists ff_h_pvs_zero_row_cellmiddlepositive. ff_h_pvs_zero_row_cellmiddlepositive + S (dst_positive_zero_row_cellmiddle) = S ((S (dfg_middle_zero_row_cell)) * dst_positive_scale_zero_row_cellmiddle)) /\ exists ff_q_pvs_zero_row_cellmiddlepositive. dst_positive_code_zero_row_cellmiddle = ff_q_pvs_zero_row_cellmiddlepositive * S ((S (dfg_middle_zero_row_cell)) * dst_positive_scale_zero_row_cellmiddle) + (dst_positive_zero_row_cellmiddle))) /\ (((((exists ff_h_pvs_zero_row_cellmiddlenegative. ff_h_pvs_zero_row_cellmiddlenegative + S (dst_negative_zero_row_cellmiddle) = S ((S (dfg_middle_zero_row_cell)) * dst_negative_scale_zero_row_cellmiddle)) /\ exists ff_q_pvs_zero_row_cellmiddlenegative. dst_negative_code_zero_row_cellmiddle = ff_q_pvs_zero_row_cellmiddlenegative * S ((S (dfg_middle_zero_row_cell)) * dst_negative_scale_zero_row_cellmiddle) + (dst_negative_zero_row_cellmiddle))) /\ (exists ge_balance_positive_zero_row_cellmiddlevalue ge_balance_negative_zero_row_cellmiddlevalue. (((((dfg_value_zero_row_cell) = 2 * (ge_balance_positive_zero_row_cellmiddlevalue) /\ (ge_balance_negative_zero_row_cellmiddlevalue) = 0) \/ exists ge_signed_half_zero_row_cellmiddlevaluedecode. (((dfg_value_zero_row_cell) = 2 * ge_signed_half_zero_row_cellmiddlevaluedecode + 1 /\ (ge_balance_positive_zero_row_cellmiddlevalue) = 0) /\ (ge_balance_negative_zero_row_cellmiddlevalue) = S ge_signed_half_zero_row_cellmiddlevaluedecode))) /\ ((dst_positive_zero_row_cellmiddle) + ge_balance_negative_zero_row_cellmiddlevalue = (dst_negative_zero_row_cellmiddle) + ge_balance_positive_zero_row_cellmiddlevalue))))))))) /\ (exists dfg_inner_zero_row_cellproduct. ((exists sto_ap_zero_row_cellproductinner sto_an_zero_row_cellproductinner sto_bp_zero_row_cellproductinner sto_bn_zero_row_cellproductinner sto_cp_zero_row_cellproductinner sto_cn_zero_row_cellproductinner. (((((dfg_last_zero_row_cell) = 2 * (sto_ap_zero_row_cellproductinner) /\ (sto_an_zero_row_cellproductinner) = 0) \/ exists ge_signed_half_zero_row_cellproductinnerleft. (((dfg_last_zero_row_cell) = 2 * ge_signed_half_zero_row_cellproductinnerleft + 1 /\ (sto_ap_zero_row_cellproductinner) = 0) /\ (sto_an_zero_row_cellproductinner) = S ge_signed_half_zero_row_cellproductinnerleft))) /\ ((((((dfg_value_zero_row_cell) = 2 * (sto_bp_zero_row_cellproductinner) /\ (sto_bn_zero_row_cellproductinner) = 0) \/ exists ge_signed_half_zero_row_cellproductinnerright. (((dfg_value_zero_row_cell) = 2 * ge_signed_half_zero_row_cellproductinnerright + 1 /\ (sto_bp_zero_row_cellproductinner) = 0) /\ (sto_bn_zero_row_cellproductinner) = S ge_signed_half_zero_row_cellproductinnerright))) /\ ((((((dfg_inner_zero_row_cellproduct) = 2 * (sto_cp_zero_row_cellproductinner) /\ (sto_cn_zero_row_cellproductinner) = 0) \/ exists ge_signed_half_zero_row_cellproductinneroutput. (((dfg_inner_zero_row_cellproduct) = 2 * ge_signed_half_zero_row_cellproductinneroutput + 1 /\ (sto_cp_zero_row_cellproductinner) = 0) /\ (sto_cn_zero_row_cellproductinner) = S ge_signed_half_zero_row_cellproductinneroutput))) /\ ((sto_ap_zero_row_cellproductinner * sto_bp_zero_row_cellproductinner + sto_an_zero_row_cellproductinner * sto_bn_zero_row_cellproductinner) + sto_cn_zero_row_cellproductinner = (sto_ap_zero_row_cellproductinner * sto_bn_zero_row_cellproductinner + sto_an_zero_row_cellproductinner * sto_bp_zero_row_cellproductinner) + sto_cp_zero_row_cellproductinner))))))) /\ (exists sto_ap_zero_row_cellproductouter sto_an_zero_row_cellproductouter sto_bp_zero_row_cellproductouter sto_bn_zero_row_cellproductouter sto_cp_zero_row_cellproductouter sto_cn_zero_row_cellproductouter. (((((dfg_first_zero_row_cell) = 2 * (sto_ap_zero_row_cellproductouter) /\ (sto_an_zero_row_cellproductouter) = 0) \/ exists ge_signed_half_zero_row_cellproductouterleft. (((dfg_first_zero_row_cell) = 2 * ge_signed_half_zero_row_cellproductouterleft + 1 /\ (sto_ap_zero_row_cellproductouter) = 0) /\ (sto_an_zero_row_cellproductouter) = S ge_signed_half_zero_row_cellproductouterleft))) /\ ((((((dfg_inner_zero_row_cellproduct) = 2 * (sto_bp_zero_row_cellproductouter) /\ (sto_bn_zero_row_cellproductouter) = 0) \/ exists ge_signed_half_zero_row_cellproductouterright. (((dfg_inner_zero_row_cellproduct) = 2 * ge_signed_half_zero_row_cellproductouterright + 1 /\ (sto_bp_zero_row_cellproductouter) = 0) /\ (sto_bn_zero_row_cellproductouter) = S ge_signed_half_zero_row_cellproductouterright))) /\ ((((((z) = 2 * (sto_cp_zero_row_cellproductouter) /\ (sto_cn_zero_row_cellproductouter) = 0) \/ exists ge_signed_half_zero_row_cellproductouteroutput. (((z) = 2 * ge_signed_half_zero_row_cellproductouteroutput + 1 /\ (sto_cp_zero_row_cellproductouter) = 0) /\ (sto_cn_zero_row_cellproductouter) = S ge_signed_half_zero_row_cellproductouteroutput))) /\ ((sto_ap_zero_row_cellproductouter * sto_bp_zero_row_cellproductouter + sto_an_zero_row_cellproductouter * sto_bn_zero_row_cellproductouter) + sto_cn_zero_row_cellproductouter = (sto_ap_zero_row_cellproductouter * sto_bn_zero_row_cellproductouter + sto_an_zero_row_cellproductouter * sto_bp_zero_row_cellproductouter) + sto_cp_zero_row_cellproductouter))))))))))))))))))))) \/ ((((a)=0 \/ ((e)=0 \/ ~(exists pvs_factor_zero_row_cellomittednondivisor. (n) = ((a)*(e)) * pvs_factor_zero_row_cellomittednondivisor))) /\ ((z)=0)))) -> z=0Constructive proof overview
Generated structural guide
A zero or nondivisor first factor forces every actual row cell to zero, independently of input values at zero.
The unchanged tactic script uses 2 declared prerequisites and contains 30 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
DF0003 dirichlet_grid_entry_omitted_value mul_assoc Stable theorem; checked-use authorizedDirect 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–9
02Use earlier factsL10–17
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L10
specialize dirichlet_grid_entry_omitted_value (F) - L11
specialize dirichlet_grid_entry_omitted_value (G) - L12
specialize dirichlet_grid_entry_omitted_value (H) - L13
specialize dirichlet_grid_entry_omitted_value (n) - L14
specialize dirichlet_grid_entry_omitted_value (a) - L15
specialize dirichlet_grid_entry_omitted_value (e) - L16
specialize dirichlet_grid_entry_omitted_value (z) - L17
apply dirichlet_grid_entry_omitted_value
03Separate the logical casesL18–19
04Use earlier factsL20–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L20
exact ho_left
05Separate the logical casesL21–22
06Fix variables and assumptionsL23–23
Work with arbitrary variables or the premises of the current implication.
- L23
intro hdiv
07Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
cases hdiv
08Use earlier factsL25–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L25
apply ho_right
09Construct an explicit witnessL26–26
Supply the displayed value, then prove that it has the required property.
- L26
exists e*x
10Calculate and transport equalitiesL27–27
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L27
trans (a*e)*x
Original exact command ledger · 30 lines
- 0001
intro F - 0002
intro G - 0003
intro H - 0004
intro n - 0005
intro a - 0006
intro e - 0007
intro z - 0008
intro ho - 0009
intro hz - 0010
specialize dirichlet_grid_entry_omitted_value (F) - 0011
specialize dirichlet_grid_entry_omitted_value (G) - 0012
specialize dirichlet_grid_entry_omitted_value (H) - 0013
specialize dirichlet_grid_entry_omitted_value (n) - 0014
specialize dirichlet_grid_entry_omitted_value (a) - 0015
specialize dirichlet_grid_entry_omitted_value (e) - 0016
specialize dirichlet_grid_entry_omitted_value (z) - 0017
apply dirichlet_grid_entry_omitted_value - 0018
cases ho - 0019
left - 0020
exact ho_left - 0021
right - 0022
right - 0023
intro hdiv - 0024
cases hdiv - 0025
apply ho_right - 0026
exists e*x - 0027
trans (a*e)*x - 0028
exact hdiv_witness - 0029
apply mul_assoc - 0030
exact hz