IV0002

dirichlet_unit_at_one_from_value

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

A genuine lookup with a canonical signed unit value satisfies the two-case unit-at-one predicate.

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 u. (exists dst_positive_code_unit_value_entry dst_positive_scale_unit_value_entry dst_negative_code_unit_value_entry dst_negative_scale_unit_value_entry dst_positive_unit_value_entry dst_negative_unit_value_entry. (((F) = (((((dst_positive_code_unit_value_entry) + (dst_positive_scale_unit_value_entry)) * S ((dst_positive_code_unit_value_entry) + (dst_positive_scale_unit_value_entry)) + ((dst_positive_scale_unit_value_entry) + (dst_positive_scale_unit_value_entry))) + (((dst_negative_code_unit_value_entry) + (dst_negative_scale_unit_value_entry)) * S ((dst_negative_code_unit_value_entry) + (dst_negative_scale_unit_value_entry)) + ((dst_negative_scale_unit_value_entry) + (dst_negative_scale_unit_value_entry)))) * S ((((dst_positive_code_unit_value_entry) + (dst_positive_scale_unit_value_entry)) * S ((dst_positive_code_unit_value_entry) + (dst_positive_scale_unit_value_entry)) + ((dst_positive_scale_unit_value_entry) + (dst_positive_scale_unit_value_entry))) + (((dst_negative_code_unit_value_entry) + (dst_negative_scale_unit_value_entry)) * S ((dst_negative_code_unit_value_entry) + (dst_negative_scale_unit_value_entry)) + ((dst_negative_scale_unit_value_entry) + (dst_negative_scale_unit_value_entry)))) + ((((dst_negative_code_unit_value_entry) + (dst_negative_scale_unit_value_entry)) * S ((dst_negative_code_unit_value_entry) + (dst_negative_scale_unit_value_entry)) + ((dst_negative_scale_unit_value_entry) + (dst_negative_scale_unit_value_entry))) + (((dst_negative_code_unit_value_entry) + (dst_negative_scale_unit_value_entry)) * S ((dst_negative_code_unit_value_entry) + (dst_negative_scale_unit_value_entry)) + ((dst_negative_scale_unit_value_entry) + (dst_negative_scale_unit_value_entry)))))) /\ (((((exists ff_h_pvs_unit_value_entrypositive. ff_h_pvs_unit_value_entrypositive + S (dst_positive_unit_value_entry) = S ((S (1)) * dst_positive_scale_unit_value_entry)) /\ exists ff_q_pvs_unit_value_entrypositive. dst_positive_code_unit_value_entry = ff_q_pvs_unit_value_entrypositive * S ((S (1)) * dst_positive_scale_unit_value_entry) + (dst_positive_unit_value_entry))) /\ (((((exists ff_h_pvs_unit_value_entrynegative. ff_h_pvs_unit_value_entrynegative + S (dst_negative_unit_value_entry) = S ((S (1)) * dst_negative_scale_unit_value_entry)) /\ exists ff_q_pvs_unit_value_entrynegative. dst_negative_code_unit_value_entry = ff_q_pvs_unit_value_entrynegative * S ((S (1)) * dst_negative_scale_unit_value_entry) + (dst_negative_unit_value_entry))) /\ (exists ge_balance_positive_unit_value_entryvalue ge_balance_negative_unit_value_entryvalue. (((((u) = 2 * (ge_balance_positive_unit_value_entryvalue) /\ (ge_balance_negative_unit_value_entryvalue) = 0) \/ exists ge_signed_half_unit_value_entryvaluedecode. (((u) = 2 * ge_signed_half_unit_value_entryvaluedecode + 1 /\ (ge_balance_positive_unit_value_entryvalue) = 0) /\ (ge_balance_negative_unit_value_entryvalue) = S ge_signed_half_unit_value_entryvaluedecode))) /\ ((dst_positive_unit_value_entry) + ge_balance_negative_unit_value_entryvalue = (dst_negative_unit_value_entry) + ge_balance_positive_unit_value_entryvalue))))))))) -> (((u) = 2 \/ (u) = 1)) -> ((exists dst_positive_code_unit_value_resultpositive dst_positive_scale_unit_value_resultpositive dst_negative_code_unit_value_resultpositive dst_negative_scale_unit_value_resultpositive dst_positive_unit_value_resultpositive dst_negative_unit_value_resultpositive. (((F) = (((((dst_positive_code_unit_value_resultpositive) + (dst_positive_scale_unit_value_resultpositive)) * S ((dst_positive_code_unit_value_resultpositive) + (dst_positive_scale_unit_value_resultpositive)) + ((dst_positive_scale_unit_value_resultpositive) + (dst_positive_scale_unit_value_resultpositive))) + (((dst_negative_code_unit_value_resultpositive) + (dst_negative_scale_unit_value_resultpositive)) * S ((dst_negative_code_unit_value_resultpositive) + (dst_negative_scale_unit_value_resultpositive)) + ((dst_negative_scale_unit_value_resultpositive) + (dst_negative_scale_unit_value_resultpositive)))) * S ((((dst_positive_code_unit_value_resultpositive) + (dst_positive_scale_unit_value_resultpositive)) * S ((dst_positive_code_unit_value_resultpositive) + (dst_positive_scale_unit_value_resultpositive)) + ((dst_positive_scale_unit_value_resultpositive) + (dst_positive_scale_unit_value_resultpositive))) + (((dst_negative_code_unit_value_resultpositive) + (dst_negative_scale_unit_value_resultpositive)) * S ((dst_negative_code_unit_value_resultpositive) + (dst_negative_scale_unit_value_resultpositive)) + ((dst_negative_scale_unit_value_resultpositive) + (dst_negative_scale_unit_value_resultpositive)))) + ((((dst_negative_code_unit_value_resultpositive) + (dst_negative_scale_unit_value_resultpositive)) * S ((dst_negative_code_unit_value_resultpositive) + (dst_negative_scale_unit_value_resultpositive)) + ((dst_negative_scale_unit_value_resultpositive) + (dst_negative_scale_unit_value_resultpositive))) + (((dst_negative_code_unit_value_resultpositive) + (dst_negative_scale_unit_value_resultpositive)) * S ((dst_negative_code_unit_value_resultpositive) + (dst_negative_scale_unit_value_resultpositive)) + ((dst_negative_scale_unit_value_resultpositive) + (dst_negative_scale_unit_value_resultpositive)))))) /\ (((((exists ff_h_pvs_unit_value_resultpositivepositive. ff_h_pvs_unit_value_resultpositivepositive + S (dst_positive_unit_value_resultpositive) = S ((S (1)) * dst_positive_scale_unit_value_resultpositive)) /\ exists ff_q_pvs_unit_value_resultpositivepositive. dst_positive_code_unit_value_resultpositive = ff_q_pvs_unit_value_resultpositivepositive * S ((S (1)) * dst_positive_scale_unit_value_resultpositive) + (dst_positive_unit_value_resultpositive))) /\ (((((exists ff_h_pvs_unit_value_resultpositivenegative. ff_h_pvs_unit_value_resultpositivenegative + S (dst_negative_unit_value_resultpositive) = S ((S (1)) * dst_negative_scale_unit_value_resultpositive)) /\ exists ff_q_pvs_unit_value_resultpositivenegative. dst_negative_code_unit_value_resultpositive = ff_q_pvs_unit_value_resultpositivenegative * S ((S (1)) * dst_negative_scale_unit_value_resultpositive) + (dst_negative_unit_value_resultpositive))) /\ (exists ge_balance_positive_unit_value_resultpositivevalue ge_balance_negative_unit_value_resultpositivevalue. (((((2) = 2 * (ge_balance_positive_unit_value_resultpositivevalue) /\ (ge_balance_negative_unit_value_resultpositivevalue) = 0) \/ exists ge_signed_half_unit_value_resultpositivevaluedecode. (((2) = 2 * ge_signed_half_unit_value_resultpositivevaluedecode + 1 /\ (ge_balance_positive_unit_value_resultpositivevalue) = 0) /\ (ge_balance_negative_unit_value_resultpositivevalue) = S ge_signed_half_unit_value_resultpositivevaluedecode))) /\ ((dst_positive_unit_value_resultpositive) + ge_balance_negative_unit_value_resultpositivevalue = (dst_negative_unit_value_resultpositive) + ge_balance_positive_unit_value_resultpositivevalue))))))))) \/ (exists dst_positive_code_unit_value_resultnegative dst_positive_scale_unit_value_resultnegative dst_negative_code_unit_value_resultnegative dst_negative_scale_unit_value_resultnegative dst_positive_unit_value_resultnegative dst_negative_unit_value_resultnegative. (((F) = (((((dst_positive_code_unit_value_resultnegative) + (dst_positive_scale_unit_value_resultnegative)) * S ((dst_positive_code_unit_value_resultnegative) + (dst_positive_scale_unit_value_resultnegative)) + ((dst_positive_scale_unit_value_resultnegative) + (dst_positive_scale_unit_value_resultnegative))) + (((dst_negative_code_unit_value_resultnegative) + (dst_negative_scale_unit_value_resultnegative)) * S ((dst_negative_code_unit_value_resultnegative) + (dst_negative_scale_unit_value_resultnegative)) + ((dst_negative_scale_unit_value_resultnegative) + (dst_negative_scale_unit_value_resultnegative)))) * S ((((dst_positive_code_unit_value_resultnegative) + (dst_positive_scale_unit_value_resultnegative)) * S ((dst_positive_code_unit_value_resultnegative) + (dst_positive_scale_unit_value_resultnegative)) + ((dst_positive_scale_unit_value_resultnegative) + (dst_positive_scale_unit_value_resultnegative))) + (((dst_negative_code_unit_value_resultnegative) + (dst_negative_scale_unit_value_resultnegative)) * S ((dst_negative_code_unit_value_resultnegative) + (dst_negative_scale_unit_value_resultnegative)) + ((dst_negative_scale_unit_value_resultnegative) + (dst_negative_scale_unit_value_resultnegative)))) + ((((dst_negative_code_unit_value_resultnegative) + (dst_negative_scale_unit_value_resultnegative)) * S ((dst_negative_code_unit_value_resultnegative) + (dst_negative_scale_unit_value_resultnegative)) + ((dst_negative_scale_unit_value_resultnegative) + (dst_negative_scale_unit_value_resultnegative))) + (((dst_negative_code_unit_value_resultnegative) + (dst_negative_scale_unit_value_resultnegative)) * S ((dst_negative_code_unit_value_resultnegative) + (dst_negative_scale_unit_value_resultnegative)) + ((dst_negative_scale_unit_value_resultnegative) + (dst_negative_scale_unit_value_resultnegative)))))) /\ (((((exists ff_h_pvs_unit_value_resultnegativepositive. ff_h_pvs_unit_value_resultnegativepositive + S (dst_positive_unit_value_resultnegative) = S ((S (1)) * dst_positive_scale_unit_value_resultnegative)) /\ exists ff_q_pvs_unit_value_resultnegativepositive. dst_positive_code_unit_value_resultnegative = ff_q_pvs_unit_value_resultnegativepositive * S ((S (1)) * dst_positive_scale_unit_value_resultnegative) + (dst_positive_unit_value_resultnegative))) /\ (((((exists ff_h_pvs_unit_value_resultnegativenegative. ff_h_pvs_unit_value_resultnegativenegative + S (dst_negative_unit_value_resultnegative) = S ((S (1)) * dst_negative_scale_unit_value_resultnegative)) /\ exists ff_q_pvs_unit_value_resultnegativenegative. dst_negative_code_unit_value_resultnegative = ff_q_pvs_unit_value_resultnegativenegative * S ((S (1)) * dst_negative_scale_unit_value_resultnegative) + (dst_negative_unit_value_resultnegative))) /\ (exists ge_balance_positive_unit_value_resultnegativevalue ge_balance_negative_unit_value_resultnegativevalue. (((((1) = 2 * (ge_balance_positive_unit_value_resultnegativevalue) /\ (ge_balance_negative_unit_value_resultnegativevalue) = 0) \/ exists ge_signed_half_unit_value_resultnegativevaluedecode. (((1) = 2 * ge_signed_half_unit_value_resultnegativevaluedecode + 1 /\ (ge_balance_positive_unit_value_resultnegativevalue) = 0) /\ (ge_balance_negative_unit_value_resultnegativevalue) = S ge_signed_half_unit_value_resultnegativevaluedecode))) /\ ((dst_positive_unit_value_resultnegative) + ge_balance_negative_unit_value_resultnegativevalue = (dst_negative_unit_value_resultnegative) + ge_balance_positive_unit_value_resultnegativevalue))))))))))

Constructive proof overview

Generated structural guide

A genuine lookup with a canonical signed unit value satisfies the two-case unit-at-one predicate.

The unchanged tactic script uses 0 declared prerequisites and contains 13 exact native proof lines.

Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

none

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

13 script commands · 7 reading checkpoints · 0 local claims

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–4

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro F
  2. L2
    intro u
  3. L3
    intro ha
  4. L4
    intro hu
02Separate the logical casesL5–6

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L5
    cases hu
  2. L6
    left
03Calculate and transport equalitiesL7–8

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L7
    rewrite hu_left at ha
  2. L8
    rewrite hu_left at ha
04Use earlier factsL9–9

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L9
    exact ha
05Separate the logical casesL10–10

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L10
    right
06Calculate and transport equalitiesL11–12

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L11
    rewrite hu_right at ha
  2. L12
    rewrite hu_right at ha
07Use earlier factsL13–13

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L13
    exact ha

Library-wide reading audit

Original exact command ledger · 13 lines
  1. 0001intro F
  2. 0002intro u
  3. 0003intro ha
  4. 0004intro hu
  5. 0005cases hu
  6. 0006left
  7. 0007rewrite hu_left at ha
  8. 0008rewrite hu_left at ha
  9. 0009exact ha
  10. 0010right
  11. 0011rewrite hu_right at ha
  12. 0012rewrite hu_right at ha
  13. 0013exact ha