Exact expanded first-order arithmetic statement
forall p a b c s x y u v. (((exists pfa_gap_leftdistribution_sumleft. pfa_gap_leftdistribution_sumleft + S (b) = (p)) /\ (((exists pfa_gap_leftdistribution_sumright. pfa_gap_leftdistribution_sumright + S (c) = (p)) /\ ((((exists pfa_gap_leftdistribution_sumresultbound. pfa_gap_leftdistribution_sumresultbound + S (s) = (p)) /\ ((exists pfa_offset_left_leftdistribution_sumresultcongruence pfa_offset_right_leftdistribution_sumresultcongruence. ((b) + (c)) + (p) * pfa_offset_left_leftdistribution_sumresultcongruence = (s) + (p) * pfa_offset_right_leftdistribution_sumresultcongruence))))))))) -> (((exists pfa_gap_leftdistribution_leftleft. pfa_gap_leftdistribution_leftleft + S (a) = (p)) /\ (((exists pfa_gap_leftdistribution_leftright. pfa_gap_leftdistribution_leftright + S (s) = (p)) /\ ((((exists pfa_gap_leftdistribution_leftresultbound. pfa_gap_leftdistribution_leftresultbound + S (u) = (p)) /\ ((exists pfa_offset_left_leftdistribution_leftresultcongruence pfa_offset_right_leftdistribution_leftresultcongruence. ((a) * (s)) + (p) * pfa_offset_left_leftdistribution_leftresultcongruence = (u) + (p) * pfa_offset_right_leftdistribution_leftresultcongruence))))))))) -> (((exists pfa_gap_leftdistribution_firstleft. pfa_gap_leftdistribution_firstleft + S (a) = (p)) /\ (((exists pfa_gap_leftdistribution_firstright. pfa_gap_leftdistribution_firstright + S (b) = (p)) /\ ((((exists pfa_gap_leftdistribution_firstresultbound. pfa_gap_leftdistribution_firstresultbound + S (x) = (p)) /\ ((exists pfa_offset_left_leftdistribution_firstresultcongruence pfa_offset_right_leftdistribution_firstresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_leftdistribution_firstresultcongruence = (x) + (p) * pfa_offset_right_leftdistribution_firstresultcongruence))))))))) -> (((exists pfa_gap_leftdistribution_secondleft. pfa_gap_leftdistribution_secondleft + S (a) = (p)) /\ (((exists pfa_gap_leftdistribution_secondright. pfa_gap_leftdistribution_secondright + S (c) = (p)) /\ ((((exists pfa_gap_leftdistribution_secondresultbound. pfa_gap_leftdistribution_secondresultbound + S (y) = (p)) /\ ((exists pfa_offset_left_leftdistribution_secondresultcongruence pfa_offset_right_leftdistribution_secondresultcongruence. ((a) * (c)) + (p) * pfa_offset_left_leftdistribution_secondresultcongruence = (y) + (p) * pfa_offset_right_leftdistribution_secondresultcongruence))))))))) -> (((exists pfa_gap_leftdistribution_rightleft. pfa_gap_leftdistribution_rightleft + S (x) = (p)) /\ (((exists pfa_gap_leftdistribution_rightright. pfa_gap_leftdistribution_rightright + S (y) = (p)) /\ ((((exists pfa_gap_leftdistribution_rightresultbound. pfa_gap_leftdistribution_rightresultbound + S (v) = (p)) /\ ((exists pfa_offset_left_leftdistribution_rightresultcongruence pfa_offset_right_leftdistribution_rightresultcongruence. ((x) + (y)) + (p) * pfa_offset_left_leftdistribution_rightresultcongruence = (v) + (p) * pfa_offset_right_leftdistribution_rightresultcongruence))))))))) -> u = vConstructive proof overview
Generated structural guide
Actual left distributivity of multiplication over addition on bounded representatives.
The unchanged tactic script uses 6 declared prerequisites and contains 77 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
mod_eq_mul_left Alpha theorem; checked-use authorized mod_eq_trans Alpha theorem; checked-use authorized mod_eq_add Alpha theorem; checked-use authorized mul_add Alpha 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. 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.
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_leftdistribution_raw_leftbound. pfa_gap_leftdistribution_raw_leftbound + S (u) = (p)) /\ ((exists pfa_offset_left_leftdistribution_raw_leftcongruence pfa_offset_right_leftdistribution_raw_leftcongruence. (a * (b + c)) + (p) * pfa_offset_left_leftdistribution_raw_leftcongruence = (u) + (p) * pfa_offset_right_leftdistribution_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 (a * (b + c)) - L35
specialize mod_eq_trans (a * s) - L36
specialize mod_eq_trans (u) - L37
apply mod_eq_trans - L38
specialize mod_eq_mul_left (p) - L39
specialize mod_eq_mul_left (b + c) - L40
specialize mod_eq_mul_left (s) - L41
specialize mod_eq_mul_left (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_leftdistribution_raw_rightbound. pfa_gap_leftdistribution_raw_rightbound + S (v) = (p)) /\ ((exists pfa_offset_left_leftdistribution_raw_rightcongruence pfa_offset_right_leftdistribution_raw_rightcongruence. (a * b + a * c) + (p) * pfa_offset_left_leftdistribution_raw_rightcongruence = (v) + (p) * pfa_offset_right_leftdistribution_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 (a * b + a * c) - 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 (a * b) - L55
specialize mod_eq_add (x) - L56
specialize mod_eq_add (a * c)
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 (a * (b + c)) - 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 (a * (b + c)) - L70
specialize prime_field_residue_input_equal (a * b + a * c) - L71
specialize prime_field_residue_input_equal (v) - L72
apply prime_field_residue_input_equal - L73
specialize mul_add (a) - L74
specialize mul_add (b) - L75
specialize mul_add (c) - L76
apply mul_add
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_leftdistribution_raw_leftbound. pfa_gap_leftdistribution_raw_leftbound + S (u) = (p)) /\ ((exists pfa_offset_left_leftdistribution_raw_leftcongruence pfa_offset_right_leftdistribution_raw_leftcongruence. (a * (b + c)) + (p) * pfa_offset_left_leftdistribution_raw_leftcongruence = (u) + (p) * pfa_offset_right_leftdistribution_raw_leftcongruence))) - 0031
split - 0032
exact hleft_right_right_left - 0033
specialize mod_eq_trans (p) - 0034
specialize mod_eq_trans (a * (b + c)) - 0035
specialize mod_eq_trans (a * s) - 0036
specialize mod_eq_trans (u) - 0037
apply mod_eq_trans - 0038
specialize mod_eq_mul_left (p) - 0039
specialize mod_eq_mul_left (b + c) - 0040
specialize mod_eq_mul_left (s) - 0041
specialize mod_eq_mul_left (a) - 0042
apply mod_eq_mul_left - 0043
exact hsum_right_right_right - 0044
exact hleft_right_right_right - 0045
have hr : ((exists pfa_gap_leftdistribution_raw_rightbound. pfa_gap_leftdistribution_raw_rightbound + S (v) = (p)) /\ ((exists pfa_offset_left_leftdistribution_raw_rightcongruence pfa_offset_right_leftdistribution_raw_rightcongruence. (a * b + a * c) + (p) * pfa_offset_left_leftdistribution_raw_rightcongruence = (v) + (p) * pfa_offset_right_leftdistribution_raw_rightcongruence))) - 0046
split - 0047
exact hright_right_right_left - 0048
specialize mod_eq_trans (p) - 0049
specialize mod_eq_trans (a * b + a * c) - 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 (a * b) - 0055
specialize mod_eq_add (x) - 0056
specialize mod_eq_add (a * c) - 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 (a * (b + c)) - 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 (a * (b + c)) - 0070
specialize prime_field_residue_input_equal (a * b + a * c) - 0071
specialize prime_field_residue_input_equal (v) - 0072
apply prime_field_residue_input_equal - 0073
specialize mul_add (a) - 0074
specialize mul_add (b) - 0075
specialize mul_add (c) - 0076
apply mul_add - 0077
exact hr