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 z. (~((p) = 1) /\ forall pfa_factor_left_cancel_mul_domain pfa_factor_right_cancel_mul_domain. (p) = pfa_factor_left_cancel_mul_domain * pfa_factor_right_cancel_mul_domain -> pfa_factor_left_cancel_mul_domain = 1 \/ pfa_factor_right_cancel_mul_domain = 1) -> ~(a = 0) -> (((exists pfa_gap_cancel_mul_firstleft. pfa_gap_cancel_mul_firstleft + S (a) = (p)) /\ (((exists pfa_gap_cancel_mul_firstright. pfa_gap_cancel_mul_firstright + S (b) = (p)) /\ ((((exists pfa_gap_cancel_mul_firstresultbound. pfa_gap_cancel_mul_firstresultbound + S (z) = (p)) /\ ((exists pfa_offset_left_cancel_mul_firstresultcongruence pfa_offset_right_cancel_mul_firstresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_cancel_mul_firstresultcongruence = (z) + (p) * pfa_offset_right_cancel_mul_firstresultcongruence))))))))) -> (((exists pfa_gap_cancel_mul_secondleft. pfa_gap_cancel_mul_secondleft + S (a) = (p)) /\ (((exists pfa_gap_cancel_mul_secondright. pfa_gap_cancel_mul_secondright + S (c) = (p)) /\ ((((exists pfa_gap_cancel_mul_secondresultbound. pfa_gap_cancel_mul_secondresultbound + S (z) = (p)) /\ ((exists pfa_offset_left_cancel_mul_secondresultcongruence pfa_offset_right_cancel_mul_secondresultcongruence. ((a) * (c)) + (p) * pfa_offset_left_cancel_mul_secondresultcongruence = (z) + (p) * pfa_offset_right_cancel_mul_secondresultcongruence))))))))) -> b = cConstructive proof overview
Generated structural guide
Cancellation by any nonzero element is proved, not assumed from a field certificate.
The unchanged tactic script uses 6 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
mod_eq_bounded_unique Stable theorem; checked-use authorized mod_eq_cancel_coprime Stable theorem; checked-use authorized prime_nonzero Stable theorem; checked-use authorized FP0024 prime_field_nonzero_coprime mod_eq_trans Stable theorem; checked-use authorized mod_eq_symm Stable 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.
Named ingredients (1)
01Fix variables and assumptionsL1–9
02Separate the logical casesL10–15
03Use earlier factsL16–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L16
specialize mod_eq_bounded_unique (p) - L17
specialize mod_eq_bounded_unique (b) - L18
specialize mod_eq_bounded_unique (c) - L19
apply mod_eq_bounded_unique - L20
exact hb_right_left - L21
exact hc_right_left - L22
specialize mod_eq_cancel_coprime (p) - L23
specialize mod_eq_cancel_coprime (a) - L24
specialize mod_eq_cancel_coprime (b) - L25
specialize mod_eq_cancel_coprime (c)
04Use earlier factsL26–26
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L26
apply mod_eq_cancel_coprime
05Fix variables and assumptionsL27–27
Work with arbitrary variables or the premises of the current implication.
- L27
intro hz
06Use earlier factsL28–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
07Use earlier factsL38–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
08Use earlier factsL48–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L48
exact hc_right_right_right
Original exact command ledger · 48 lines
- 0001
intro p - 0002
intro a - 0003
intro b - 0004
intro c - 0005
intro z - 0006
intro hp - 0007
intro hn - 0008
intro hb - 0009
intro hc - 0010
cases hb - 0011
cases hb_right - 0012
cases hb_right_right - 0013
cases hc - 0014
cases hc_right - 0015
cases hc_right_right - 0016
specialize mod_eq_bounded_unique (p) - 0017
specialize mod_eq_bounded_unique (b) - 0018
specialize mod_eq_bounded_unique (c) - 0019
apply mod_eq_bounded_unique - 0020
exact hb_right_left - 0021
exact hc_right_left - 0022
specialize mod_eq_cancel_coprime (p) - 0023
specialize mod_eq_cancel_coprime (a) - 0024
specialize mod_eq_cancel_coprime (b) - 0025
specialize mod_eq_cancel_coprime (c) - 0026
apply mod_eq_cancel_coprime - 0027
intro hz - 0028
specialize prime_nonzero (p) - 0029
apply prime_nonzero - 0030
exact hp - 0031
exact hz - 0032
specialize prime_field_nonzero_coprime (p) - 0033
specialize prime_field_nonzero_coprime (a) - 0034
apply prime_field_nonzero_coprime - 0035
exact hp - 0036
exact hb_left - 0037
exact hn - 0038
specialize mod_eq_trans (p) - 0039
specialize mod_eq_trans (a * b) - 0040
specialize mod_eq_trans (z) - 0041
specialize mod_eq_trans (a * c) - 0042
apply mod_eq_trans - 0043
exact hb_right_right_right - 0044
specialize mod_eq_symm (p) - 0045
specialize mod_eq_symm (a * c) - 0046
specialize mod_eq_symm (z) - 0047
apply mod_eq_symm - 0048
exact hc_right_right_right