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 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 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.
04Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
cases hb
05Establish heqL20–29
06Calculate and transport equalitiesL30–30
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L30
rewrite heq at hb_witness
07Use earlier factsL31–31
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
exact hb_witness
Original exact command ledger · 31 lines
- 0001
intro N - 0002
intro F - 0003
intro G - 0004
intro l - 0005
intro i - 0006
intro z - 0007
intro ht - 0008
intro he - 0009
intro hiN - 0010
intro hil - 0011
intro hz - 0012
have 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))))))))) - 0013
specialize divisor_signed_table_lookup (N) - 0014
specialize divisor_signed_table_lookup (G) - 0015
specialize divisor_signed_table_lookup (i) - 0016
apply divisor_signed_table_lookup - 0017
exact ht - 0018
exact hiN - 0019
cases hb - 0020
have heq : x = z - 0021
symm - 0022
specialize he (i) - 0023
specialize he (z) - 0024
specialize he (x) - 0025
apply he - 0026
exact hil - 0027
exact hz - 0028
exact hb_witness - 0029
rewrite heq at hb_witness - 0030
rewrite heq at hb_witness - 0031
exact hb_witness