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 E n d z. (((exists dst_positive_code_before_deltatable dst_positive_scale_before_deltatable dst_negative_code_before_deltatable dst_negative_scale_before_deltatable. (((E) = (((((dst_positive_code_before_deltatable) + (dst_positive_scale_before_deltatable)) * S ((dst_positive_code_before_deltatable) + (dst_positive_scale_before_deltatable)) + ((dst_positive_scale_before_deltatable) + (dst_positive_scale_before_deltatable))) + (((dst_negative_code_before_deltatable) + (dst_negative_scale_before_deltatable)) * S ((dst_negative_code_before_deltatable) + (dst_negative_scale_before_deltatable)) + ((dst_negative_scale_before_deltatable) + (dst_negative_scale_before_deltatable)))) * S ((((dst_positive_code_before_deltatable) + (dst_positive_scale_before_deltatable)) * S ((dst_positive_code_before_deltatable) + (dst_positive_scale_before_deltatable)) + ((dst_positive_scale_before_deltatable) + (dst_positive_scale_before_deltatable))) + (((dst_negative_code_before_deltatable) + (dst_negative_scale_before_deltatable)) * S ((dst_negative_code_before_deltatable) + (dst_negative_scale_before_deltatable)) + ((dst_negative_scale_before_deltatable) + (dst_negative_scale_before_deltatable)))) + ((((dst_negative_code_before_deltatable) + (dst_negative_scale_before_deltatable)) * S ((dst_negative_code_before_deltatable) + (dst_negative_scale_before_deltatable)) + ((dst_negative_scale_before_deltatable) + (dst_negative_scale_before_deltatable))) + (((dst_negative_code_before_deltatable) + (dst_negative_scale_before_deltatable)) * S ((dst_negative_code_before_deltatable) + (dst_negative_scale_before_deltatable)) + ((dst_negative_scale_before_deltatable) + (dst_negative_scale_before_deltatable)))))) /\ (forall dst_index_before_deltatable. (exists pvs_le_gap_before_deltatabledomain. pvs_le_gap_before_deltatabledomain + (dst_index_before_deltatable) = (N)) -> exists dst_positive_before_deltatable dst_negative_before_deltatable dst_value_before_deltatable. ((((exists ff_h_pvs_before_deltatableentrypositive. ff_h_pvs_before_deltatableentrypositive + S (dst_positive_before_deltatable) = S ((S (dst_index_before_deltatable)) * dst_positive_scale_before_deltatable)) /\ exists ff_q_pvs_before_deltatableentrypositive. dst_positive_code_before_deltatable = ff_q_pvs_before_deltatableentrypositive * S ((S (dst_index_before_deltatable)) * dst_positive_scale_before_deltatable) + (dst_positive_before_deltatable))) /\ (((((exists ff_h_pvs_before_deltatableentrynegative. ff_h_pvs_before_deltatableentrynegative + S (dst_negative_before_deltatable) = S ((S (dst_index_before_deltatable)) * dst_negative_scale_before_deltatable)) /\ exists ff_q_pvs_before_deltatableentrynegative. dst_negative_code_before_deltatable = ff_q_pvs_before_deltatableentrynegative * S ((S (dst_index_before_deltatable)) * dst_negative_scale_before_deltatable) + (dst_negative_before_deltatable))) /\ (exists ge_balance_positive_before_deltatableentryvalue ge_balance_negative_before_deltatableentryvalue. (((((dst_value_before_deltatable) = 2 * (ge_balance_positive_before_deltatableentryvalue) /\ (ge_balance_negative_before_deltatableentryvalue) = 0) \/ exists ge_signed_half_before_deltatableentryvaluedecode. (((dst_value_before_deltatable) = 2 * ge_signed_half_before_deltatableentryvaluedecode + 1 /\ (ge_balance_positive_before_deltatableentryvalue) = 0) /\ (ge_balance_negative_before_deltatableentryvalue) = S ge_signed_half_before_deltatableentryvaluedecode))) /\ ((dst_positive_before_deltatable) + ge_balance_negative_before_deltatableentryvalue = (dst_negative_before_deltatable) + ge_balance_positive_before_deltatableentryvalue))))))))) /\ (forall du_index_before_delta du_value_before_delta. ~(du_index_before_delta=0) -> (exists pvs_le_gap_before_deltabound. pvs_le_gap_before_deltabound + (du_index_before_delta) = (N)) -> (exists dst_positive_code_before_deltaentry dst_positive_scale_before_deltaentry dst_negative_code_before_deltaentry dst_negative_scale_before_deltaentry dst_positive_before_deltaentry dst_negative_before_deltaentry. (((E) = (((((dst_positive_code_before_deltaentry) + (dst_positive_scale_before_deltaentry)) * S ((dst_positive_code_before_deltaentry) + (dst_positive_scale_before_deltaentry)) + ((dst_positive_scale_before_deltaentry) + (dst_positive_scale_before_deltaentry))) + (((dst_negative_code_before_deltaentry) + (dst_negative_scale_before_deltaentry)) * S ((dst_negative_code_before_deltaentry) + (dst_negative_scale_before_deltaentry)) + ((dst_negative_scale_before_deltaentry) + (dst_negative_scale_before_deltaentry)))) * S ((((dst_positive_code_before_deltaentry) + (dst_positive_scale_before_deltaentry)) * S ((dst_positive_code_before_deltaentry) + (dst_positive_scale_before_deltaentry)) + ((dst_positive_scale_before_deltaentry) + (dst_positive_scale_before_deltaentry))) + (((dst_negative_code_before_deltaentry) + (dst_negative_scale_before_deltaentry)) * S ((dst_negative_code_before_deltaentry) + (dst_negative_scale_before_deltaentry)) + ((dst_negative_scale_before_deltaentry) + (dst_negative_scale_before_deltaentry)))) + ((((dst_negative_code_before_deltaentry) + (dst_negative_scale_before_deltaentry)) * S ((dst_negative_code_before_deltaentry) + (dst_negative_scale_before_deltaentry)) + ((dst_negative_scale_before_deltaentry) + (dst_negative_scale_before_deltaentry))) + (((dst_negative_code_before_deltaentry) + (dst_negative_scale_before_deltaentry)) * S ((dst_negative_code_before_deltaentry) + (dst_negative_scale_before_deltaentry)) + ((dst_negative_scale_before_deltaentry) + (dst_negative_scale_before_deltaentry)))))) /\ (((((exists ff_h_pvs_before_deltaentrypositive. ff_h_pvs_before_deltaentrypositive + S (dst_positive_before_deltaentry) = S ((S (du_index_before_delta)) * dst_positive_scale_before_deltaentry)) /\ exists ff_q_pvs_before_deltaentrypositive. dst_positive_code_before_deltaentry = ff_q_pvs_before_deltaentrypositive * S ((S (du_index_before_delta)) * dst_positive_scale_before_deltaentry) + (dst_positive_before_deltaentry))) /\ (((((exists ff_h_pvs_before_deltaentrynegative. ff_h_pvs_before_deltaentrynegative + S (dst_negative_before_deltaentry) = S ((S (du_index_before_delta)) * dst_negative_scale_before_deltaentry)) /\ exists ff_q_pvs_before_deltaentrynegative. dst_negative_code_before_deltaentry = ff_q_pvs_before_deltaentrynegative * S ((S (du_index_before_delta)) * dst_negative_scale_before_deltaentry) + (dst_negative_before_deltaentry))) /\ (exists ge_balance_positive_before_deltaentryvalue ge_balance_negative_before_deltaentryvalue. (((((du_value_before_delta) = 2 * (ge_balance_positive_before_deltaentryvalue) /\ (ge_balance_negative_before_deltaentryvalue) = 0) \/ exists ge_signed_half_before_deltaentryvaluedecode. (((du_value_before_delta) = 2 * ge_signed_half_before_deltaentryvaluedecode + 1 /\ (ge_balance_positive_before_deltaentryvalue) = 0) /\ (ge_balance_negative_before_deltaentryvalue) = S ge_signed_half_before_deltaentryvaluedecode))) /\ ((dst_positive_before_deltaentry) + ge_balance_negative_before_deltaentryvalue = (dst_negative_before_deltaentry) + ge_balance_positive_before_deltaentryvalue))))))))) -> ((((du_index_before_delta)=1 -> (du_value_before_delta)=2) /\ (~((du_index_before_delta)=1) -> (du_value_before_delta)=0)))))) -> ~(n=0) -> (exists pvs_le_gap_before_domain. pvs_le_gap_before_domain + (n) = (N)) -> (exists pvs_gap_before_index. pvs_gap_before_index + S (d) = (n)) -> ((((~((d)=0)) /\ (exists dc_quotient_before_entry dc_left_before_entry dc_right_before_entry. (((n)=(d)*dc_quotient_before_entry) /\ (((exists dst_positive_code_before_entryleft dst_positive_scale_before_entryleft dst_negative_code_before_entryleft dst_negative_scale_before_entryleft dst_positive_before_entryleft dst_negative_before_entryleft. (((F) = (((((dst_positive_code_before_entryleft) + (dst_positive_scale_before_entryleft)) * S ((dst_positive_code_before_entryleft) + (dst_positive_scale_before_entryleft)) + ((dst_positive_scale_before_entryleft) + (dst_positive_scale_before_entryleft))) + (((dst_negative_code_before_entryleft) + (dst_negative_scale_before_entryleft)) * S ((dst_negative_code_before_entryleft) + (dst_negative_scale_before_entryleft)) + ((dst_negative_scale_before_entryleft) + (dst_negative_scale_before_entryleft)))) * S ((((dst_positive_code_before_entryleft) + (dst_positive_scale_before_entryleft)) * S ((dst_positive_code_before_entryleft) + (dst_positive_scale_before_entryleft)) + ((dst_positive_scale_before_entryleft) + (dst_positive_scale_before_entryleft))) + (((dst_negative_code_before_entryleft) + (dst_negative_scale_before_entryleft)) * S ((dst_negative_code_before_entryleft) + (dst_negative_scale_before_entryleft)) + ((dst_negative_scale_before_entryleft) + (dst_negative_scale_before_entryleft)))) + ((((dst_negative_code_before_entryleft) + (dst_negative_scale_before_entryleft)) * S ((dst_negative_code_before_entryleft) + (dst_negative_scale_before_entryleft)) + ((dst_negative_scale_before_entryleft) + (dst_negative_scale_before_entryleft))) + (((dst_negative_code_before_entryleft) + (dst_negative_scale_before_entryleft)) * S ((dst_negative_code_before_entryleft) + (dst_negative_scale_before_entryleft)) + ((dst_negative_scale_before_entryleft) + (dst_negative_scale_before_entryleft)))))) /\ (((((exists ff_h_pvs_before_entryleftpositive. ff_h_pvs_before_entryleftpositive + S (dst_positive_before_entryleft) = S ((S (d)) * dst_positive_scale_before_entryleft)) /\ exists ff_q_pvs_before_entryleftpositive. dst_positive_code_before_entryleft = ff_q_pvs_before_entryleftpositive * S ((S (d)) * dst_positive_scale_before_entryleft) + (dst_positive_before_entryleft))) /\ (((((exists ff_h_pvs_before_entryleftnegative. ff_h_pvs_before_entryleftnegative + S (dst_negative_before_entryleft) = S ((S (d)) * dst_negative_scale_before_entryleft)) /\ exists ff_q_pvs_before_entryleftnegative. dst_negative_code_before_entryleft = ff_q_pvs_before_entryleftnegative * S ((S (d)) * dst_negative_scale_before_entryleft) + (dst_negative_before_entryleft))) /\ (exists ge_balance_positive_before_entryleftvalue ge_balance_negative_before_entryleftvalue. (((((dc_left_before_entry) = 2 * (ge_balance_positive_before_entryleftvalue) /\ (ge_balance_negative_before_entryleftvalue) = 0) \/ exists ge_signed_half_before_entryleftvaluedecode. (((dc_left_before_entry) = 2 * ge_signed_half_before_entryleftvaluedecode + 1 /\ (ge_balance_positive_before_entryleftvalue) = 0) /\ (ge_balance_negative_before_entryleftvalue) = S ge_signed_half_before_entryleftvaluedecode))) /\ ((dst_positive_before_entryleft) + ge_balance_negative_before_entryleftvalue = (dst_negative_before_entryleft) + ge_balance_positive_before_entryleftvalue))))))))) /\ (((exists dst_positive_code_before_entryright dst_positive_scale_before_entryright dst_negative_code_before_entryright dst_negative_scale_before_entryright dst_positive_before_entryright dst_negative_before_entryright. (((E) = (((((dst_positive_code_before_entryright) + (dst_positive_scale_before_entryright)) * S ((dst_positive_code_before_entryright) + (dst_positive_scale_before_entryright)) + ((dst_positive_scale_before_entryright) + (dst_positive_scale_before_entryright))) + (((dst_negative_code_before_entryright) + (dst_negative_scale_before_entryright)) * S ((dst_negative_code_before_entryright) + (dst_negative_scale_before_entryright)) + ((dst_negative_scale_before_entryright) + (dst_negative_scale_before_entryright)))) * S ((((dst_positive_code_before_entryright) + (dst_positive_scale_before_entryright)) * S ((dst_positive_code_before_entryright) + (dst_positive_scale_before_entryright)) + ((dst_positive_scale_before_entryright) + (dst_positive_scale_before_entryright))) + (((dst_negative_code_before_entryright) + (dst_negative_scale_before_entryright)) * S ((dst_negative_code_before_entryright) + (dst_negative_scale_before_entryright)) + ((dst_negative_scale_before_entryright) + (dst_negative_scale_before_entryright)))) + ((((dst_negative_code_before_entryright) + (dst_negative_scale_before_entryright)) * S ((dst_negative_code_before_entryright) + (dst_negative_scale_before_entryright)) + ((dst_negative_scale_before_entryright) + (dst_negative_scale_before_entryright))) + (((dst_negative_code_before_entryright) + (dst_negative_scale_before_entryright)) * S ((dst_negative_code_before_entryright) + (dst_negative_scale_before_entryright)) + ((dst_negative_scale_before_entryright) + (dst_negative_scale_before_entryright)))))) /\ (((((exists ff_h_pvs_before_entryrightpositive. ff_h_pvs_before_entryrightpositive + S (dst_positive_before_entryright) = S ((S (dc_quotient_before_entry)) * dst_positive_scale_before_entryright)) /\ exists ff_q_pvs_before_entryrightpositive. dst_positive_code_before_entryright = ff_q_pvs_before_entryrightpositive * S ((S (dc_quotient_before_entry)) * dst_positive_scale_before_entryright) + (dst_positive_before_entryright))) /\ (((((exists ff_h_pvs_before_entryrightnegative. ff_h_pvs_before_entryrightnegative + S (dst_negative_before_entryright) = S ((S (dc_quotient_before_entry)) * dst_negative_scale_before_entryright)) /\ exists ff_q_pvs_before_entryrightnegative. dst_negative_code_before_entryright = ff_q_pvs_before_entryrightnegative * S ((S (dc_quotient_before_entry)) * dst_negative_scale_before_entryright) + (dst_negative_before_entryright))) /\ (exists ge_balance_positive_before_entryrightvalue ge_balance_negative_before_entryrightvalue. (((((dc_right_before_entry) = 2 * (ge_balance_positive_before_entryrightvalue) /\ (ge_balance_negative_before_entryrightvalue) = 0) \/ exists ge_signed_half_before_entryrightvaluedecode. (((dc_right_before_entry) = 2 * ge_signed_half_before_entryrightvaluedecode + 1 /\ (ge_balance_positive_before_entryrightvalue) = 0) /\ (ge_balance_negative_before_entryrightvalue) = S ge_signed_half_before_entryrightvaluedecode))) /\ ((dst_positive_before_entryright) + ge_balance_negative_before_entryrightvalue = (dst_negative_before_entryright) + ge_balance_positive_before_entryrightvalue))))))))) /\ (exists sto_ap_before_entryproduct sto_an_before_entryproduct sto_bp_before_entryproduct sto_bn_before_entryproduct sto_cp_before_entryproduct sto_cn_before_entryproduct. (((((dc_left_before_entry) = 2 * (sto_ap_before_entryproduct) /\ (sto_an_before_entryproduct) = 0) \/ exists ge_signed_half_before_entryproductleft. (((dc_left_before_entry) = 2 * ge_signed_half_before_entryproductleft + 1 /\ (sto_ap_before_entryproduct) = 0) /\ (sto_an_before_entryproduct) = S ge_signed_half_before_entryproductleft))) /\ ((((((dc_right_before_entry) = 2 * (sto_bp_before_entryproduct) /\ (sto_bn_before_entryproduct) = 0) \/ exists ge_signed_half_before_entryproductright. (((dc_right_before_entry) = 2 * ge_signed_half_before_entryproductright + 1 /\ (sto_bp_before_entryproduct) = 0) /\ (sto_bn_before_entryproduct) = S ge_signed_half_before_entryproductright))) /\ ((((((z) = 2 * (sto_cp_before_entryproduct) /\ (sto_cn_before_entryproduct) = 0) \/ exists ge_signed_half_before_entryproductoutput. (((z) = 2 * ge_signed_half_before_entryproductoutput + 1 /\ (sto_cp_before_entryproduct) = 0) /\ (sto_cn_before_entryproduct) = S ge_signed_half_before_entryproductoutput))) /\ ((sto_ap_before_entryproduct * sto_bp_before_entryproduct + sto_an_before_entryproduct * sto_bn_before_entryproduct) + sto_cn_before_entryproduct = (sto_ap_before_entryproduct * sto_bn_before_entryproduct + sto_an_before_entryproduct * sto_bp_before_entryproduct) + sto_cp_before_entryproduct))))))))))))))) \/ ((((d)=0 \/ ~(exists pvs_factor_before_entrynondivisor. (n) = (d) * pvs_factor_before_entrynondivisor)) /\ ((z)=0)))) -> z=0Constructive proof overview
Generated structural guide
Every actual summand before n vanishes: a real complementary quotient is positive and cannot be one, while omitted indices are already zero.
The unchanged tactic script uses 10 declared prerequisites and contains 81 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
factor_nonzero_right Alpha theorem; checked-use authorized le_trans Stable theorem; checked-use authorized divisor_le_nonzero Stable theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized mul_one Stable theorem; checked-use authorized lt_not_le Stable theorem; checked-use authorized le_refl Stable theorem; checked-use authorized DU0003 dirichlet_kronecker_delta_table_other_value signed_mul_functional Alpha theorem; checked-use authorized signed_mul_zero_right 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.
Named ingredients (1)
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–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
04Establish hqpositiveL20–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor nonzero right.
05Establish hqboundL29–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
06Construct an explicit witnessL38–38
Supply the displayed value, then prove that it has the required property.
- L38
exists d
07Calculate and transport equalitiesL39–39
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L39
trans (d)*(x)
08Use earlier factsL40–42
09Establish hqnotoneL43–44
10Establish heqL45–54
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul one.
11Use earlier factsL55–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L55
exact hbefore
12Calculate and transport equalitiesL56–56
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L56
rewrite heq
13Use earlier factsL57–58
14Establish hzeroL59–68
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply dirichlet kronecker delta table other value.
- L59
have hzero : x2=0 - L60
specialize dirichlet_kronecker_delta_table_other_value (N) - L61
specialize dirichlet_kronecker_delta_table_other_value (E) - L62
specialize dirichlet_kronecker_delta_table_other_value (x) - L63
specialize dirichlet_kronecker_delta_table_other_value (x2) - L64
apply dirichlet_kronecker_delta_table_other_value - L65
exact hd - L66
exact hqpositive - L67
exact hqnotone - L68
exact hqbound
15Use earlier factsL69–69
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L69
exact he_left_right_witness_witness_witness_right_right_left
16Calculate and transport equalitiesL70–71
17Use earlier factsL72–79
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L72
specialize signed_mul_functional (x1) - L73
specialize signed_mul_functional (0) - L74
specialize signed_mul_functional (z) - L75
specialize signed_mul_functional (0) - L76
apply signed_mul_functional - L77
exact he_left_right_witness_witness_witness_right_right_right - L78
specialize signed_mul_zero_right (x1) - L79
apply signed_mul_zero_right
18Separate the logical casesL80–80
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L80
cases he_right
19Use earlier factsL81–81
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L81
exact he_right_right
Original exact command ledger · 81 lines
- 0001
intro N - 0002
intro F - 0003
intro E - 0004
intro n - 0005
intro d - 0006
intro z - 0007
intro hd - 0008
intro hn - 0009
intro hb - 0010
intro hbefore - 0011
intro he - 0012
cases he - 0013
cases he_left - 0014
cases he_left_right - 0015
cases he_left_right_witness - 0016
cases he_left_right_witness_witness - 0017
cases he_left_right_witness_witness_witness - 0018
cases he_left_right_witness_witness_witness_right - 0019
cases he_left_right_witness_witness_witness_right_right - 0020
have hqpositive : ~(x=0) - 0021
intro hqzero - 0022
specialize factor_nonzero_right (n) - 0023
specialize factor_nonzero_right (d) - 0024
specialize factor_nonzero_right (x) - 0025
apply factor_nonzero_right - 0026
exact hn - 0027
exact he_left_right_witness_witness_witness_left - 0028
exact hqzero - 0029
have hqbound : exists pvs_le_gap_quotient_domain. pvs_le_gap_quotient_domain + (x) = (N) - 0030
specialize le_trans (x) - 0031
specialize le_trans (n) - 0032
specialize le_trans (N) - 0033
apply le_trans - 0034
specialize divisor_le_nonzero (x) - 0035
specialize divisor_le_nonzero (n) - 0036
apply divisor_le_nonzero - 0037
exact hn - 0038
exists d - 0039
trans (d)*(x) - 0040
exact he_left_right_witness_witness_witness_left - 0041
apply mul_comm - 0042
exact hb - 0043
have hqnotone : ~(x=1) - 0044
intro hqone - 0045
have heq : n=d - 0046
trans d*x - 0047
exact he_left_right_witness_witness_witness_left - 0048
trans d*1 - 0049
rewrite hqone - 0050
refl - 0051
apply mul_one - 0052
specialize lt_not_le (d) - 0053
specialize lt_not_le (n) - 0054
apply lt_not_le - 0055
exact hbefore - 0056
rewrite heq - 0057
specialize le_refl (d) - 0058
apply le_refl - 0059
have hzero : x2=0 - 0060
specialize dirichlet_kronecker_delta_table_other_value (N) - 0061
specialize dirichlet_kronecker_delta_table_other_value (E) - 0062
specialize dirichlet_kronecker_delta_table_other_value (x) - 0063
specialize dirichlet_kronecker_delta_table_other_value (x2) - 0064
apply dirichlet_kronecker_delta_table_other_value - 0065
exact hd - 0066
exact hqpositive - 0067
exact hqnotone - 0068
exact hqbound - 0069
exact he_left_right_witness_witness_witness_right_right_left - 0070
rewrite hzero at he_left_right_witness_witness_witness_right_right_right - 0071
rewrite hzero at he_left_right_witness_witness_witness_right_right_right - 0072
specialize signed_mul_functional (x1) - 0073
specialize signed_mul_functional (0) - 0074
specialize signed_mul_functional (z) - 0075
specialize signed_mul_functional (0) - 0076
apply signed_mul_functional - 0077
exact he_left_right_witness_witness_witness_right_right_right - 0078
specialize signed_mul_zero_right (x1) - 0079
apply signed_mul_zero_right - 0080
cases he_right - 0081
exact he_right_right