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 p a b c s x y u v. (((exists pfa_gap_rightdistribution_sumleft. pfa_gap_rightdistribution_sumleft + S (b) = (p)) /\ (((exists pfa_gap_rightdistribution_sumright. pfa_gap_rightdistribution_sumright + S (c) = (p)) /\ ((((exists pfa_gap_rightdistribution_sumresultbound. pfa_gap_rightdistribution_sumresultbound + S (s) = (p)) /\ ((exists pfa_offset_left_rightdistribution_sumresultcongruence pfa_offset_right_rightdistribution_sumresultcongruence. ((b) + (c)) + (p) * pfa_offset_left_rightdistribution_sumresultcongruence = (s) + (p) * pfa_offset_right_rightdistribution_sumresultcongruence))))))))) -> (((exists pfa_gap_rightdistribution_leftleft. pfa_gap_rightdistribution_leftleft + S (s) = (p)) /\ (((exists pfa_gap_rightdistribution_leftright. pfa_gap_rightdistribution_leftright + S (a) = (p)) /\ ((((exists pfa_gap_rightdistribution_leftresultbound. pfa_gap_rightdistribution_leftresultbound + S (u) = (p)) /\ ((exists pfa_offset_left_rightdistribution_leftresultcongruence pfa_offset_right_rightdistribution_leftresultcongruence. ((s) * (a)) + (p) * pfa_offset_left_rightdistribution_leftresultcongruence = (u) + (p) * pfa_offset_right_rightdistribution_leftresultcongruence))))))))) -> (((exists pfa_gap_rightdistribution_firstleft. pfa_gap_rightdistribution_firstleft + S (b) = (p)) /\ (((exists pfa_gap_rightdistribution_firstright. pfa_gap_rightdistribution_firstright + S (a) = (p)) /\ ((((exists pfa_gap_rightdistribution_firstresultbound. pfa_gap_rightdistribution_firstresultbound + S (x) = (p)) /\ ((exists pfa_offset_left_rightdistribution_firstresultcongruence pfa_offset_right_rightdistribution_firstresultcongruence. ((b) * (a)) + (p) * pfa_offset_left_rightdistribution_firstresultcongruence = (x) + (p) * pfa_offset_right_rightdistribution_firstresultcongruence))))))))) -> (((exists pfa_gap_rightdistribution_secondleft. pfa_gap_rightdistribution_secondleft + S (c) = (p)) /\ (((exists pfa_gap_rightdistribution_secondright. pfa_gap_rightdistribution_secondright + S (a) = (p)) /\ ((((exists pfa_gap_rightdistribution_secondresultbound. pfa_gap_rightdistribution_secondresultbound + S (y) = (p)) /\ ((exists pfa_offset_left_rightdistribution_secondresultcongruence pfa_offset_right_rightdistribution_secondresultcongruence. ((c) * (a)) + (p) * pfa_offset_left_rightdistribution_secondresultcongruence = (y) + (p) * pfa_offset_right_rightdistribution_secondresultcongruence))))))))) -> (((exists pfa_gap_rightdistribution_rightleft. pfa_gap_rightdistribution_rightleft + S (x) = (p)) /\ (((exists pfa_gap_rightdistribution_rightright. pfa_gap_rightdistribution_rightright + S (y) = (p)) /\ ((((exists pfa_gap_rightdistribution_rightresultbound. pfa_gap_rightdistribution_rightresultbound + S (v) = (p)) /\ ((exists pfa_offset_left_rightdistribution_rightresultcongruence pfa_offset_right_rightdistribution_rightresultcongruence. ((x) + (y)) + (p) * pfa_offset_left_rightdistribution_rightresultcongruence = (v) + (p) * pfa_offset_right_rightdistribution_rightresultcongruence))))))))) -> u = vConstructive proof overview
Generated structural guide
Actual right distributivity of multiplication over addition on bounded representatives.
The unchanged tactic script uses 6 declared prerequisites and contains 77 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
mod_eq_mul_right Stable theorem; checked-use authorized mod_eq_trans Stable theorem; checked-use authorized mod_eq_add Stable theorem; checked-use authorized add_mul Stable theorem; checked-use authorized binary_canonical_residue_functional Alpha theorem; checked-use authorized FP0004 prime_field_residue_input_equalDirect 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–14
03Separate the logical casesL15–24
04Separate the logical casesL25–29
05Establish hlL30–30
Establish this local claim before using it. It is not an additional assumption.
- L30
have hl : ((exists pfa_gap_rightdistribution_raw_leftbound. pfa_gap_rightdistribution_raw_leftbound + S (u) = (p)) /\ ((exists pfa_offset_left_rightdistribution_raw_leftcongruence pfa_offset_right_rightdistribution_raw_leftcongruence. ((b + c) * a) + (p) * pfa_offset_left_rightdistribution_raw_leftcongruence = (u) + (p) * pfa_offset_right_rightdistribution_raw_leftcongruence)))
06Separate the logical casesL31–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L31
split
07Use earlier factsL32–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L32
exact hleft_right_right_left - L33
specialize mod_eq_trans (p) - L34
specialize mod_eq_trans ((b + c) * a) - L35
specialize mod_eq_trans (s * a) - L36
specialize mod_eq_trans (u) - L37
apply mod_eq_trans - L38
specialize mod_eq_mul_right (p) - L39
specialize mod_eq_mul_right (b + c) - L40
specialize mod_eq_mul_right (s) - L41
specialize mod_eq_mul_right (a)
08Use earlier factsL42–44
09Establish hrL45–45
Establish this local claim before using it. It is not an additional assumption.
- L45
have hr : ((exists pfa_gap_rightdistribution_raw_rightbound. pfa_gap_rightdistribution_raw_rightbound + S (v) = (p)) /\ ((exists pfa_offset_left_rightdistribution_raw_rightcongruence pfa_offset_right_rightdistribution_raw_rightcongruence. (b * a + c * a) + (p) * pfa_offset_left_rightdistribution_raw_rightcongruence = (v) + (p) * pfa_offset_right_rightdistribution_raw_rightcongruence)))
10Separate the logical casesL46–46
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L46
split
11Use earlier factsL47–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
exact hright_right_right_left - L48
specialize mod_eq_trans (p) - L49
specialize mod_eq_trans (b * a + c * a) - L50
specialize mod_eq_trans (x + y) - L51
specialize mod_eq_trans (v) - L52
apply mod_eq_trans - L53
specialize mod_eq_add (p) - L54
specialize mod_eq_add (b * a) - L55
specialize mod_eq_add (x) - L56
specialize mod_eq_add (c * a)
12Use earlier factsL57–66
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L57
specialize mod_eq_add (y) - L58
apply mod_eq_add - L59
exact hfirst_right_right_right - L60
exact hsecond_right_right_right - L61
exact hright_right_right_right - L62
specialize binary_canonical_residue_functional (p) - L63
specialize binary_canonical_residue_functional ((b + c) * a) - L64
specialize binary_canonical_residue_functional (u) - L65
specialize binary_canonical_residue_functional (v) - L66
apply binary_canonical_residue_functional
13Use earlier factsL67–76
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L67
exact hl - L68
specialize prime_field_residue_input_equal (p) - L69
specialize prime_field_residue_input_equal ((b + c) * a) - L70
specialize prime_field_residue_input_equal (b * a + c * a) - L71
specialize prime_field_residue_input_equal (v) - L72
apply prime_field_residue_input_equal - L73
specialize add_mul (b) - L74
specialize add_mul (c) - L75
specialize add_mul (a) - L76
apply add_mul
14Use earlier factsL77–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L77
exact hr
Original exact command ledger · 77 lines
- 0001
intro p - 0002
intro a - 0003
intro b - 0004
intro c - 0005
intro s - 0006
intro x - 0007
intro y - 0008
intro u - 0009
intro v - 0010
intro hsum - 0011
intro hleft - 0012
intro hfirst - 0013
intro hsecond - 0014
intro hright - 0015
cases hsum - 0016
cases hsum_right - 0017
cases hsum_right_right - 0018
cases hleft - 0019
cases hleft_right - 0020
cases hleft_right_right - 0021
cases hfirst - 0022
cases hfirst_right - 0023
cases hfirst_right_right - 0024
cases hsecond - 0025
cases hsecond_right - 0026
cases hsecond_right_right - 0027
cases hright - 0028
cases hright_right - 0029
cases hright_right_right - 0030
have hl : ((exists pfa_gap_rightdistribution_raw_leftbound. pfa_gap_rightdistribution_raw_leftbound + S (u) = (p)) /\ ((exists pfa_offset_left_rightdistribution_raw_leftcongruence pfa_offset_right_rightdistribution_raw_leftcongruence. ((b + c) * a) + (p) * pfa_offset_left_rightdistribution_raw_leftcongruence = (u) + (p) * pfa_offset_right_rightdistribution_raw_leftcongruence))) - 0031
split - 0032
exact hleft_right_right_left - 0033
specialize mod_eq_trans (p) - 0034
specialize mod_eq_trans ((b + c) * a) - 0035
specialize mod_eq_trans (s * a) - 0036
specialize mod_eq_trans (u) - 0037
apply mod_eq_trans - 0038
specialize mod_eq_mul_right (p) - 0039
specialize mod_eq_mul_right (b + c) - 0040
specialize mod_eq_mul_right (s) - 0041
specialize mod_eq_mul_right (a) - 0042
apply mod_eq_mul_right - 0043
exact hsum_right_right_right - 0044
exact hleft_right_right_right - 0045
have hr : ((exists pfa_gap_rightdistribution_raw_rightbound. pfa_gap_rightdistribution_raw_rightbound + S (v) = (p)) /\ ((exists pfa_offset_left_rightdistribution_raw_rightcongruence pfa_offset_right_rightdistribution_raw_rightcongruence. (b * a + c * a) + (p) * pfa_offset_left_rightdistribution_raw_rightcongruence = (v) + (p) * pfa_offset_right_rightdistribution_raw_rightcongruence))) - 0046
split - 0047
exact hright_right_right_left - 0048
specialize mod_eq_trans (p) - 0049
specialize mod_eq_trans (b * a + c * a) - 0050
specialize mod_eq_trans (x + y) - 0051
specialize mod_eq_trans (v) - 0052
apply mod_eq_trans - 0053
specialize mod_eq_add (p) - 0054
specialize mod_eq_add (b * a) - 0055
specialize mod_eq_add (x) - 0056
specialize mod_eq_add (c * a) - 0057
specialize mod_eq_add (y) - 0058
apply mod_eq_add - 0059
exact hfirst_right_right_right - 0060
exact hsecond_right_right_right - 0061
exact hright_right_right_right - 0062
specialize binary_canonical_residue_functional (p) - 0063
specialize binary_canonical_residue_functional ((b + c) * a) - 0064
specialize binary_canonical_residue_functional (u) - 0065
specialize binary_canonical_residue_functional (v) - 0066
apply binary_canonical_residue_functional - 0067
exact hl - 0068
specialize prime_field_residue_input_equal (p) - 0069
specialize prime_field_residue_input_equal ((b + c) * a) - 0070
specialize prime_field_residue_input_equal (b * a + c * a) - 0071
specialize prime_field_residue_input_equal (v) - 0072
apply prime_field_residue_input_equal - 0073
specialize add_mul (b) - 0074
specialize add_mul (c) - 0075
specialize add_mul (a) - 0076
apply add_mul - 0077
exact hr