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 A r s i j a k z. (exists dst_positive_code_decode_source dst_positive_scale_decode_source dst_negative_code_decode_source dst_negative_scale_decode_source dst_positive_decode_source dst_negative_decode_source. (((A) = (((((dst_positive_code_decode_source) + (dst_positive_scale_decode_source)) * S ((dst_positive_code_decode_source) + (dst_positive_scale_decode_source)) + ((dst_positive_scale_decode_source) + (dst_positive_scale_decode_source))) + (((dst_negative_code_decode_source) + (dst_negative_scale_decode_source)) * S ((dst_negative_code_decode_source) + (dst_negative_scale_decode_source)) + ((dst_negative_scale_decode_source) + (dst_negative_scale_decode_source)))) * S ((((dst_positive_code_decode_source) + (dst_positive_scale_decode_source)) * S ((dst_positive_code_decode_source) + (dst_positive_scale_decode_source)) + ((dst_positive_scale_decode_source) + (dst_positive_scale_decode_source))) + (((dst_negative_code_decode_source) + (dst_negative_scale_decode_source)) * S ((dst_negative_code_decode_source) + (dst_negative_scale_decode_source)) + ((dst_negative_scale_decode_source) + (dst_negative_scale_decode_source)))) + ((((dst_negative_code_decode_source) + (dst_negative_scale_decode_source)) * S ((dst_negative_code_decode_source) + (dst_negative_scale_decode_source)) + ((dst_negative_scale_decode_source) + (dst_negative_scale_decode_source))) + (((dst_negative_code_decode_source) + (dst_negative_scale_decode_source)) * S ((dst_negative_code_decode_source) + (dst_negative_scale_decode_source)) + ((dst_negative_scale_decode_source) + (dst_negative_scale_decode_source)))))) /\ (((((exists ff_h_pvs_decode_sourcepositive. ff_h_pvs_decode_sourcepositive + S (dst_positive_decode_source) = S ((S (i)) * dst_positive_scale_decode_source)) /\ exists ff_q_pvs_decode_sourcepositive. dst_positive_code_decode_source = ff_q_pvs_decode_sourcepositive * S ((S (i)) * dst_positive_scale_decode_source) + (dst_positive_decode_source))) /\ (((((exists ff_h_pvs_decode_sourcenegative. ff_h_pvs_decode_sourcenegative + S (dst_negative_decode_source) = S ((S (i)) * dst_negative_scale_decode_source)) /\ exists ff_q_pvs_decode_sourcenegative. dst_negative_code_decode_source = ff_q_pvs_decode_sourcenegative * S ((S (i)) * dst_negative_scale_decode_source) + (dst_negative_decode_source))) /\ (exists ge_balance_positive_decode_sourcevalue ge_balance_negative_decode_sourcevalue. (((((a) = 2 * (ge_balance_positive_decode_sourcevalue) /\ (ge_balance_negative_decode_sourcevalue) = 0) \/ exists ge_signed_half_decode_sourcevaluedecode. (((a) = 2 * ge_signed_half_decode_sourcevaluedecode + 1 /\ (ge_balance_positive_decode_sourcevalue) = 0) /\ (ge_balance_negative_decode_sourcevalue) = S ge_signed_half_decode_sourcevaluedecode))) /\ ((dst_positive_decode_source) + ge_balance_negative_decode_sourcevalue = (dst_negative_decode_source) + ge_balance_positive_decode_sourcevalue))))))))) -> (((exists ff_h_pvs_decode_map. ff_h_pvs_decode_map + S (k) = S ((S (i)) * s)) /\ exists ff_q_pvs_decode_map. r = ff_q_pvs_decode_map * S ((S (i)) * s) + (k))) -> (exists ssr_entry_value_decode_entry ssr_entry_image_decode_entry. ((exists dst_positive_code_decode_entrysource dst_positive_scale_decode_entrysource dst_negative_code_decode_entrysource dst_negative_scale_decode_entrysource dst_positive_decode_entrysource dst_negative_decode_entrysource. (((A) = (((((dst_positive_code_decode_entrysource) + (dst_positive_scale_decode_entrysource)) * S ((dst_positive_code_decode_entrysource) + (dst_positive_scale_decode_entrysource)) + ((dst_positive_scale_decode_entrysource) + (dst_positive_scale_decode_entrysource))) + (((dst_negative_code_decode_entrysource) + (dst_negative_scale_decode_entrysource)) * S ((dst_negative_code_decode_entrysource) + (dst_negative_scale_decode_entrysource)) + ((dst_negative_scale_decode_entrysource) + (dst_negative_scale_decode_entrysource)))) * S ((((dst_positive_code_decode_entrysource) + (dst_positive_scale_decode_entrysource)) * S ((dst_positive_code_decode_entrysource) + (dst_positive_scale_decode_entrysource)) + ((dst_positive_scale_decode_entrysource) + (dst_positive_scale_decode_entrysource))) + (((dst_negative_code_decode_entrysource) + (dst_negative_scale_decode_entrysource)) * S ((dst_negative_code_decode_entrysource) + (dst_negative_scale_decode_entrysource)) + ((dst_negative_scale_decode_entrysource) + (dst_negative_scale_decode_entrysource)))) + ((((dst_negative_code_decode_entrysource) + (dst_negative_scale_decode_entrysource)) * S ((dst_negative_code_decode_entrysource) + (dst_negative_scale_decode_entrysource)) + ((dst_negative_scale_decode_entrysource) + (dst_negative_scale_decode_entrysource))) + (((dst_negative_code_decode_entrysource) + (dst_negative_scale_decode_entrysource)) * S ((dst_negative_code_decode_entrysource) + (dst_negative_scale_decode_entrysource)) + ((dst_negative_scale_decode_entrysource) + (dst_negative_scale_decode_entrysource)))))) /\ (((((exists ff_h_pvs_decode_entrysourcepositive. ff_h_pvs_decode_entrysourcepositive + S (dst_positive_decode_entrysource) = S ((S (i)) * dst_positive_scale_decode_entrysource)) /\ exists ff_q_pvs_decode_entrysourcepositive. dst_positive_code_decode_entrysource = ff_q_pvs_decode_entrysourcepositive * S ((S (i)) * dst_positive_scale_decode_entrysource) + (dst_positive_decode_entrysource))) /\ (((((exists ff_h_pvs_decode_entrysourcenegative. ff_h_pvs_decode_entrysourcenegative + S (dst_negative_decode_entrysource) = S ((S (i)) * dst_negative_scale_decode_entrysource)) /\ exists ff_q_pvs_decode_entrysourcenegative. dst_negative_code_decode_entrysource = ff_q_pvs_decode_entrysourcenegative * S ((S (i)) * dst_negative_scale_decode_entrysource) + (dst_negative_decode_entrysource))) /\ (exists ge_balance_positive_decode_entrysourcevalue ge_balance_negative_decode_entrysourcevalue. (((((ssr_entry_value_decode_entry) = 2 * (ge_balance_positive_decode_entrysourcevalue) /\ (ge_balance_negative_decode_entrysourcevalue) = 0) \/ exists ge_signed_half_decode_entrysourcevaluedecode. (((ssr_entry_value_decode_entry) = 2 * ge_signed_half_decode_entrysourcevaluedecode + 1 /\ (ge_balance_positive_decode_entrysourcevalue) = 0) /\ (ge_balance_negative_decode_entrysourcevalue) = S ge_signed_half_decode_entrysourcevaluedecode))) /\ ((dst_positive_decode_entrysource) + ge_balance_negative_decode_entrysourcevalue = (dst_negative_decode_entrysource) + ge_balance_positive_decode_entrysourcevalue))))))))) /\ (((((exists ff_h_pvs_decode_entrymap. ff_h_pvs_decode_entrymap + S (ssr_entry_image_decode_entry) = S ((S (i)) * s)) /\ exists ff_q_pvs_decode_entrymap. r = ff_q_pvs_decode_entrymap * S ((S (i)) * s) + (ssr_entry_image_decode_entry))) /\ (((((j)=(ssr_entry_image_decode_entry)) /\ ((z)=(ssr_entry_value_decode_entry)))) \/ (((~((j)=(ssr_entry_image_decode_entry))) /\ ((z)=0)))))))) -> (((((j)=(k)) /\ ((z)=(a)))) \/ (((~((j)=(k))) /\ ((z)=0))))Constructive proof overview
Generated structural guide
Actual signed lookup and beta uniqueness recover the independently stated hit-or-zero cell cases.
The unchanged tactic script uses 2 declared prerequisites and contains 36 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
divisor_signed_table_at_functional Alpha theorem; checked-use authorized beta_at_unique 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.
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro he
03Separate the logical casesL12–15
04Establish hvalueL16–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table at functional.
- L16
have hvalue : x=a - L17
specialize divisor_signed_table_at_functional (A) - L18
specialize divisor_signed_table_at_functional (i) - L19
specialize divisor_signed_table_at_functional (x) - L20
specialize divisor_signed_table_at_functional (a) - L21
apply divisor_signed_table_at_functional - L22
exact he_witness_witness_left - L23
exact ha
05Establish himageL24–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L24
have himage : x1=k - L25
specialize beta_at_unique (r) - L26
specialize beta_at_unique (s) - L27
specialize beta_at_unique (i) - L28
specialize beta_at_unique (x1) - L29
specialize beta_at_unique (k) - L30
apply beta_at_unique - L31
exact he_witness_witness_right_left - L32
exact hm - L33
rewrite hvalue at he_witness_witness_right_right
06Calculate and transport equalitiesL34–35
07Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
exact he_witness_witness_right_right
Original exact command ledger · 36 lines
- 0001
intro A - 0002
intro r - 0003
intro s - 0004
intro i - 0005
intro j - 0006
intro a - 0007
intro k - 0008
intro z - 0009
intro ha - 0010
intro hm - 0011
intro he - 0012
cases he - 0013
cases he_witness - 0014
cases he_witness_witness - 0015
cases he_witness_witness_right - 0016
have hvalue : x=a - 0017
specialize divisor_signed_table_at_functional (A) - 0018
specialize divisor_signed_table_at_functional (i) - 0019
specialize divisor_signed_table_at_functional (x) - 0020
specialize divisor_signed_table_at_functional (a) - 0021
apply divisor_signed_table_at_functional - 0022
exact he_witness_witness_left - 0023
exact ha - 0024
have himage : x1=k - 0025
specialize beta_at_unique (r) - 0026
specialize beta_at_unique (s) - 0027
specialize beta_at_unique (i) - 0028
specialize beta_at_unique (x1) - 0029
specialize beta_at_unique (k) - 0030
apply beta_at_unique - 0031
exact he_witness_witness_right_left - 0032
exact hm - 0033
rewrite hvalue at he_witness_witness_right_right - 0034
rewrite himage at he_witness_witness_right_right - 0035
rewrite himage at he_witness_witness_right_right - 0036
exact he_witness_witness_right_right