Exact expanded PA statement
forall p a. ~(p = 0) -> (~(exists frm_factor_eca_canonical_not_divisor. a = p * frm_factor_eca_canonical_not_divisor)) -> (exists r. ~(r = 0) /\ ((exists wpo_gap_eca_canonical_bound. wpo_gap_eca_canonical_bound + S (r) = p) /\ (exists wpp_mod_left_eca_canonical_mod wpp_mod_right_eca_canonical_mod. (a) + p * wpp_mod_left_eca_canonical_mod = (r) + p * wpp_mod_right_eca_canonical_mod)))Structural proof guide
Generated structural guide
Every nonmultiple has a nonzero canonical remainder congruent to it.
Use the direct prerequisites division_remainder_exists, mul_comm, remainder_decomposition_to_mod_eq as previously established PA formulas.
The proof proceeds by case analysis (3), intermediate claims (4), equality transport (1), certified simplification (1).
Referenced ingredients
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v16 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
- 0001
intro p - 0002
intro a - 0003
intro hp0 - 0004
intro hnotdiv - 0005
have hdivision : exists q r. a = p * q + r /\ exists gap. gap + S r = p - 0006
specialize division_remainder_exists p - 0007
specialize division_remainder_exists a - 0008
apply division_remainder_exists - 0009
exact hp0 - 0010
cases hdivision - 0011
cases hdivision_witness - 0012
cases hdivision_witness_witness - 0013
have hr0 : ~(x1 = 0) - 0014
intro hrzero - 0015
apply hnotdiv - 0016
exists x - 0017
trans p * x + x1 - 0018
exact hdivision_witness_witness_left - 0019
rewrite hrzero - 0020
simp - 0021
have hdecomposition : a = x * p + x1 - 0022
trans p * x + x1 - 0023
exact hdivision_witness_witness_left - 0024
congr - 0025
apply mul_comm - 0026
refl - 0027
have hmod : exists wpp_mod_left_eca_canonical_proof_mod wpp_mod_right_eca_canonical_proof_mod. (a) + p * wpp_mod_left_eca_canonical_proof_mod = (x1) + p * wpp_mod_right_eca_canonical_proof_mod - 0028
specialize remainder_decomposition_to_mod_eq p - 0029
specialize remainder_decomposition_to_mod_eq a - 0030
specialize remainder_decomposition_to_mod_eq x - 0031
specialize remainder_decomposition_to_mod_eq x1 - 0032
apply remainder_decomposition_to_mod_eq - 0033
exact hdecomposition - 0034
exists x1 - 0035
split - 0036
exact hr0 - 0037
split - 0038
exact hdivision_witness_witness_right - 0039
exact hmod