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 i a b. ((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) = (((((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc))) + (((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc)))) * S ((((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc))) + (((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc)))) + ((((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc))) + (((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc)))))) -> (exists dst_positive_code_swapped_source dst_positive_scale_swapped_source dst_negative_code_swapped_source dst_negative_scale_swapped_source dst_positive_swapped_source dst_negative_swapped_source. (((F) = (((((dst_positive_code_swapped_source) + (dst_positive_scale_swapped_source)) * S ((dst_positive_code_swapped_source) + (dst_positive_scale_swapped_source)) + ((dst_positive_scale_swapped_source) + (dst_positive_scale_swapped_source))) + (((dst_negative_code_swapped_source) + (dst_negative_scale_swapped_source)) * S ((dst_negative_code_swapped_source) + (dst_negative_scale_swapped_source)) + ((dst_negative_scale_swapped_source) + (dst_negative_scale_swapped_source)))) * S ((((dst_positive_code_swapped_source) + (dst_positive_scale_swapped_source)) * S ((dst_positive_code_swapped_source) + (dst_positive_scale_swapped_source)) + ((dst_positive_scale_swapped_source) + (dst_positive_scale_swapped_source))) + (((dst_negative_code_swapped_source) + (dst_negative_scale_swapped_source)) * S ((dst_negative_code_swapped_source) + (dst_negative_scale_swapped_source)) + ((dst_negative_scale_swapped_source) + (dst_negative_scale_swapped_source)))) + ((((dst_negative_code_swapped_source) + (dst_negative_scale_swapped_source)) * S ((dst_negative_code_swapped_source) + (dst_negative_scale_swapped_source)) + ((dst_negative_scale_swapped_source) + (dst_negative_scale_swapped_source))) + (((dst_negative_code_swapped_source) + (dst_negative_scale_swapped_source)) * S ((dst_negative_code_swapped_source) + (dst_negative_scale_swapped_source)) + ((dst_negative_scale_swapped_source) + (dst_negative_scale_swapped_source)))))) /\ (((((exists ff_h_pvs_swapped_sourcepositive. ff_h_pvs_swapped_sourcepositive + S (dst_positive_swapped_source) = S ((S (i)) * dst_positive_scale_swapped_source)) /\ exists ff_q_pvs_swapped_sourcepositive. dst_positive_code_swapped_source = ff_q_pvs_swapped_sourcepositive * S ((S (i)) * dst_positive_scale_swapped_source) + (dst_positive_swapped_source))) /\ (((((exists ff_h_pvs_swapped_sourcenegative. ff_h_pvs_swapped_sourcenegative + S (dst_negative_swapped_source) = S ((S (i)) * dst_negative_scale_swapped_source)) /\ exists ff_q_pvs_swapped_sourcenegative. dst_negative_code_swapped_source = ff_q_pvs_swapped_sourcenegative * S ((S (i)) * dst_negative_scale_swapped_source) + (dst_negative_swapped_source))) /\ (exists ge_balance_positive_swapped_sourcevalue ge_balance_negative_swapped_sourcevalue. (((((a) = 2 * (ge_balance_positive_swapped_sourcevalue) /\ (ge_balance_negative_swapped_sourcevalue) = 0) \/ exists ge_signed_half_swapped_sourcevaluedecode. (((a) = 2 * ge_signed_half_swapped_sourcevaluedecode + 1 /\ (ge_balance_positive_swapped_sourcevalue) = 0) /\ (ge_balance_negative_swapped_sourcevalue) = S ge_signed_half_swapped_sourcevaluedecode))) /\ ((dst_positive_swapped_source) + ge_balance_negative_swapped_sourcevalue = (dst_negative_swapped_source) + ge_balance_positive_swapped_sourcevalue))))))))) -> (exists mps_positive_swapped_inverse mps_negative_swapped_inverse. (((((a) = 2 * (mps_positive_swapped_inverse) /\ (mps_negative_swapped_inverse) = 0) \/ exists ge_signed_half_swapped_inversesource. (((a) = 2 * ge_signed_half_swapped_inversesource + 1 /\ (mps_positive_swapped_inverse) = 0) /\ (mps_negative_swapped_inverse) = S ge_signed_half_swapped_inversesource))) /\ ((((b) = 2 * (mps_negative_swapped_inverse) /\ (mps_positive_swapped_inverse) = 0) \/ exists ge_signed_half_swapped_inversetarget. (((b) = 2 * ge_signed_half_swapped_inversetarget + 1 /\ (mps_negative_swapped_inverse) = 0) /\ (mps_positive_swapped_inverse) = S ge_signed_half_swapped_inversetarget))))) -> (exists dst_positive_code_swapped_result dst_positive_scale_swapped_result dst_negative_code_swapped_result dst_negative_scale_swapped_result dst_positive_swapped_result dst_negative_swapped_result. (((G) = (((((dst_positive_code_swapped_result) + (dst_positive_scale_swapped_result)) * S ((dst_positive_code_swapped_result) + (dst_positive_scale_swapped_result)) + ((dst_positive_scale_swapped_result) + (dst_positive_scale_swapped_result))) + (((dst_negative_code_swapped_result) + (dst_negative_scale_swapped_result)) * S ((dst_negative_code_swapped_result) + (dst_negative_scale_swapped_result)) + ((dst_negative_scale_swapped_result) + (dst_negative_scale_swapped_result)))) * S ((((dst_positive_code_swapped_result) + (dst_positive_scale_swapped_result)) * S ((dst_positive_code_swapped_result) + (dst_positive_scale_swapped_result)) + ((dst_positive_scale_swapped_result) + (dst_positive_scale_swapped_result))) + (((dst_negative_code_swapped_result) + (dst_negative_scale_swapped_result)) * S ((dst_negative_code_swapped_result) + (dst_negative_scale_swapped_result)) + ((dst_negative_scale_swapped_result) + (dst_negative_scale_swapped_result)))) + ((((dst_negative_code_swapped_result) + (dst_negative_scale_swapped_result)) * S ((dst_negative_code_swapped_result) + (dst_negative_scale_swapped_result)) + ((dst_negative_scale_swapped_result) + (dst_negative_scale_swapped_result))) + (((dst_negative_code_swapped_result) + (dst_negative_scale_swapped_result)) * S ((dst_negative_code_swapped_result) + (dst_negative_scale_swapped_result)) + ((dst_negative_scale_swapped_result) + (dst_negative_scale_swapped_result)))))) /\ (((((exists ff_h_pvs_swapped_resultpositive. ff_h_pvs_swapped_resultpositive + S (dst_positive_swapped_result) = S ((S (i)) * dst_positive_scale_swapped_result)) /\ exists ff_q_pvs_swapped_resultpositive. dst_positive_code_swapped_result = ff_q_pvs_swapped_resultpositive * S ((S (i)) * dst_positive_scale_swapped_result) + (dst_positive_swapped_result))) /\ (((((exists ff_h_pvs_swapped_resultnegative. ff_h_pvs_swapped_resultnegative + S (dst_negative_swapped_result) = S ((S (i)) * dst_negative_scale_swapped_result)) /\ exists ff_q_pvs_swapped_resultnegative. dst_negative_code_swapped_result = ff_q_pvs_swapped_resultnegative * S ((S (i)) * dst_negative_scale_swapped_result) + (dst_negative_swapped_result))) /\ (exists ge_balance_positive_swapped_resultvalue ge_balance_negative_swapped_resultvalue. (((((b) = 2 * (ge_balance_positive_swapped_resultvalue) /\ (ge_balance_negative_swapped_resultvalue) = 0) \/ exists ge_signed_half_swapped_resultvaluedecode. (((b) = 2 * ge_signed_half_swapped_resultvaluedecode + 1 /\ (ge_balance_positive_swapped_resultvalue) = 0) /\ (ge_balance_negative_swapped_resultvalue) = S ge_signed_half_swapped_resultvaluedecode))) /\ ((dst_positive_swapped_result) + ge_balance_negative_swapped_resultvalue = (dst_negative_swapped_result) + ge_balance_positive_swapped_resultvalue)))))))))Constructive proof overview
Generated structural guide
Swapping the real positive and negative beta components constructs the exact negated signed lookup, with no canonical-component equality assumption.
The unchanged tactic script uses 3 declared prerequisites and contains 48 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_balance_negate 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–13
03Establish hcL14–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table at to components.
- L14
have hc : ∃ p. ∃ n. BetaAt(pb,pc,i,p) ∧ (BetaAt(nb,nc,i,n) ∧ SignedBalance(a,p,n))Definitions: SignedBalanceBetaAt - L15
specialize divisor_signed_table_at_to_components (F) - L16
specialize divisor_signed_table_at_to_components (pb) - L17
specialize divisor_signed_table_at_to_components (pc) - L18
specialize divisor_signed_table_at_to_components (nb) - L19
specialize divisor_signed_table_at_to_components (nc) - L20
specialize divisor_signed_table_at_to_components (i) - L21
specialize divisor_signed_table_at_to_components (a) - L22
apply divisor_signed_table_at_to_components - L23
exact hF
04Use earlier factsL24–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
exact ha
05Separate the logical casesL25–28
06Use earlier factsL29–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L29
specialize divisor_signed_table_at_from_components (G) - L30
specialize divisor_signed_table_at_from_components (nb) - L31
specialize divisor_signed_table_at_from_components (nc) - L32
specialize divisor_signed_table_at_from_components (pb) - L33
specialize divisor_signed_table_at_from_components (pc) - L34
specialize divisor_signed_table_at_from_components (i) - L35
specialize divisor_signed_table_at_from_components (x1) - L36
specialize divisor_signed_table_at_from_components (x) - L37
specialize divisor_signed_table_at_from_components (b) - L38
apply divisor_signed_table_at_from_components
07Use earlier factsL39–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
exact hG - L40
exact hc_witness_witness_right_left - L41
exact hc_witness_witness_left - L42
specialize divisor_signed_balance_negate (a) - L43
specialize divisor_signed_balance_negate (b) - L44
specialize divisor_signed_balance_negate (x) - L45
specialize divisor_signed_balance_negate (x1) - L46
apply divisor_signed_balance_negate - L47
exact hc_witness_witness_right_right - L48
exact hn
Original exact command ledger · 48 lines
- 0001
intro F - 0002
intro G - 0003
intro pb - 0004
intro pc - 0005
intro nb - 0006
intro nc - 0007
intro i - 0008
intro a - 0009
intro b - 0010
intro hF - 0011
intro hG - 0012
intro ha - 0013
intro hn - 0014
have hc : exists p n. (((((exists ff_h_pvs_swapped_entry_componentspositive. ff_h_pvs_swapped_entry_componentspositive + S (p) = S ((S (i)) * pc)) /\ exists ff_q_pvs_swapped_entry_componentspositive. pb = ff_q_pvs_swapped_entry_componentspositive * S ((S (i)) * pc) + (p))) /\ (((((exists ff_h_pvs_swapped_entry_componentsnegative. ff_h_pvs_swapped_entry_componentsnegative + S (n) = S ((S (i)) * nc)) /\ exists ff_q_pvs_swapped_entry_componentsnegative. nb = ff_q_pvs_swapped_entry_componentsnegative * S ((S (i)) * nc) + (n))) /\ (exists ge_balance_positive_swapped_entry_componentsvalue ge_balance_negative_swapped_entry_componentsvalue. (((((a) = 2 * (ge_balance_positive_swapped_entry_componentsvalue) /\ (ge_balance_negative_swapped_entry_componentsvalue) = 0) \/ exists ge_signed_half_swapped_entry_componentsvaluedecode. (((a) = 2 * ge_signed_half_swapped_entry_componentsvaluedecode + 1 /\ (ge_balance_positive_swapped_entry_componentsvalue) = 0) /\ (ge_balance_negative_swapped_entry_componentsvalue) = S ge_signed_half_swapped_entry_componentsvaluedecode))) /\ ((p) + ge_balance_negative_swapped_entry_componentsvalue = (n) + ge_balance_positive_swapped_entry_componentsvalue))))))) - 0015
specialize divisor_signed_table_at_to_components (F) - 0016
specialize divisor_signed_table_at_to_components (pb) - 0017
specialize divisor_signed_table_at_to_components (pc) - 0018
specialize divisor_signed_table_at_to_components (nb) - 0019
specialize divisor_signed_table_at_to_components (nc) - 0020
specialize divisor_signed_table_at_to_components (i) - 0021
specialize divisor_signed_table_at_to_components (a) - 0022
apply divisor_signed_table_at_to_components - 0023
exact hF - 0024
exact ha - 0025
cases hc - 0026
cases hc_witness - 0027
cases hc_witness_witness - 0028
cases hc_witness_witness_right - 0029
specialize divisor_signed_table_at_from_components (G) - 0030
specialize divisor_signed_table_at_from_components (nb) - 0031
specialize divisor_signed_table_at_from_components (nc) - 0032
specialize divisor_signed_table_at_from_components (pb) - 0033
specialize divisor_signed_table_at_from_components (pc) - 0034
specialize divisor_signed_table_at_from_components (i) - 0035
specialize divisor_signed_table_at_from_components (x1) - 0036
specialize divisor_signed_table_at_from_components (x) - 0037
specialize divisor_signed_table_at_from_components (b) - 0038
apply divisor_signed_table_at_from_components - 0039
exact hG - 0040
exact hc_witness_witness_right_left - 0041
exact hc_witness_witness_left - 0042
specialize divisor_signed_balance_negate (a) - 0043
specialize divisor_signed_balance_negate (b) - 0044
specialize divisor_signed_balance_negate (x) - 0045
specialize divisor_signed_balance_negate (x1) - 0046
apply divisor_signed_balance_negate - 0047
exact hc_witness_witness_right_right - 0048
exact hn