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. (~((p) = 1) /\ forall pfa_factor_left_scalar_prime pfa_factor_right_scalar_prime. (p) = pfa_factor_left_scalar_prime * pfa_factor_right_scalar_prime -> pfa_factor_left_scalar_prime = 1 \/ pfa_factor_right_scalar_prime = 1) -> (exists pfa_gap_scalar_left. pfa_gap_scalar_left + S (a) = (p)) -> (exists pfa_gap_scalar_right. pfa_gap_scalar_right + S (b) = (p)) -> exists r. (((exists pfa_gap_scalar_subtractleft. pfa_gap_scalar_subtractleft + S (b) = (p)) /\ (((exists pfa_gap_scalar_subtractright. pfa_gap_scalar_subtractright + S (r) = (p)) /\ ((((exists pfa_gap_scalar_subtractresultbound. pfa_gap_scalar_subtractresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_scalar_subtractresultcongruence pfa_offset_right_scalar_subtractresultcongruence. ((b) + (r)) + (p) * pfa_offset_left_scalar_subtractresultcongruence = (a) + (p) * pfa_offset_right_scalar_subtractresultcongruence)))))))))Constructive proof overview
Generated structural guide
Construct a genuine bounded solution of b+r=a using actual additive inverse and addition witnesses.
The unchanged tactic script uses 4 declared prerequisites and contains 62 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
prime_field_negate_exists Alpha theorem; checked-use authorized prime_field_add_exists Alpha theorem; checked-use authorized prime_field_add_associative Alpha theorem; checked-use authorized prime_field_add_zero_left 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–6
02Establish hnL7–12
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field negate exists.
- L7
have hn : exists n. (((exists pfa_gap_scalar_negadditionleft. pfa_gap_scalar_negadditionleft + S (b) = (p)) /\ (((exists pfa_gap_scalar_negadditionright. pfa_gap_scalar_negadditionright + S (n) = (p)) /\ ((((exists pfa_gap_scalar_negadditionresultbound. pfa_gap_scalar_negadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_scalar_negadditionresultcongruence pfa_offset_right_scalar_negadditionresultcongruence. ((b) + (n)) + (p) * pfa_offset_left_scalar_negadditionresultcongruence = (0) + (p) * pfa_offset_right_scalar_negadditionresultcongruence))))))))) - L8
specialize prime_field_negate_exists (p) - L9
specialize prime_field_negate_exists (b) - L10
apply prime_field_negate_exists - L11
exact hp - L12
exact hb
03Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
cases hn
04Establish hnbL14–14
Establish this local claim before using it. It is not an additional assumption.
- L14
have hnb : exists pfa_gap_scalar_neg_bound. pfa_gap_scalar_neg_bound + S (x) = (p)
05Separate the logical casesL15–16
06Use earlier factsL17–17
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L17
exact hn_witness_right_left
07Establish hrL18–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field add exists.
- L18
have hr : exists r. (((exists pfa_gap_scalar_resultleft. pfa_gap_scalar_resultleft + S (x) = (p)) /\ (((exists pfa_gap_scalar_resultright. pfa_gap_scalar_resultright + S (a) = (p)) /\ ((((exists pfa_gap_scalar_resultresultbound. pfa_gap_scalar_resultresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_scalar_resultresultcongruence pfa_offset_right_scalar_resultresultcongruence. ((x) + (a)) + (p) * pfa_offset_left_scalar_resultresultcongruence = (r) + (p) * pfa_offset_right_scalar_resultresultcongruence))))))))) - L19
specialize prime_field_add_exists (p) - L20
specialize prime_field_add_exists (x) - L21
specialize prime_field_add_exists (a) - L22
apply prime_field_add_exists - L23
exact hp - L24
exact hnb - L25
exact ha
08Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
cases hr
09Establish hrbL27–27
Establish this local claim before using it. It is not an additional assumption.
- L27
have hrb : exists pfa_gap_scalar_result_bound. pfa_gap_scalar_result_bound + S (x1) = (p)
10Separate the logical casesL28–30
11Use earlier factsL31–31
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
exact hr_witness_right_right_left
12Establish htL32–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field add exists.
- L32
have ht : exists t. (((exists pfa_gap_scalar_check_sumleft. pfa_gap_scalar_check_sumleft + S (b) = (p)) /\ (((exists pfa_gap_scalar_check_sumright. pfa_gap_scalar_check_sumright + S (x1) = (p)) /\ ((((exists pfa_gap_scalar_check_sumresultbound. pfa_gap_scalar_check_sumresultbound + S (t) = (p)) /\ ((exists pfa_offset_left_scalar_check_sumresultcongruence pfa_offset_right_scalar_check_sumresultcongruence. ((b) + (x1)) + (p) * pfa_offset_left_scalar_check_sumresultcongruence = (t) + (p) * pfa_offset_right_scalar_check_sumresultcongruence))))))))) - L33
specialize prime_field_add_exists (p) - L34
specialize prime_field_add_exists (b) - L35
specialize prime_field_add_exists (x1) - L36
apply prime_field_add_exists - L37
exact hp - L38
exact hb - L39
exact hrb
13Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
cases ht
14Establish heqL41–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field add associative.
- L41
have heq : a=x2 - L42
specialize prime_field_add_associative (p) - L43
specialize prime_field_add_associative (b) - L44
specialize prime_field_add_associative (x) - L45
specialize prime_field_add_associative (a) - L46
specialize prime_field_add_associative (0) - L47
specialize prime_field_add_associative (x1) - L48
specialize prime_field_add_associative (a) - L49
specialize prime_field_add_associative (x2) - L50
apply prime_field_add_associative
15Use earlier factsL51–58
16Construct an explicit witnessL59–59
Supply the displayed value, then prove that it has the required property.
- L59
exists x1
17Calculate and transport equalitiesL60–61
18Use earlier factsL62–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L62
exact ht_witness
Original exact command ledger · 62 lines
- 0001
intro p - 0002
intro a - 0003
intro b - 0004
intro hp - 0005
intro ha - 0006
intro hb - 0007
have hn : exists n. (((exists pfa_gap_scalar_negadditionleft. pfa_gap_scalar_negadditionleft + S (b) = (p)) /\ (((exists pfa_gap_scalar_negadditionright. pfa_gap_scalar_negadditionright + S (n) = (p)) /\ ((((exists pfa_gap_scalar_negadditionresultbound. pfa_gap_scalar_negadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_scalar_negadditionresultcongruence pfa_offset_right_scalar_negadditionresultcongruence. ((b) + (n)) + (p) * pfa_offset_left_scalar_negadditionresultcongruence = (0) + (p) * pfa_offset_right_scalar_negadditionresultcongruence))))))))) - 0008
specialize prime_field_negate_exists (p) - 0009
specialize prime_field_negate_exists (b) - 0010
apply prime_field_negate_exists - 0011
exact hp - 0012
exact hb - 0013
cases hn - 0014
have hnb : exists pfa_gap_scalar_neg_bound. pfa_gap_scalar_neg_bound + S (x) = (p) - 0015
cases hn_witness - 0016
cases hn_witness_right - 0017
exact hn_witness_right_left - 0018
have hr : exists r. (((exists pfa_gap_scalar_resultleft. pfa_gap_scalar_resultleft + S (x) = (p)) /\ (((exists pfa_gap_scalar_resultright. pfa_gap_scalar_resultright + S (a) = (p)) /\ ((((exists pfa_gap_scalar_resultresultbound. pfa_gap_scalar_resultresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_scalar_resultresultcongruence pfa_offset_right_scalar_resultresultcongruence. ((x) + (a)) + (p) * pfa_offset_left_scalar_resultresultcongruence = (r) + (p) * pfa_offset_right_scalar_resultresultcongruence))))))))) - 0019
specialize prime_field_add_exists (p) - 0020
specialize prime_field_add_exists (x) - 0021
specialize prime_field_add_exists (a) - 0022
apply prime_field_add_exists - 0023
exact hp - 0024
exact hnb - 0025
exact ha - 0026
cases hr - 0027
have hrb : exists pfa_gap_scalar_result_bound. pfa_gap_scalar_result_bound + S (x1) = (p) - 0028
cases hr_witness - 0029
cases hr_witness_right - 0030
cases hr_witness_right_right - 0031
exact hr_witness_right_right_left - 0032
have ht : exists t. (((exists pfa_gap_scalar_check_sumleft. pfa_gap_scalar_check_sumleft + S (b) = (p)) /\ (((exists pfa_gap_scalar_check_sumright. pfa_gap_scalar_check_sumright + S (x1) = (p)) /\ ((((exists pfa_gap_scalar_check_sumresultbound. pfa_gap_scalar_check_sumresultbound + S (t) = (p)) /\ ((exists pfa_offset_left_scalar_check_sumresultcongruence pfa_offset_right_scalar_check_sumresultcongruence. ((b) + (x1)) + (p) * pfa_offset_left_scalar_check_sumresultcongruence = (t) + (p) * pfa_offset_right_scalar_check_sumresultcongruence))))))))) - 0033
specialize prime_field_add_exists (p) - 0034
specialize prime_field_add_exists (b) - 0035
specialize prime_field_add_exists (x1) - 0036
apply prime_field_add_exists - 0037
exact hp - 0038
exact hb - 0039
exact hrb - 0040
cases ht - 0041
have heq : a=x2 - 0042
specialize prime_field_add_associative (p) - 0043
specialize prime_field_add_associative (b) - 0044
specialize prime_field_add_associative (x) - 0045
specialize prime_field_add_associative (a) - 0046
specialize prime_field_add_associative (0) - 0047
specialize prime_field_add_associative (x1) - 0048
specialize prime_field_add_associative (a) - 0049
specialize prime_field_add_associative (x2) - 0050
apply prime_field_add_associative - 0051
exact hn_witness - 0052
specialize prime_field_add_zero_left (p) - 0053
specialize prime_field_add_zero_left (a) - 0054
apply prime_field_add_zero_left - 0055
exact hp - 0056
exact ha - 0057
exact hr_witness - 0058
exact ht_witness - 0059
exists x1 - 0060
rewrite heq - 0061
rewrite heq - 0062
exact ht_witness