Exact expanded first-order arithmetic statement
forall F pb pc nb nc i z. ((F) = (((((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))) * S ((((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))) + ((((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))))) -> (exists dst_positive_code_unpack_entry dst_positive_scale_unpack_entry dst_negative_code_unpack_entry dst_negative_scale_unpack_entry dst_positive_unpack_entry dst_negative_unpack_entry. (((F) = (((((dst_positive_code_unpack_entry) + (dst_positive_scale_unpack_entry)) * S ((dst_positive_code_unpack_entry) + (dst_positive_scale_unpack_entry)) + ((dst_positive_scale_unpack_entry) + (dst_positive_scale_unpack_entry))) + (((dst_negative_code_unpack_entry) + (dst_negative_scale_unpack_entry)) * S ((dst_negative_code_unpack_entry) + (dst_negative_scale_unpack_entry)) + ((dst_negative_scale_unpack_entry) + (dst_negative_scale_unpack_entry)))) * S ((((dst_positive_code_unpack_entry) + (dst_positive_scale_unpack_entry)) * S ((dst_positive_code_unpack_entry) + (dst_positive_scale_unpack_entry)) + ((dst_positive_scale_unpack_entry) + (dst_positive_scale_unpack_entry))) + (((dst_negative_code_unpack_entry) + (dst_negative_scale_unpack_entry)) * S ((dst_negative_code_unpack_entry) + (dst_negative_scale_unpack_entry)) + ((dst_negative_scale_unpack_entry) + (dst_negative_scale_unpack_entry)))) + ((((dst_negative_code_unpack_entry) + (dst_negative_scale_unpack_entry)) * S ((dst_negative_code_unpack_entry) + (dst_negative_scale_unpack_entry)) + ((dst_negative_scale_unpack_entry) + (dst_negative_scale_unpack_entry))) + (((dst_negative_code_unpack_entry) + (dst_negative_scale_unpack_entry)) * S ((dst_negative_code_unpack_entry) + (dst_negative_scale_unpack_entry)) + ((dst_negative_scale_unpack_entry) + (dst_negative_scale_unpack_entry)))))) /\ (((((exists ff_h_pvs_unpack_entrypositive. ff_h_pvs_unpack_entrypositive + S (dst_positive_unpack_entry) = S ((S (i)) * dst_positive_scale_unpack_entry)) /\ exists ff_q_pvs_unpack_entrypositive. dst_positive_code_unpack_entry = ff_q_pvs_unpack_entrypositive * S ((S (i)) * dst_positive_scale_unpack_entry) + (dst_positive_unpack_entry))) /\ (((((exists ff_h_pvs_unpack_entrynegative. ff_h_pvs_unpack_entrynegative + S (dst_negative_unpack_entry) = S ((S (i)) * dst_negative_scale_unpack_entry)) /\ exists ff_q_pvs_unpack_entrynegative. dst_negative_code_unpack_entry = ff_q_pvs_unpack_entrynegative * S ((S (i)) * dst_negative_scale_unpack_entry) + (dst_negative_unpack_entry))) /\ (exists ge_balance_positive_unpack_entryvalue ge_balance_negative_unpack_entryvalue. (((((z) = 2 * (ge_balance_positive_unpack_entryvalue) /\ (ge_balance_negative_unpack_entryvalue) = 0) \/ exists ge_signed_half_unpack_entryvaluedecode. (((z) = 2 * ge_signed_half_unpack_entryvaluedecode + 1 /\ (ge_balance_positive_unpack_entryvalue) = 0) /\ (ge_balance_negative_unpack_entryvalue) = S ge_signed_half_unpack_entryvaluedecode))) /\ ((dst_positive_unpack_entry) + ge_balance_negative_unpack_entryvalue = (dst_negative_unpack_entry) + ge_balance_positive_unpack_entryvalue))))))))) -> exists p n. (((((exists ff_h_pvs_unpack_resultpositive. ff_h_pvs_unpack_resultpositive + S (p) = S ((S (i)) * pc)) /\ exists ff_q_pvs_unpack_resultpositive. pb = ff_q_pvs_unpack_resultpositive * S ((S (i)) * pc) + (p))) /\ (((((exists ff_h_pvs_unpack_resultnegative. ff_h_pvs_unpack_resultnegative + S (n) = S ((S (i)) * nc)) /\ exists ff_q_pvs_unpack_resultnegative. nb = ff_q_pvs_unpack_resultnegative * S ((S (i)) * nc) + (n))) /\ (exists ge_balance_positive_unpack_resultvalue ge_balance_negative_unpack_resultvalue. (((((z) = 2 * (ge_balance_positive_unpack_resultvalue) /\ (ge_balance_negative_unpack_resultvalue) = 0) \/ exists ge_signed_half_unpack_resultvaluedecode. (((z) = 2 * ge_signed_half_unpack_resultvaluedecode + 1 /\ (ge_balance_positive_unpack_resultvalue) = 0) /\ (ge_balance_negative_unpack_resultvalue) = S ge_signed_half_unpack_resultvaluedecode))) /\ ((p) + ge_balance_negative_unpack_resultvalue = (n) + ge_balance_positive_unpack_resultvalue)))))))Constructive proof overview
Generated structural guide
Every lookup unpacks against any proved representation of its exact table code, with actual component witnesses.
The unchanged tactic script uses 1 declared prerequisite and contains 47 exact native proof lines.
Public research checkpoint: original HA and independently compiled Lean verified; not Alpha-enrolled, no Alpha checked-use authority; not Stable
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. The literal dependency-closed bundle is checked by original HA and the independently compiled Lean verifier. Public delivery grants no Alpha checked-use authority or 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–9
02Separate the logical casesL10–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L10
cases hentry - L11
cases hentry_witness - L12
cases hentry_witness_witness - L13
cases hentry_witness_witness_witness - L14
cases hentry_witness_witness_witness_witness - L15
cases hentry_witness_witness_witness_witness_witness - L16
cases hentry_witness_witness_witness_witness_witness_witness - L17
cases hentry_witness_witness_witness_witness_witness_witness_right - L18
cases hentry_witness_witness_witness_witness_witness_witness_right_right
03Establish heqL19–28
Establish this local claim before using it. It is not an additional assumption.
- L19
have heq : ((x = pb) /\ (((x1 = pc) /\ (((x2 = nb) /\ (x3 = nc)))))) - L20
specialize matrix_minor_four_code_components_injective (F) - L21
specialize matrix_minor_four_code_components_injective (x) - L22
specialize matrix_minor_four_code_components_injective (x1) - L23
specialize matrix_minor_four_code_components_injective (x2) - L24
specialize matrix_minor_four_code_components_injective (x3) - L25
specialize matrix_minor_four_code_components_injective (pb) - L26
specialize matrix_minor_four_code_components_injective (pc) - L27
specialize matrix_minor_four_code_components_injective (nb) - L28
specialize matrix_minor_four_code_components_injective (nc)
04Use earlier factsL29–31
05Separate the logical casesL32–34
06Construct an explicit witnessL35–36
07Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
split
08Calculate and transport equalitiesL38–40
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
09Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
exact hentry_witness_witness_witness_witness_witness_witness_right_left
10Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
split
11Calculate and transport equalitiesL43–45
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L43
rewrite heq_right_right_left at hentry_witness_witness_witness_witness_witness_witness_right_right_left - L44
rewrite heq_right_right_right at hentry_witness_witness_witness_witness_witness_witness_right_right_left - L45
rewrite heq_right_right_right at hentry_witness_witness_witness_witness_witness_witness_right_right_left
Original exact command ledger · 47 lines
- 0001
intro F - 0002
intro pb - 0003
intro pc - 0004
intro nb - 0005
intro nc - 0006
intro i - 0007
intro z - 0008
intro hrep - 0009
intro hentry - 0010
cases hentry - 0011
cases hentry_witness - 0012
cases hentry_witness_witness - 0013
cases hentry_witness_witness_witness - 0014
cases hentry_witness_witness_witness_witness - 0015
cases hentry_witness_witness_witness_witness_witness - 0016
cases hentry_witness_witness_witness_witness_witness_witness - 0017
cases hentry_witness_witness_witness_witness_witness_witness_right - 0018
cases hentry_witness_witness_witness_witness_witness_witness_right_right - 0019
have heq : ((x = pb) /\ (((x1 = pc) /\ (((x2 = nb) /\ (x3 = nc)))))) - 0020
specialize matrix_minor_four_code_components_injective (F) - 0021
specialize matrix_minor_four_code_components_injective (x) - 0022
specialize matrix_minor_four_code_components_injective (x1) - 0023
specialize matrix_minor_four_code_components_injective (x2) - 0024
specialize matrix_minor_four_code_components_injective (x3) - 0025
specialize matrix_minor_four_code_components_injective (pb) - 0026
specialize matrix_minor_four_code_components_injective (pc) - 0027
specialize matrix_minor_four_code_components_injective (nb) - 0028
specialize matrix_minor_four_code_components_injective (nc) - 0029
apply matrix_minor_four_code_components_injective - 0030
exact hentry_witness_witness_witness_witness_witness_witness_left - 0031
exact hrep - 0032
cases heq - 0033
cases heq_right - 0034
cases heq_right_right - 0035
exists x4 - 0036
exists x5 - 0037
split - 0038
rewrite heq_left at hentry_witness_witness_witness_witness_witness_witness_right_left - 0039
rewrite heq_right_left at hentry_witness_witness_witness_witness_witness_witness_right_left - 0040
rewrite heq_right_left at hentry_witness_witness_witness_witness_witness_witness_right_left - 0041
exact hentry_witness_witness_witness_witness_witness_witness_right_left - 0042
split - 0043
rewrite heq_right_right_left at hentry_witness_witness_witness_witness_witness_witness_right_right_left - 0044
rewrite heq_right_right_right at hentry_witness_witness_witness_witness_witness_witness_right_right_left - 0045
rewrite heq_right_right_right at hentry_witness_witness_witness_witness_witness_witness_right_right_left - 0046
exact hentry_witness_witness_witness_witness_witness_witness_right_right_left - 0047
exact hentry_witness_witness_witness_witness_witness_witness_right_right_right