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. (exists dst_positive_code_entry_source_table dst_positive_scale_entry_source_table dst_negative_code_entry_source_table dst_negative_scale_entry_source_table. (((A) = (((((dst_positive_code_entry_source_table) + (dst_positive_scale_entry_source_table)) * S ((dst_positive_code_entry_source_table) + (dst_positive_scale_entry_source_table)) + ((dst_positive_scale_entry_source_table) + (dst_positive_scale_entry_source_table))) + (((dst_negative_code_entry_source_table) + (dst_negative_scale_entry_source_table)) * S ((dst_negative_code_entry_source_table) + (dst_negative_scale_entry_source_table)) + ((dst_negative_scale_entry_source_table) + (dst_negative_scale_entry_source_table)))) * S ((((dst_positive_code_entry_source_table) + (dst_positive_scale_entry_source_table)) * S ((dst_positive_code_entry_source_table) + (dst_positive_scale_entry_source_table)) + ((dst_positive_scale_entry_source_table) + (dst_positive_scale_entry_source_table))) + (((dst_negative_code_entry_source_table) + (dst_negative_scale_entry_source_table)) * S ((dst_negative_code_entry_source_table) + (dst_negative_scale_entry_source_table)) + ((dst_negative_scale_entry_source_table) + (dst_negative_scale_entry_source_table)))) + ((((dst_negative_code_entry_source_table) + (dst_negative_scale_entry_source_table)) * S ((dst_negative_code_entry_source_table) + (dst_negative_scale_entry_source_table)) + ((dst_negative_scale_entry_source_table) + (dst_negative_scale_entry_source_table))) + (((dst_negative_code_entry_source_table) + (dst_negative_scale_entry_source_table)) * S ((dst_negative_code_entry_source_table) + (dst_negative_scale_entry_source_table)) + ((dst_negative_scale_entry_source_table) + (dst_negative_scale_entry_source_table)))))) /\ (forall dst_index_entry_source_table. (exists pvs_le_gap_entry_source_tabledomain. pvs_le_gap_entry_source_tabledomain + (dst_index_entry_source_table) = (0)) -> exists dst_positive_entry_source_table dst_negative_entry_source_table dst_value_entry_source_table. ((((exists ff_h_pvs_entry_source_tableentrypositive. ff_h_pvs_entry_source_tableentrypositive + S (dst_positive_entry_source_table) = S ((S (dst_index_entry_source_table)) * dst_positive_scale_entry_source_table)) /\ exists ff_q_pvs_entry_source_tableentrypositive. dst_positive_code_entry_source_table = ff_q_pvs_entry_source_tableentrypositive * S ((S (dst_index_entry_source_table)) * dst_positive_scale_entry_source_table) + (dst_positive_entry_source_table))) /\ (((((exists ff_h_pvs_entry_source_tableentrynegative. ff_h_pvs_entry_source_tableentrynegative + S (dst_negative_entry_source_table) = S ((S (dst_index_entry_source_table)) * dst_negative_scale_entry_source_table)) /\ exists ff_q_pvs_entry_source_tableentrynegative. dst_negative_code_entry_source_table = ff_q_pvs_entry_source_tableentrynegative * S ((S (dst_index_entry_source_table)) * dst_negative_scale_entry_source_table) + (dst_negative_entry_source_table))) /\ (exists ge_balance_positive_entry_source_tableentryvalue ge_balance_negative_entry_source_tableentryvalue. (((((dst_value_entry_source_table) = 2 * (ge_balance_positive_entry_source_tableentryvalue) /\ (ge_balance_negative_entry_source_tableentryvalue) = 0) \/ exists ge_signed_half_entry_source_tableentryvaluedecode. (((dst_value_entry_source_table) = 2 * ge_signed_half_entry_source_tableentryvaluedecode + 1 /\ (ge_balance_positive_entry_source_tableentryvalue) = 0) /\ (ge_balance_negative_entry_source_tableentryvalue) = S ge_signed_half_entry_source_tableentryvaluedecode))) /\ ((dst_positive_entry_source_table) + ge_balance_negative_entry_source_tableentryvalue = (dst_negative_entry_source_table) + ge_balance_positive_entry_source_tableentryvalue))))))))) -> exists z. (exists ssr_entry_value_entry_total ssr_entry_image_entry_total. ((exists dst_positive_code_entry_totalsource dst_positive_scale_entry_totalsource dst_negative_code_entry_totalsource dst_negative_scale_entry_totalsource dst_positive_entry_totalsource dst_negative_entry_totalsource. (((A) = (((((dst_positive_code_entry_totalsource) + (dst_positive_scale_entry_totalsource)) * S ((dst_positive_code_entry_totalsource) + (dst_positive_scale_entry_totalsource)) + ((dst_positive_scale_entry_totalsource) + (dst_positive_scale_entry_totalsource))) + (((dst_negative_code_entry_totalsource) + (dst_negative_scale_entry_totalsource)) * S ((dst_negative_code_entry_totalsource) + (dst_negative_scale_entry_totalsource)) + ((dst_negative_scale_entry_totalsource) + (dst_negative_scale_entry_totalsource)))) * S ((((dst_positive_code_entry_totalsource) + (dst_positive_scale_entry_totalsource)) * S ((dst_positive_code_entry_totalsource) + (dst_positive_scale_entry_totalsource)) + ((dst_positive_scale_entry_totalsource) + (dst_positive_scale_entry_totalsource))) + (((dst_negative_code_entry_totalsource) + (dst_negative_scale_entry_totalsource)) * S ((dst_negative_code_entry_totalsource) + (dst_negative_scale_entry_totalsource)) + ((dst_negative_scale_entry_totalsource) + (dst_negative_scale_entry_totalsource)))) + ((((dst_negative_code_entry_totalsource) + (dst_negative_scale_entry_totalsource)) * S ((dst_negative_code_entry_totalsource) + (dst_negative_scale_entry_totalsource)) + ((dst_negative_scale_entry_totalsource) + (dst_negative_scale_entry_totalsource))) + (((dst_negative_code_entry_totalsource) + (dst_negative_scale_entry_totalsource)) * S ((dst_negative_code_entry_totalsource) + (dst_negative_scale_entry_totalsource)) + ((dst_negative_scale_entry_totalsource) + (dst_negative_scale_entry_totalsource)))))) /\ (((((exists ff_h_pvs_entry_totalsourcepositive. ff_h_pvs_entry_totalsourcepositive + S (dst_positive_entry_totalsource) = S ((S (i)) * dst_positive_scale_entry_totalsource)) /\ exists ff_q_pvs_entry_totalsourcepositive. dst_positive_code_entry_totalsource = ff_q_pvs_entry_totalsourcepositive * S ((S (i)) * dst_positive_scale_entry_totalsource) + (dst_positive_entry_totalsource))) /\ (((((exists ff_h_pvs_entry_totalsourcenegative. ff_h_pvs_entry_totalsourcenegative + S (dst_negative_entry_totalsource) = S ((S (i)) * dst_negative_scale_entry_totalsource)) /\ exists ff_q_pvs_entry_totalsourcenegative. dst_negative_code_entry_totalsource = ff_q_pvs_entry_totalsourcenegative * S ((S (i)) * dst_negative_scale_entry_totalsource) + (dst_negative_entry_totalsource))) /\ (exists ge_balance_positive_entry_totalsourcevalue ge_balance_negative_entry_totalsourcevalue. (((((ssr_entry_value_entry_total) = 2 * (ge_balance_positive_entry_totalsourcevalue) /\ (ge_balance_negative_entry_totalsourcevalue) = 0) \/ exists ge_signed_half_entry_totalsourcevaluedecode. (((ssr_entry_value_entry_total) = 2 * ge_signed_half_entry_totalsourcevaluedecode + 1 /\ (ge_balance_positive_entry_totalsourcevalue) = 0) /\ (ge_balance_negative_entry_totalsourcevalue) = S ge_signed_half_entry_totalsourcevaluedecode))) /\ ((dst_positive_entry_totalsource) + ge_balance_negative_entry_totalsourcevalue = (dst_negative_entry_totalsource) + ge_balance_positive_entry_totalsourcevalue))))))))) /\ (((((exists ff_h_pvs_entry_totalmap. ff_h_pvs_entry_totalmap + S (ssr_entry_image_entry_total) = S ((S (i)) * s)) /\ exists ff_q_pvs_entry_totalmap. r = ff_q_pvs_entry_totalmap * S ((S (i)) * s) + (ssr_entry_image_entry_total))) /\ (((((j)=(ssr_entry_image_entry_total)) /\ ((z)=(ssr_entry_value_entry_total)))) \/ (((~((j)=(ssr_entry_image_entry_total))) /\ ((z)=0))))))))Constructive proof overview
Generated structural guide
Every cell is constructively computed from a real signed lookup, a real natural beta image, and decidable equality.
The unchanged tactic script uses 5 declared prerequisites and contains 48 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
signed_table_lookup_any Alpha theorem; checked-use authorized beta_at_exists Stable theorem; checked-use authorized eq_decidable Stable theorem; checked-use authorized MX0036 signed_support_incidence_entry_hit MX0037 signed_support_incidence_entry_missDirect 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 (2)
01Fix variables and assumptionsL1–6
02Establish haL7–12
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
03Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
cases ha
04Establish hmL14–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L14
have hm : exists k. (((exists ff_h_pvs_entry_actual_map. ff_h_pvs_entry_actual_map + S (k) = S ((S (i)) * s)) /\ exists ff_q_pvs_entry_actual_map. r = ff_q_pvs_entry_actual_map * S ((S (i)) * s) + (k))) - L15
specialize beta_at_exists (r) - L16
specialize beta_at_exists (s) - L17
specialize beta_at_exists (i) - L18
apply beta_at_exists
05Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
cases hm
06Establish hcL20–23
07Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
cases hc
08Construct an explicit witnessL25–25
Supply the displayed value, then prove that it has the required property.
- L25
exists x
09Calculate and transport equalitiesL26–27
10Use earlier factsL28–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
specialize signed_support_incidence_entry_hit (A) - L29
specialize signed_support_incidence_entry_hit (r) - L30
specialize signed_support_incidence_entry_hit (s) - L31
specialize signed_support_incidence_entry_hit (i) - L32
specialize signed_support_incidence_entry_hit (x1) - L33
specialize signed_support_incidence_entry_hit (x) - L34
apply signed_support_incidence_entry_hit - L35
exact ha_witness - L36
exact hm_witness
11Construct an explicit witnessL37–37
Supply the displayed value, then prove that it has the required property.
- L37
exists 0
12Use earlier factsL38–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
specialize signed_support_incidence_entry_miss (A) - L39
specialize signed_support_incidence_entry_miss (r) - L40
specialize signed_support_incidence_entry_miss (s) - L41
specialize signed_support_incidence_entry_miss (i) - L42
specialize signed_support_incidence_entry_miss (j) - L43
specialize signed_support_incidence_entry_miss (x1) - L44
specialize signed_support_incidence_entry_miss (x) - L45
apply signed_support_incidence_entry_miss - L46
exact ha_witness - L47
exact hm_witness
13Use earlier factsL48–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L48
exact hc_right
Original exact command ledger · 48 lines
- 0001
intro A - 0002
intro r - 0003
intro s - 0004
intro i - 0005
intro j - 0006
intro hA - 0007
have ha : exists a. (exists dst_positive_code_entry_actual_source dst_positive_scale_entry_actual_source dst_negative_code_entry_actual_source dst_negative_scale_entry_actual_source dst_positive_entry_actual_source dst_negative_entry_actual_source. (((A) = (((((dst_positive_code_entry_actual_source) + (dst_positive_scale_entry_actual_source)) * S ((dst_positive_code_entry_actual_source) + (dst_positive_scale_entry_actual_source)) + ((dst_positive_scale_entry_actual_source) + (dst_positive_scale_entry_actual_source))) + (((dst_negative_code_entry_actual_source) + (dst_negative_scale_entry_actual_source)) * S ((dst_negative_code_entry_actual_source) + (dst_negative_scale_entry_actual_source)) + ((dst_negative_scale_entry_actual_source) + (dst_negative_scale_entry_actual_source)))) * S ((((dst_positive_code_entry_actual_source) + (dst_positive_scale_entry_actual_source)) * S ((dst_positive_code_entry_actual_source) + (dst_positive_scale_entry_actual_source)) + ((dst_positive_scale_entry_actual_source) + (dst_positive_scale_entry_actual_source))) + (((dst_negative_code_entry_actual_source) + (dst_negative_scale_entry_actual_source)) * S ((dst_negative_code_entry_actual_source) + (dst_negative_scale_entry_actual_source)) + ((dst_negative_scale_entry_actual_source) + (dst_negative_scale_entry_actual_source)))) + ((((dst_negative_code_entry_actual_source) + (dst_negative_scale_entry_actual_source)) * S ((dst_negative_code_entry_actual_source) + (dst_negative_scale_entry_actual_source)) + ((dst_negative_scale_entry_actual_source) + (dst_negative_scale_entry_actual_source))) + (((dst_negative_code_entry_actual_source) + (dst_negative_scale_entry_actual_source)) * S ((dst_negative_code_entry_actual_source) + (dst_negative_scale_entry_actual_source)) + ((dst_negative_scale_entry_actual_source) + (dst_negative_scale_entry_actual_source)))))) /\ (((((exists ff_h_pvs_entry_actual_sourcepositive. ff_h_pvs_entry_actual_sourcepositive + S (dst_positive_entry_actual_source) = S ((S (i)) * dst_positive_scale_entry_actual_source)) /\ exists ff_q_pvs_entry_actual_sourcepositive. dst_positive_code_entry_actual_source = ff_q_pvs_entry_actual_sourcepositive * S ((S (i)) * dst_positive_scale_entry_actual_source) + (dst_positive_entry_actual_source))) /\ (((((exists ff_h_pvs_entry_actual_sourcenegative. ff_h_pvs_entry_actual_sourcenegative + S (dst_negative_entry_actual_source) = S ((S (i)) * dst_negative_scale_entry_actual_source)) /\ exists ff_q_pvs_entry_actual_sourcenegative. dst_negative_code_entry_actual_source = ff_q_pvs_entry_actual_sourcenegative * S ((S (i)) * dst_negative_scale_entry_actual_source) + (dst_negative_entry_actual_source))) /\ (exists ge_balance_positive_entry_actual_sourcevalue ge_balance_negative_entry_actual_sourcevalue. (((((a) = 2 * (ge_balance_positive_entry_actual_sourcevalue) /\ (ge_balance_negative_entry_actual_sourcevalue) = 0) \/ exists ge_signed_half_entry_actual_sourcevaluedecode. (((a) = 2 * ge_signed_half_entry_actual_sourcevaluedecode + 1 /\ (ge_balance_positive_entry_actual_sourcevalue) = 0) /\ (ge_balance_negative_entry_actual_sourcevalue) = S ge_signed_half_entry_actual_sourcevaluedecode))) /\ ((dst_positive_entry_actual_source) + ge_balance_negative_entry_actual_sourcevalue = (dst_negative_entry_actual_source) + ge_balance_positive_entry_actual_sourcevalue))))))))) - 0008
specialize signed_table_lookup_any (0) - 0009
specialize signed_table_lookup_any (A) - 0010
specialize signed_table_lookup_any (i) - 0011
apply signed_table_lookup_any - 0012
exact hA - 0013
cases ha - 0014
have hm : exists k. (((exists ff_h_pvs_entry_actual_map. ff_h_pvs_entry_actual_map + S (k) = S ((S (i)) * s)) /\ exists ff_q_pvs_entry_actual_map. r = ff_q_pvs_entry_actual_map * S ((S (i)) * s) + (k))) - 0015
specialize beta_at_exists (r) - 0016
specialize beta_at_exists (s) - 0017
specialize beta_at_exists (i) - 0018
apply beta_at_exists - 0019
cases hm - 0020
have hc : j=x1 \/ ~(j=x1) - 0021
specialize eq_decidable (j) - 0022
specialize eq_decidable (x1) - 0023
apply eq_decidable - 0024
cases hc - 0025
exists x - 0026
rewrite hc_left - 0027
rewrite hc_left - 0028
specialize signed_support_incidence_entry_hit (A) - 0029
specialize signed_support_incidence_entry_hit (r) - 0030
specialize signed_support_incidence_entry_hit (s) - 0031
specialize signed_support_incidence_entry_hit (i) - 0032
specialize signed_support_incidence_entry_hit (x1) - 0033
specialize signed_support_incidence_entry_hit (x) - 0034
apply signed_support_incidence_entry_hit - 0035
exact ha_witness - 0036
exact hm_witness - 0037
exists 0 - 0038
specialize signed_support_incidence_entry_miss (A) - 0039
specialize signed_support_incidence_entry_miss (r) - 0040
specialize signed_support_incidence_entry_miss (s) - 0041
specialize signed_support_incidence_entry_miss (i) - 0042
specialize signed_support_incidence_entry_miss (j) - 0043
specialize signed_support_incidence_entry_miss (x1) - 0044
specialize signed_support_incidence_entry_miss (x) - 0045
apply signed_support_incidence_entry_miss - 0046
exact ha_witness - 0047
exact hm_witness - 0048
exact hc_right