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_multiplydomain pfa_factor_right_multiplydomain. (p) = pfa_factor_left_multiplydomain * pfa_factor_right_multiplydomain -> pfa_factor_left_multiplydomain = 1 \/ pfa_factor_right_multiplydomain = 1) -> (exists pfa_gap_multiplyleft. pfa_gap_multiplyleft + S (a) = (p)) -> (exists pfa_gap_multiplyright. pfa_gap_multiplyright + S (b) = (p)) -> exists c. (((exists pfa_gap_multiplyexistsleft. pfa_gap_multiplyexistsleft + S (a) = (p)) /\ (((exists pfa_gap_multiplyexistsright. pfa_gap_multiplyexistsright + S (b) = (p)) /\ ((((exists pfa_gap_multiplyexistsresultbound. pfa_gap_multiplyexistsresultbound + S (c) = (p)) /\ ((exists pfa_offset_left_multiplyexistsresultcongruence pfa_offset_right_multiplyexistsresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_multiplyexistsresultcongruence = (c) + (p) * pfa_offset_right_multiplyexistsresultcongruence)))))))))Constructive proof overview
Generated structural guide
Construct the unique canonical multiply output for every pair of residues.
The unchanged tactic script uses 2 declared prerequisites and contains 22 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
prime_nonzero Stable theorem; checked-use authorized hensel_canonical_residue_exists 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 hrL7–15
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hensel canonical residue exists.
- L7
have hr : exists c. (((exists pfa_gap_multiplyresiduebound. pfa_gap_multiplyresiduebound + S (c) = (p)) /\ ((exists pfa_offset_left_multiplyresiduecongruence pfa_offset_right_multiplyresiduecongruence. (a * b) + (p) * pfa_offset_left_multiplyresiduecongruence = (c) + (p) * pfa_offset_right_multiplyresiduecongruence)))) - L8
specialize hensel_canonical_residue_exists (p) - L9
specialize hensel_canonical_residue_exists (a * b) - L10
apply hensel_canonical_residue_exists - L11
intro hz - L12
specialize prime_nonzero (p) - L13
apply prime_nonzero - L14
exact hp - L15
exact hz
03Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
cases hr
04Construct an explicit witnessL17–17
Supply the displayed value, then prove that it has the required property.
- L17
exists x
05Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
split
06Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
exact ha
07Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
split
Original exact command ledger · 22 lines
- 0001
intro p - 0002
intro a - 0003
intro b - 0004
intro hp - 0005
intro ha - 0006
intro hb - 0007
have hr : exists c. (((exists pfa_gap_multiplyresiduebound. pfa_gap_multiplyresiduebound + S (c) = (p)) /\ ((exists pfa_offset_left_multiplyresiduecongruence pfa_offset_right_multiplyresiduecongruence. (a * b) + (p) * pfa_offset_left_multiplyresiduecongruence = (c) + (p) * pfa_offset_right_multiplyresiduecongruence)))) - 0008
specialize hensel_canonical_residue_exists (p) - 0009
specialize hensel_canonical_residue_exists (a * b) - 0010
apply hensel_canonical_residue_exists - 0011
intro hz - 0012
specialize prime_nonzero (p) - 0013
apply prime_nonzero - 0014
exact hp - 0015
exact hz - 0016
cases hr - 0017
exists x - 0018
split - 0019
exact ha - 0020
split - 0021
exact hb - 0022
exact hr_witness