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 G pb pc nb nc qb qc mb mc l. ((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)))))) -> ((G) = (((((qb) + (qc)) * S ((qb) + (qc)) + ((qc) + (qc))) + (((mb) + (mc)) * S ((mb) + (mc)) + ((mc) + (mc)))) * S ((((qb) + (qc)) * S ((qb) + (qc)) + ((qc) + (qc))) + (((mb) + (mc)) * S ((mb) + (mc)) + ((mc) + (mc)))) + ((((mb) + (mc)) * S ((mb) + (mc)) + ((mc) + (mc))) + (((mb) + (mc)) * S ((mb) + (mc)) + ((mc) + (mc)))))) -> (forall pfp_i_pvs_preserve_positive pfp_a_pvs_preserve_positive. (exists pfp_gap_pvs_preserve_positivebound. pfp_gap_pvs_preserve_positivebound + S (pfp_i_pvs_preserve_positive) = (l)) -> (((exists ff_h_pfp_pvs_preserve_positiveold. ff_h_pfp_pvs_preserve_positiveold + S (pfp_a_pvs_preserve_positive) = S ((S (pfp_i_pvs_preserve_positive)) * pc)) /\ exists ff_q_pfp_pvs_preserve_positiveold. pb = ff_q_pfp_pvs_preserve_positiveold * S ((S (pfp_i_pvs_preserve_positive)) * pc) + (pfp_a_pvs_preserve_positive))) -> (((exists ff_h_pfp_pvs_preserve_positivenew. ff_h_pfp_pvs_preserve_positivenew + S (pfp_a_pvs_preserve_positive) = S ((S (pfp_i_pvs_preserve_positive)) * qc)) /\ exists ff_q_pfp_pvs_preserve_positivenew. qb = ff_q_pfp_pvs_preserve_positivenew * S ((S (pfp_i_pvs_preserve_positive)) * qc) + (pfp_a_pvs_preserve_positive)))) -> (forall pfp_i_pvs_preserve_negative pfp_a_pvs_preserve_negative. (exists pfp_gap_pvs_preserve_negativebound. pfp_gap_pvs_preserve_negativebound + S (pfp_i_pvs_preserve_negative) = (l)) -> (((exists ff_h_pfp_pvs_preserve_negativeold. ff_h_pfp_pvs_preserve_negativeold + S (pfp_a_pvs_preserve_negative) = S ((S (pfp_i_pvs_preserve_negative)) * nc)) /\ exists ff_q_pfp_pvs_preserve_negativeold. nb = ff_q_pfp_pvs_preserve_negativeold * S ((S (pfp_i_pvs_preserve_negative)) * nc) + (pfp_a_pvs_preserve_negative))) -> (((exists ff_h_pfp_pvs_preserve_negativenew. ff_h_pfp_pvs_preserve_negativenew + S (pfp_a_pvs_preserve_negative) = S ((S (pfp_i_pvs_preserve_negative)) * mc)) /\ exists ff_q_pfp_pvs_preserve_negativenew. mb = ff_q_pfp_pvs_preserve_negativenew * S ((S (pfp_i_pvs_preserve_negative)) * mc) + (pfp_a_pvs_preserve_negative)))) -> (forall dst_index_preserve_result dst_first_preserve_result dst_second_preserve_result. (exists pvs_gap_preserve_resultbound. pvs_gap_preserve_resultbound + S (dst_index_preserve_result) = (l)) -> (exists dst_positive_code_preserve_resultfirst dst_positive_scale_preserve_resultfirst dst_negative_code_preserve_resultfirst dst_negative_scale_preserve_resultfirst dst_positive_preserve_resultfirst dst_negative_preserve_resultfirst. (((F) = (((((dst_positive_code_preserve_resultfirst) + (dst_positive_scale_preserve_resultfirst)) * S ((dst_positive_code_preserve_resultfirst) + (dst_positive_scale_preserve_resultfirst)) + ((dst_positive_scale_preserve_resultfirst) + (dst_positive_scale_preserve_resultfirst))) + (((dst_negative_code_preserve_resultfirst) + (dst_negative_scale_preserve_resultfirst)) * S ((dst_negative_code_preserve_resultfirst) + (dst_negative_scale_preserve_resultfirst)) + ((dst_negative_scale_preserve_resultfirst) + (dst_negative_scale_preserve_resultfirst)))) * S ((((dst_positive_code_preserve_resultfirst) + (dst_positive_scale_preserve_resultfirst)) * S ((dst_positive_code_preserve_resultfirst) + (dst_positive_scale_preserve_resultfirst)) + ((dst_positive_scale_preserve_resultfirst) + (dst_positive_scale_preserve_resultfirst))) + (((dst_negative_code_preserve_resultfirst) + (dst_negative_scale_preserve_resultfirst)) * S ((dst_negative_code_preserve_resultfirst) + (dst_negative_scale_preserve_resultfirst)) + ((dst_negative_scale_preserve_resultfirst) + (dst_negative_scale_preserve_resultfirst)))) + ((((dst_negative_code_preserve_resultfirst) + (dst_negative_scale_preserve_resultfirst)) * S ((dst_negative_code_preserve_resultfirst) + (dst_negative_scale_preserve_resultfirst)) + ((dst_negative_scale_preserve_resultfirst) + (dst_negative_scale_preserve_resultfirst))) + (((dst_negative_code_preserve_resultfirst) + (dst_negative_scale_preserve_resultfirst)) * S ((dst_negative_code_preserve_resultfirst) + (dst_negative_scale_preserve_resultfirst)) + ((dst_negative_scale_preserve_resultfirst) + (dst_negative_scale_preserve_resultfirst)))))) /\ (((((exists ff_h_pvs_preserve_resultfirstpositive. ff_h_pvs_preserve_resultfirstpositive + S (dst_positive_preserve_resultfirst) = S ((S (dst_index_preserve_result)) * dst_positive_scale_preserve_resultfirst)) /\ exists ff_q_pvs_preserve_resultfirstpositive. dst_positive_code_preserve_resultfirst = ff_q_pvs_preserve_resultfirstpositive * S ((S (dst_index_preserve_result)) * dst_positive_scale_preserve_resultfirst) + (dst_positive_preserve_resultfirst))) /\ (((((exists ff_h_pvs_preserve_resultfirstnegative. ff_h_pvs_preserve_resultfirstnegative + S (dst_negative_preserve_resultfirst) = S ((S (dst_index_preserve_result)) * dst_negative_scale_preserve_resultfirst)) /\ exists ff_q_pvs_preserve_resultfirstnegative. dst_negative_code_preserve_resultfirst = ff_q_pvs_preserve_resultfirstnegative * S ((S (dst_index_preserve_result)) * dst_negative_scale_preserve_resultfirst) + (dst_negative_preserve_resultfirst))) /\ (exists ge_balance_positive_preserve_resultfirstvalue ge_balance_negative_preserve_resultfirstvalue. (((((dst_first_preserve_result) = 2 * (ge_balance_positive_preserve_resultfirstvalue) /\ (ge_balance_negative_preserve_resultfirstvalue) = 0) \/ exists ge_signed_half_preserve_resultfirstvaluedecode. (((dst_first_preserve_result) = 2 * ge_signed_half_preserve_resultfirstvaluedecode + 1 /\ (ge_balance_positive_preserve_resultfirstvalue) = 0) /\ (ge_balance_negative_preserve_resultfirstvalue) = S ge_signed_half_preserve_resultfirstvaluedecode))) /\ ((dst_positive_preserve_resultfirst) + ge_balance_negative_preserve_resultfirstvalue = (dst_negative_preserve_resultfirst) + ge_balance_positive_preserve_resultfirstvalue))))))))) -> (exists dst_positive_code_preserve_resultsecond dst_positive_scale_preserve_resultsecond dst_negative_code_preserve_resultsecond dst_negative_scale_preserve_resultsecond dst_positive_preserve_resultsecond dst_negative_preserve_resultsecond. (((G) = (((((dst_positive_code_preserve_resultsecond) + (dst_positive_scale_preserve_resultsecond)) * S ((dst_positive_code_preserve_resultsecond) + (dst_positive_scale_preserve_resultsecond)) + ((dst_positive_scale_preserve_resultsecond) + (dst_positive_scale_preserve_resultsecond))) + (((dst_negative_code_preserve_resultsecond) + (dst_negative_scale_preserve_resultsecond)) * S ((dst_negative_code_preserve_resultsecond) + (dst_negative_scale_preserve_resultsecond)) + ((dst_negative_scale_preserve_resultsecond) + (dst_negative_scale_preserve_resultsecond)))) * S ((((dst_positive_code_preserve_resultsecond) + (dst_positive_scale_preserve_resultsecond)) * S ((dst_positive_code_preserve_resultsecond) + (dst_positive_scale_preserve_resultsecond)) + ((dst_positive_scale_preserve_resultsecond) + (dst_positive_scale_preserve_resultsecond))) + (((dst_negative_code_preserve_resultsecond) + (dst_negative_scale_preserve_resultsecond)) * S ((dst_negative_code_preserve_resultsecond) + (dst_negative_scale_preserve_resultsecond)) + ((dst_negative_scale_preserve_resultsecond) + (dst_negative_scale_preserve_resultsecond)))) + ((((dst_negative_code_preserve_resultsecond) + (dst_negative_scale_preserve_resultsecond)) * S ((dst_negative_code_preserve_resultsecond) + (dst_negative_scale_preserve_resultsecond)) + ((dst_negative_scale_preserve_resultsecond) + (dst_negative_scale_preserve_resultsecond))) + (((dst_negative_code_preserve_resultsecond) + (dst_negative_scale_preserve_resultsecond)) * S ((dst_negative_code_preserve_resultsecond) + (dst_negative_scale_preserve_resultsecond)) + ((dst_negative_scale_preserve_resultsecond) + (dst_negative_scale_preserve_resultsecond)))))) /\ (((((exists ff_h_pvs_preserve_resultsecondpositive. ff_h_pvs_preserve_resultsecondpositive + S (dst_positive_preserve_resultsecond) = S ((S (dst_index_preserve_result)) * dst_positive_scale_preserve_resultsecond)) /\ exists ff_q_pvs_preserve_resultsecondpositive. dst_positive_code_preserve_resultsecond = ff_q_pvs_preserve_resultsecondpositive * S ((S (dst_index_preserve_result)) * dst_positive_scale_preserve_resultsecond) + (dst_positive_preserve_resultsecond))) /\ (((((exists ff_h_pvs_preserve_resultsecondnegative. ff_h_pvs_preserve_resultsecondnegative + S (dst_negative_preserve_resultsecond) = S ((S (dst_index_preserve_result)) * dst_negative_scale_preserve_resultsecond)) /\ exists ff_q_pvs_preserve_resultsecondnegative. dst_negative_code_preserve_resultsecond = ff_q_pvs_preserve_resultsecondnegative * S ((S (dst_index_preserve_result)) * dst_negative_scale_preserve_resultsecond) + (dst_negative_preserve_resultsecond))) /\ (exists ge_balance_positive_preserve_resultsecondvalue ge_balance_negative_preserve_resultsecondvalue. (((((dst_second_preserve_result) = 2 * (ge_balance_positive_preserve_resultsecondvalue) /\ (ge_balance_negative_preserve_resultsecondvalue) = 0) \/ exists ge_signed_half_preserve_resultsecondvaluedecode. (((dst_second_preserve_result) = 2 * ge_signed_half_preserve_resultsecondvaluedecode + 1 /\ (ge_balance_positive_preserve_resultsecondvalue) = 0) /\ (ge_balance_negative_preserve_resultsecondvalue) = S ge_signed_half_preserve_resultsecondvaluedecode))) /\ ((dst_positive_preserve_resultsecond) + ge_balance_negative_preserve_resultsecondvalue = (dst_negative_preserve_resultsecond) + ge_balance_positive_preserve_resultsecondvalue))))))))) -> dst_first_preserve_result = dst_second_preserve_result)Constructive proof overview
Generated structural guide
Preservation of both actual natural beta prefixes preserves canonical signed values without identifying distinct component representations.
The unchanged tactic script uses 3 declared prerequisites and contains 64 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_at_to_components Alpha theorem; checked-use authorized divisor_signed_table_at_from_components Alpha theorem; checked-use authorized divisor_signed_table_at_functional 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–20
03Fix variables and assumptionsL21–21
Work with arbitrary variables or the premises of the current implication.
- L21
intro hb
04Establish hpartsL22–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table at to components.
- L22
have hparts : ∃ p. ∃ n. BetaAt(pb,pc,i,p) ∧ (BetaAt(nb,nc,i,n) ∧ SignedBalance(a,p,n))Definitions: SignedBalanceBetaAt - L23
specialize divisor_signed_table_at_to_components (F) - L24
specialize divisor_signed_table_at_to_components (pb) - L25
specialize divisor_signed_table_at_to_components (pc) - L26
specialize divisor_signed_table_at_to_components (nb) - L27
specialize divisor_signed_table_at_to_components (nc) - L28
specialize divisor_signed_table_at_to_components (i) - L29
specialize divisor_signed_table_at_to_components (a) - L30
apply divisor_signed_table_at_to_components - L31
exact hF
05Use earlier factsL32–32
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L32
exact ha
06Separate the logical casesL33–36
07Use earlier factsL37–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
specialize divisor_signed_table_at_functional (G) - L38
specialize divisor_signed_table_at_functional (i) - L39
specialize divisor_signed_table_at_functional (a) - L40
specialize divisor_signed_table_at_functional (b) - L41
apply divisor_signed_table_at_functional - L42
specialize divisor_signed_table_at_from_components (G) - L43
specialize divisor_signed_table_at_from_components (qb) - L44
specialize divisor_signed_table_at_from_components (qc) - L45
specialize divisor_signed_table_at_from_components (mb) - L46
specialize divisor_signed_table_at_from_components (mc)
08Use earlier factsL47–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
specialize divisor_signed_table_at_from_components (i) - L48
specialize divisor_signed_table_at_from_components (x) - L49
specialize divisor_signed_table_at_from_components (x1) - L50
specialize divisor_signed_table_at_from_components (a) - L51
apply divisor_signed_table_at_from_components - L52
exact hG - L53
specialize hp (i) - L54
specialize hp (x) - L55
apply hp - L56
exact hi
09Use earlier factsL57–64
Original exact command ledger · 64 lines
- 0001
intro F - 0002
intro G - 0003
intro pb - 0004
intro pc - 0005
intro nb - 0006
intro nc - 0007
intro qb - 0008
intro qc - 0009
intro mb - 0010
intro mc - 0011
intro l - 0012
intro hF - 0013
intro hG - 0014
intro hp - 0015
intro hn - 0016
intro i - 0017
intro a - 0018
intro b - 0019
intro hi - 0020
intro ha - 0021
intro hb - 0022
have hparts : exists p n. (((((exists ff_h_pvs_preserve_componentspositive. ff_h_pvs_preserve_componentspositive + S (p) = S ((S (i)) * pc)) /\ exists ff_q_pvs_preserve_componentspositive. pb = ff_q_pvs_preserve_componentspositive * S ((S (i)) * pc) + (p))) /\ (((((exists ff_h_pvs_preserve_componentsnegative. ff_h_pvs_preserve_componentsnegative + S (n) = S ((S (i)) * nc)) /\ exists ff_q_pvs_preserve_componentsnegative. nb = ff_q_pvs_preserve_componentsnegative * S ((S (i)) * nc) + (n))) /\ (exists ge_balance_positive_preserve_componentsvalue ge_balance_negative_preserve_componentsvalue. (((((a) = 2 * (ge_balance_positive_preserve_componentsvalue) /\ (ge_balance_negative_preserve_componentsvalue) = 0) \/ exists ge_signed_half_preserve_componentsvaluedecode. (((a) = 2 * ge_signed_half_preserve_componentsvaluedecode + 1 /\ (ge_balance_positive_preserve_componentsvalue) = 0) /\ (ge_balance_negative_preserve_componentsvalue) = S ge_signed_half_preserve_componentsvaluedecode))) /\ ((p) + ge_balance_negative_preserve_componentsvalue = (n) + ge_balance_positive_preserve_componentsvalue))))))) - 0023
specialize divisor_signed_table_at_to_components (F) - 0024
specialize divisor_signed_table_at_to_components (pb) - 0025
specialize divisor_signed_table_at_to_components (pc) - 0026
specialize divisor_signed_table_at_to_components (nb) - 0027
specialize divisor_signed_table_at_to_components (nc) - 0028
specialize divisor_signed_table_at_to_components (i) - 0029
specialize divisor_signed_table_at_to_components (a) - 0030
apply divisor_signed_table_at_to_components - 0031
exact hF - 0032
exact ha - 0033
cases hparts - 0034
cases hparts_witness - 0035
cases hparts_witness_witness - 0036
cases hparts_witness_witness_right - 0037
specialize divisor_signed_table_at_functional (G) - 0038
specialize divisor_signed_table_at_functional (i) - 0039
specialize divisor_signed_table_at_functional (a) - 0040
specialize divisor_signed_table_at_functional (b) - 0041
apply divisor_signed_table_at_functional - 0042
specialize divisor_signed_table_at_from_components (G) - 0043
specialize divisor_signed_table_at_from_components (qb) - 0044
specialize divisor_signed_table_at_from_components (qc) - 0045
specialize divisor_signed_table_at_from_components (mb) - 0046
specialize divisor_signed_table_at_from_components (mc) - 0047
specialize divisor_signed_table_at_from_components (i) - 0048
specialize divisor_signed_table_at_from_components (x) - 0049
specialize divisor_signed_table_at_from_components (x1) - 0050
specialize divisor_signed_table_at_from_components (a) - 0051
apply divisor_signed_table_at_from_components - 0052
exact hG - 0053
specialize hp (i) - 0054
specialize hp (x) - 0055
apply hp - 0056
exact hi - 0057
exact hparts_witness_witness_left - 0058
specialize hn (i) - 0059
specialize hn (x1) - 0060
apply hn - 0061
exact hi - 0062
exact hparts_witness_witness_right_left - 0063
exact hparts_witness_witness_right_right - 0064
exact hb