DV0002

arithmetic_signed_table_equal_entry_transport

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

Actual finite-domain lookup plus prefix equality transports a signed value; no table-component equality or unspecified choice is used.

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 N F G l i z. (exists dst_positive_code_transport_valid dst_positive_scale_transport_valid dst_negative_code_transport_valid dst_negative_scale_transport_valid. (((G) = (((((dst_positive_code_transport_valid) + (dst_positive_scale_transport_valid)) * S ((dst_positive_code_transport_valid) + (dst_positive_scale_transport_valid)) + ((dst_positive_scale_transport_valid) + (dst_positive_scale_transport_valid))) + (((dst_negative_code_transport_valid) + (dst_negative_scale_transport_valid)) * S ((dst_negative_code_transport_valid) + (dst_negative_scale_transport_valid)) + ((dst_negative_scale_transport_valid) + (dst_negative_scale_transport_valid)))) * S ((((dst_positive_code_transport_valid) + (dst_positive_scale_transport_valid)) * S ((dst_positive_code_transport_valid) + (dst_positive_scale_transport_valid)) + ((dst_positive_scale_transport_valid) + (dst_positive_scale_transport_valid))) + (((dst_negative_code_transport_valid) + (dst_negative_scale_transport_valid)) * S ((dst_negative_code_transport_valid) + (dst_negative_scale_transport_valid)) + ((dst_negative_scale_transport_valid) + (dst_negative_scale_transport_valid)))) + ((((dst_negative_code_transport_valid) + (dst_negative_scale_transport_valid)) * S ((dst_negative_code_transport_valid) + (dst_negative_scale_transport_valid)) + ((dst_negative_scale_transport_valid) + (dst_negative_scale_transport_valid))) + (((dst_negative_code_transport_valid) + (dst_negative_scale_transport_valid)) * S ((dst_negative_code_transport_valid) + (dst_negative_scale_transport_valid)) + ((dst_negative_scale_transport_valid) + (dst_negative_scale_transport_valid)))))) /\ (forall dst_index_transport_valid. (exists pvs_le_gap_transport_validdomain. pvs_le_gap_transport_validdomain + (dst_index_transport_valid) = (N)) -> exists dst_positive_transport_valid dst_negative_transport_valid dst_value_transport_valid. ((((exists ff_h_pvs_transport_validentrypositive. ff_h_pvs_transport_validentrypositive + S (dst_positive_transport_valid) = S ((S (dst_index_transport_valid)) * dst_positive_scale_transport_valid)) /\ exists ff_q_pvs_transport_validentrypositive. dst_positive_code_transport_valid = ff_q_pvs_transport_validentrypositive * S ((S (dst_index_transport_valid)) * dst_positive_scale_transport_valid) + (dst_positive_transport_valid))) /\ (((((exists ff_h_pvs_transport_validentrynegative. ff_h_pvs_transport_validentrynegative + S (dst_negative_transport_valid) = S ((S (dst_index_transport_valid)) * dst_negative_scale_transport_valid)) /\ exists ff_q_pvs_transport_validentrynegative. dst_negative_code_transport_valid = ff_q_pvs_transport_validentrynegative * S ((S (dst_index_transport_valid)) * dst_negative_scale_transport_valid) + (dst_negative_transport_valid))) /\ (exists ge_balance_positive_transport_validentryvalue ge_balance_negative_transport_validentryvalue. (((((dst_value_transport_valid) = 2 * (ge_balance_positive_transport_validentryvalue) /\ (ge_balance_negative_transport_validentryvalue) = 0) \/ exists ge_signed_half_transport_validentryvaluedecode. (((dst_value_transport_valid) = 2 * ge_signed_half_transport_validentryvaluedecode + 1 /\ (ge_balance_positive_transport_validentryvalue) = 0) /\ (ge_balance_negative_transport_validentryvalue) = S ge_signed_half_transport_validentryvaluedecode))) /\ ((dst_positive_transport_valid) + ge_balance_negative_transport_validentryvalue = (dst_negative_transport_valid) + ge_balance_positive_transport_validentryvalue))))))))) -> (forall dst_index_transport_prefix dst_first_transport_prefix dst_second_transport_prefix. (exists pvs_gap_transport_prefixbound. pvs_gap_transport_prefixbound + S (dst_index_transport_prefix) = (l)) -> (exists dst_positive_code_transport_prefixfirst dst_positive_scale_transport_prefixfirst dst_negative_code_transport_prefixfirst dst_negative_scale_transport_prefixfirst dst_positive_transport_prefixfirst dst_negative_transport_prefixfirst. (((F) = (((((dst_positive_code_transport_prefixfirst) + (dst_positive_scale_transport_prefixfirst)) * S ((dst_positive_code_transport_prefixfirst) + (dst_positive_scale_transport_prefixfirst)) + ((dst_positive_scale_transport_prefixfirst) + (dst_positive_scale_transport_prefixfirst))) + (((dst_negative_code_transport_prefixfirst) + (dst_negative_scale_transport_prefixfirst)) * S ((dst_negative_code_transport_prefixfirst) + (dst_negative_scale_transport_prefixfirst)) + ((dst_negative_scale_transport_prefixfirst) + (dst_negative_scale_transport_prefixfirst)))) * S ((((dst_positive_code_transport_prefixfirst) + (dst_positive_scale_transport_prefixfirst)) * S ((dst_positive_code_transport_prefixfirst) + (dst_positive_scale_transport_prefixfirst)) + ((dst_positive_scale_transport_prefixfirst) + (dst_positive_scale_transport_prefixfirst))) + (((dst_negative_code_transport_prefixfirst) + (dst_negative_scale_transport_prefixfirst)) * S ((dst_negative_code_transport_prefixfirst) + (dst_negative_scale_transport_prefixfirst)) + ((dst_negative_scale_transport_prefixfirst) + (dst_negative_scale_transport_prefixfirst)))) + ((((dst_negative_code_transport_prefixfirst) + (dst_negative_scale_transport_prefixfirst)) * S ((dst_negative_code_transport_prefixfirst) + (dst_negative_scale_transport_prefixfirst)) + ((dst_negative_scale_transport_prefixfirst) + (dst_negative_scale_transport_prefixfirst))) + (((dst_negative_code_transport_prefixfirst) + (dst_negative_scale_transport_prefixfirst)) * S ((dst_negative_code_transport_prefixfirst) + (dst_negative_scale_transport_prefixfirst)) + ((dst_negative_scale_transport_prefixfirst) + (dst_negative_scale_transport_prefixfirst)))))) /\ (((((exists ff_h_pvs_transport_prefixfirstpositive. ff_h_pvs_transport_prefixfirstpositive + S (dst_positive_transport_prefixfirst) = S ((S (dst_index_transport_prefix)) * dst_positive_scale_transport_prefixfirst)) /\ exists ff_q_pvs_transport_prefixfirstpositive. dst_positive_code_transport_prefixfirst = ff_q_pvs_transport_prefixfirstpositive * S ((S (dst_index_transport_prefix)) * dst_positive_scale_transport_prefixfirst) + (dst_positive_transport_prefixfirst))) /\ (((((exists ff_h_pvs_transport_prefixfirstnegative. ff_h_pvs_transport_prefixfirstnegative + S (dst_negative_transport_prefixfirst) = S ((S (dst_index_transport_prefix)) * dst_negative_scale_transport_prefixfirst)) /\ exists ff_q_pvs_transport_prefixfirstnegative. dst_negative_code_transport_prefixfirst = ff_q_pvs_transport_prefixfirstnegative * S ((S (dst_index_transport_prefix)) * dst_negative_scale_transport_prefixfirst) + (dst_negative_transport_prefixfirst))) /\ (exists ge_balance_positive_transport_prefixfirstvalue ge_balance_negative_transport_prefixfirstvalue. (((((dst_first_transport_prefix) = 2 * (ge_balance_positive_transport_prefixfirstvalue) /\ (ge_balance_negative_transport_prefixfirstvalue) = 0) \/ exists ge_signed_half_transport_prefixfirstvaluedecode. (((dst_first_transport_prefix) = 2 * ge_signed_half_transport_prefixfirstvaluedecode + 1 /\ (ge_balance_positive_transport_prefixfirstvalue) = 0) /\ (ge_balance_negative_transport_prefixfirstvalue) = S ge_signed_half_transport_prefixfirstvaluedecode))) /\ ((dst_positive_transport_prefixfirst) + ge_balance_negative_transport_prefixfirstvalue = (dst_negative_transport_prefixfirst) + ge_balance_positive_transport_prefixfirstvalue))))))))) -> (exists dst_positive_code_transport_prefixsecond dst_positive_scale_transport_prefixsecond dst_negative_code_transport_prefixsecond dst_negative_scale_transport_prefixsecond dst_positive_transport_prefixsecond dst_negative_transport_prefixsecond. (((G) = (((((dst_positive_code_transport_prefixsecond) + (dst_positive_scale_transport_prefixsecond)) * S ((dst_positive_code_transport_prefixsecond) + (dst_positive_scale_transport_prefixsecond)) + ((dst_positive_scale_transport_prefixsecond) + (dst_positive_scale_transport_prefixsecond))) + (((dst_negative_code_transport_prefixsecond) + (dst_negative_scale_transport_prefixsecond)) * S ((dst_negative_code_transport_prefixsecond) + (dst_negative_scale_transport_prefixsecond)) + ((dst_negative_scale_transport_prefixsecond) + (dst_negative_scale_transport_prefixsecond)))) * S ((((dst_positive_code_transport_prefixsecond) + (dst_positive_scale_transport_prefixsecond)) * S ((dst_positive_code_transport_prefixsecond) + (dst_positive_scale_transport_prefixsecond)) + ((dst_positive_scale_transport_prefixsecond) + (dst_positive_scale_transport_prefixsecond))) + (((dst_negative_code_transport_prefixsecond) + (dst_negative_scale_transport_prefixsecond)) * S ((dst_negative_code_transport_prefixsecond) + (dst_negative_scale_transport_prefixsecond)) + ((dst_negative_scale_transport_prefixsecond) + (dst_negative_scale_transport_prefixsecond)))) + ((((dst_negative_code_transport_prefixsecond) + (dst_negative_scale_transport_prefixsecond)) * S ((dst_negative_code_transport_prefixsecond) + (dst_negative_scale_transport_prefixsecond)) + ((dst_negative_scale_transport_prefixsecond) + (dst_negative_scale_transport_prefixsecond))) + (((dst_negative_code_transport_prefixsecond) + (dst_negative_scale_transport_prefixsecond)) * S ((dst_negative_code_transport_prefixsecond) + (dst_negative_scale_transport_prefixsecond)) + ((dst_negative_scale_transport_prefixsecond) + (dst_negative_scale_transport_prefixsecond)))))) /\ (((((exists ff_h_pvs_transport_prefixsecondpositive. ff_h_pvs_transport_prefixsecondpositive + S (dst_positive_transport_prefixsecond) = S ((S (dst_index_transport_prefix)) * dst_positive_scale_transport_prefixsecond)) /\ exists ff_q_pvs_transport_prefixsecondpositive. dst_positive_code_transport_prefixsecond = ff_q_pvs_transport_prefixsecondpositive * S ((S (dst_index_transport_prefix)) * dst_positive_scale_transport_prefixsecond) + (dst_positive_transport_prefixsecond))) /\ (((((exists ff_h_pvs_transport_prefixsecondnegative. ff_h_pvs_transport_prefixsecondnegative + S (dst_negative_transport_prefixsecond) = S ((S (dst_index_transport_prefix)) * dst_negative_scale_transport_prefixsecond)) /\ exists ff_q_pvs_transport_prefixsecondnegative. dst_negative_code_transport_prefixsecond = ff_q_pvs_transport_prefixsecondnegative * S ((S (dst_index_transport_prefix)) * dst_negative_scale_transport_prefixsecond) + (dst_negative_transport_prefixsecond))) /\ (exists ge_balance_positive_transport_prefixsecondvalue ge_balance_negative_transport_prefixsecondvalue. (((((dst_second_transport_prefix) = 2 * (ge_balance_positive_transport_prefixsecondvalue) /\ (ge_balance_negative_transport_prefixsecondvalue) = 0) \/ exists ge_signed_half_transport_prefixsecondvaluedecode. (((dst_second_transport_prefix) = 2 * ge_signed_half_transport_prefixsecondvaluedecode + 1 /\ (ge_balance_positive_transport_prefixsecondvalue) = 0) /\ (ge_balance_negative_transport_prefixsecondvalue) = S ge_signed_half_transport_prefixsecondvaluedecode))) /\ ((dst_positive_transport_prefixsecond) + ge_balance_negative_transport_prefixsecondvalue = (dst_negative_transport_prefixsecond) + ge_balance_positive_transport_prefixsecondvalue))))))))) -> dst_first_transport_prefix = dst_second_transport_prefix) -> (exists pvs_le_gap_transport_domain. pvs_le_gap_transport_domain + (i) = (N)) -> (exists pvs_gap_transport_index. pvs_gap_transport_index + S (i) = (l)) -> (exists dst_positive_code_transport_source dst_positive_scale_transport_source dst_negative_code_transport_source dst_negative_scale_transport_source dst_positive_transport_source dst_negative_transport_source. (((F) = (((((dst_positive_code_transport_source) + (dst_positive_scale_transport_source)) * S ((dst_positive_code_transport_source) + (dst_positive_scale_transport_source)) + ((dst_positive_scale_transport_source) + (dst_positive_scale_transport_source))) + (((dst_negative_code_transport_source) + (dst_negative_scale_transport_source)) * S ((dst_negative_code_transport_source) + (dst_negative_scale_transport_source)) + ((dst_negative_scale_transport_source) + (dst_negative_scale_transport_source)))) * S ((((dst_positive_code_transport_source) + (dst_positive_scale_transport_source)) * S ((dst_positive_code_transport_source) + (dst_positive_scale_transport_source)) + ((dst_positive_scale_transport_source) + (dst_positive_scale_transport_source))) + (((dst_negative_code_transport_source) + (dst_negative_scale_transport_source)) * S ((dst_negative_code_transport_source) + (dst_negative_scale_transport_source)) + ((dst_negative_scale_transport_source) + (dst_negative_scale_transport_source)))) + ((((dst_negative_code_transport_source) + (dst_negative_scale_transport_source)) * S ((dst_negative_code_transport_source) + (dst_negative_scale_transport_source)) + ((dst_negative_scale_transport_source) + (dst_negative_scale_transport_source))) + (((dst_negative_code_transport_source) + (dst_negative_scale_transport_source)) * S ((dst_negative_code_transport_source) + (dst_negative_scale_transport_source)) + ((dst_negative_scale_transport_source) + (dst_negative_scale_transport_source)))))) /\ (((((exists ff_h_pvs_transport_sourcepositive. ff_h_pvs_transport_sourcepositive + S (dst_positive_transport_source) = S ((S (i)) * dst_positive_scale_transport_source)) /\ exists ff_q_pvs_transport_sourcepositive. dst_positive_code_transport_source = ff_q_pvs_transport_sourcepositive * S ((S (i)) * dst_positive_scale_transport_source) + (dst_positive_transport_source))) /\ (((((exists ff_h_pvs_transport_sourcenegative. ff_h_pvs_transport_sourcenegative + S (dst_negative_transport_source) = S ((S (i)) * dst_negative_scale_transport_source)) /\ exists ff_q_pvs_transport_sourcenegative. dst_negative_code_transport_source = ff_q_pvs_transport_sourcenegative * S ((S (i)) * dst_negative_scale_transport_source) + (dst_negative_transport_source))) /\ (exists ge_balance_positive_transport_sourcevalue ge_balance_negative_transport_sourcevalue. (((((z) = 2 * (ge_balance_positive_transport_sourcevalue) /\ (ge_balance_negative_transport_sourcevalue) = 0) \/ exists ge_signed_half_transport_sourcevaluedecode. (((z) = 2 * ge_signed_half_transport_sourcevaluedecode + 1 /\ (ge_balance_positive_transport_sourcevalue) = 0) /\ (ge_balance_negative_transport_sourcevalue) = S ge_signed_half_transport_sourcevaluedecode))) /\ ((dst_positive_transport_source) + ge_balance_negative_transport_sourcevalue = (dst_negative_transport_source) + ge_balance_positive_transport_sourcevalue))))))))) -> (exists dst_positive_code_transport_target dst_positive_scale_transport_target dst_negative_code_transport_target dst_negative_scale_transport_target dst_positive_transport_target dst_negative_transport_target. (((G) = (((((dst_positive_code_transport_target) + (dst_positive_scale_transport_target)) * S ((dst_positive_code_transport_target) + (dst_positive_scale_transport_target)) + ((dst_positive_scale_transport_target) + (dst_positive_scale_transport_target))) + (((dst_negative_code_transport_target) + (dst_negative_scale_transport_target)) * S ((dst_negative_code_transport_target) + (dst_negative_scale_transport_target)) + ((dst_negative_scale_transport_target) + (dst_negative_scale_transport_target)))) * S ((((dst_positive_code_transport_target) + (dst_positive_scale_transport_target)) * S ((dst_positive_code_transport_target) + (dst_positive_scale_transport_target)) + ((dst_positive_scale_transport_target) + (dst_positive_scale_transport_target))) + (((dst_negative_code_transport_target) + (dst_negative_scale_transport_target)) * S ((dst_negative_code_transport_target) + (dst_negative_scale_transport_target)) + ((dst_negative_scale_transport_target) + (dst_negative_scale_transport_target)))) + ((((dst_negative_code_transport_target) + (dst_negative_scale_transport_target)) * S ((dst_negative_code_transport_target) + (dst_negative_scale_transport_target)) + ((dst_negative_scale_transport_target) + (dst_negative_scale_transport_target))) + (((dst_negative_code_transport_target) + (dst_negative_scale_transport_target)) * S ((dst_negative_code_transport_target) + (dst_negative_scale_transport_target)) + ((dst_negative_scale_transport_target) + (dst_negative_scale_transport_target)))))) /\ (((((exists ff_h_pvs_transport_targetpositive. ff_h_pvs_transport_targetpositive + S (dst_positive_transport_target) = S ((S (i)) * dst_positive_scale_transport_target)) /\ exists ff_q_pvs_transport_targetpositive. dst_positive_code_transport_target = ff_q_pvs_transport_targetpositive * S ((S (i)) * dst_positive_scale_transport_target) + (dst_positive_transport_target))) /\ (((((exists ff_h_pvs_transport_targetnegative. ff_h_pvs_transport_targetnegative + S (dst_negative_transport_target) = S ((S (i)) * dst_negative_scale_transport_target)) /\ exists ff_q_pvs_transport_targetnegative. dst_negative_code_transport_target = ff_q_pvs_transport_targetnegative * S ((S (i)) * dst_negative_scale_transport_target) + (dst_negative_transport_target))) /\ (exists ge_balance_positive_transport_targetvalue ge_balance_negative_transport_targetvalue. (((((z) = 2 * (ge_balance_positive_transport_targetvalue) /\ (ge_balance_negative_transport_targetvalue) = 0) \/ exists ge_signed_half_transport_targetvaluedecode. (((z) = 2 * ge_signed_half_transport_targetvaluedecode + 1 /\ (ge_balance_positive_transport_targetvalue) = 0) /\ (ge_balance_negative_transport_targetvalue) = S ge_signed_half_transport_targetvaluedecode))) /\ ((dst_positive_transport_target) + ge_balance_negative_transport_targetvalue = (dst_negative_transport_target) + ge_balance_positive_transport_targetvalue)))))))))

Constructive proof overview

Generated structural guide

Actual finite-domain lookup plus prefix equality transports a signed value; no table-component equality or unspecified choice is used.

The unchanged tactic script uses 1 declared prerequisite and contains 31 exact native proof lines.

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

Proof neighborhood

Direct dependencies

divisor_signed_table_lookup Alpha theorem; checked-use authorized

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

31 script commands · 7 reading checkpoints · 2 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.

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–10

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

  1. L1
    intro N
  2. L2
    intro F
  3. L3
    intro G
  4. L4
    intro l
  5. L5
    intro i
  6. L6
    intro z
  7. L7
    intro ht
  8. L8
    intro he
  9. L9
    intro hiN
  10. L10
    intro hil
02Fix variables and assumptionsL11–11

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

  1. L11
    intro hz
03Establish hbL12–18

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table lookup.

  1. L12
    have hb : ∃ b. ArithAt(G,i,b)Definitions: ArithAt
  2. L13
    specialize divisor_signed_table_lookup (N)
  3. L14
    specialize divisor_signed_table_lookup (G)
  4. L15
    specialize divisor_signed_table_lookup (i)
  5. L16
    apply divisor_signed_table_lookup
  6. L17
    exact ht
  7. L18
    exact hiN
04Separate the logical casesL19–19

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

  1. L19
    cases hb
05Establish heqL20–29

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply he.

  1. L20
    have heq : x = z
  2. L21
    symm
  3. L22
    specialize he (i)
  4. L23
    specialize he (z)
  5. L24
    specialize he (x)
  6. L25
    apply he
  7. L26
    exact hil
  8. L27
    exact hz
  9. L28
    exact hb_witness
  10. L29
    rewrite heq at hb_witness
06Calculate and transport equalitiesL30–30

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

  1. L30
    rewrite heq at hb_witness
07Use earlier factsL31–31

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

  1. L31
    exact hb_witness

Library-wide reading audit

Original exact command ledger · 31 lines
  1. 0001intro N
  2. 0002intro F
  3. 0003intro G
  4. 0004intro l
  5. 0005intro i
  6. 0006intro z
  7. 0007intro ht
  8. 0008intro he
  9. 0009intro hiN
  10. 0010intro hil
  11. 0011intro hz
  12. 0012have hb : exists b. (exists dst_positive_code_transport_lookup dst_positive_scale_transport_lookup dst_negative_code_transport_lookup dst_negative_scale_transport_lookup dst_positive_transport_lookup dst_negative_transport_lookup. (((G) = (((((dst_positive_code_transport_lookup) + (dst_positive_scale_transport_lookup)) * S ((dst_positive_code_transport_lookup) + (dst_positive_scale_transport_lookup)) + ((dst_positive_scale_transport_lookup) + (dst_positive_scale_transport_lookup))) + (((dst_negative_code_transport_lookup) + (dst_negative_scale_transport_lookup)) * S ((dst_negative_code_transport_lookup) + (dst_negative_scale_transport_lookup)) + ((dst_negative_scale_transport_lookup) + (dst_negative_scale_transport_lookup)))) * S ((((dst_positive_code_transport_lookup) + (dst_positive_scale_transport_lookup)) * S ((dst_positive_code_transport_lookup) + (dst_positive_scale_transport_lookup)) + ((dst_positive_scale_transport_lookup) + (dst_positive_scale_transport_lookup))) + (((dst_negative_code_transport_lookup) + (dst_negative_scale_transport_lookup)) * S ((dst_negative_code_transport_lookup) + (dst_negative_scale_transport_lookup)) + ((dst_negative_scale_transport_lookup) + (dst_negative_scale_transport_lookup)))) + ((((dst_negative_code_transport_lookup) + (dst_negative_scale_transport_lookup)) * S ((dst_negative_code_transport_lookup) + (dst_negative_scale_transport_lookup)) + ((dst_negative_scale_transport_lookup) + (dst_negative_scale_transport_lookup))) + (((dst_negative_code_transport_lookup) + (dst_negative_scale_transport_lookup)) * S ((dst_negative_code_transport_lookup) + (dst_negative_scale_transport_lookup)) + ((dst_negative_scale_transport_lookup) + (dst_negative_scale_transport_lookup)))))) /\ (((((exists ff_h_pvs_transport_lookuppositive. ff_h_pvs_transport_lookuppositive + S (dst_positive_transport_lookup) = S ((S (i)) * dst_positive_scale_transport_lookup)) /\ exists ff_q_pvs_transport_lookuppositive. dst_positive_code_transport_lookup = ff_q_pvs_transport_lookuppositive * S ((S (i)) * dst_positive_scale_transport_lookup) + (dst_positive_transport_lookup))) /\ (((((exists ff_h_pvs_transport_lookupnegative. ff_h_pvs_transport_lookupnegative + S (dst_negative_transport_lookup) = S ((S (i)) * dst_negative_scale_transport_lookup)) /\ exists ff_q_pvs_transport_lookupnegative. dst_negative_code_transport_lookup = ff_q_pvs_transport_lookupnegative * S ((S (i)) * dst_negative_scale_transport_lookup) + (dst_negative_transport_lookup))) /\ (exists ge_balance_positive_transport_lookupvalue ge_balance_negative_transport_lookupvalue. (((((b) = 2 * (ge_balance_positive_transport_lookupvalue) /\ (ge_balance_negative_transport_lookupvalue) = 0) \/ exists ge_signed_half_transport_lookupvaluedecode. (((b) = 2 * ge_signed_half_transport_lookupvaluedecode + 1 /\ (ge_balance_positive_transport_lookupvalue) = 0) /\ (ge_balance_negative_transport_lookupvalue) = S ge_signed_half_transport_lookupvaluedecode))) /\ ((dst_positive_transport_lookup) + ge_balance_negative_transport_lookupvalue = (dst_negative_transport_lookup) + ge_balance_positive_transport_lookupvalue)))))))))
  13. 0013specialize divisor_signed_table_lookup (N)
  14. 0014specialize divisor_signed_table_lookup (G)
  15. 0015specialize divisor_signed_table_lookup (i)
  16. 0016apply divisor_signed_table_lookup
  17. 0017exact ht
  18. 0018exact hiN
  19. 0019cases hb
  20. 0020have heq : x = z
  21. 0021symm
  22. 0022specialize he (i)
  23. 0023specialize he (z)
  24. 0024specialize he (x)
  25. 0025apply he
  26. 0026exact hil
  27. 0027exact hz
  28. 0028exact hb_witness
  29. 0029rewrite heq at hb_witness
  30. 0030rewrite heq at hb_witness
  31. 0031exact hb_witness