Exact expanded PA statement
forall p a b. ((~(p = 1) /\ forall frm_prime_left_bpd_prime frm_prime_right_bpd_prime. p = frm_prime_left_bpd_prime * frm_prime_right_bpd_prime -> frm_prime_left_bpd_prime = 1 \/ frm_prime_right_bpd_prime = 1)) -> ~(exists bpd_factor_nondivisor_left. a = (p) * bpd_factor_nondivisor_left) -> ~(exists bpd_factor_nondivisor_right. b = (p) * bpd_factor_nondivisor_right) -> ~(exists bpd_factor_nondivisor_product. a * b = (p) * bpd_factor_nondivisor_product)Structural proof guide
A prime dividing neither factor does not divide their product.
Direct prerequisites: euclid_prime_dvd_product. The authored body proceeds by case analysis (1), intermediate claims (1).
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 0001
intro p - 0002
intro a - 0003
intro b - 0004
intro hp - 0005
intro ha - 0006
intro hb - 0007
intro hab - 0008
have hsplit : (exists u. a = p * u) \/ exists v. b = p * v - 0009
specialize euclid_prime_dvd_product p - 0010
specialize euclid_prime_dvd_product a - 0011
specialize euclid_prime_dvd_product b - 0012
apply euclid_prime_dvd_product - 0013
exact hp - 0014
exact hab - 0015
cases hsplit - 0016
apply ha - 0017
exact hsplit_left - 0018
apply hb - 0019
exact hsplit_right