Exact expanded PA statement
forall p q r n. (exists pod_odd_multiplier. p = 2 * pod_odd_multiplier + 1) -> n = p * q + r -> ((((exists pod_even_division_n_even. n = 2 * pod_even_division_n_even) -> (exists pod_even_division_qr_even. q + r = 2 * pod_even_division_qr_even)) /\ ((exists pod_even_division_qr_even. q + r = 2 * pod_even_division_qr_even) -> (exists pod_even_division_n_even. n = 2 * pod_even_division_n_even))))Structural proof guide
Generated structural guide
For odd divisor coefficient p, n=p*q+r is even exactly when q+r is even.
Use the direct prerequisites odd_multiplier_even_product_iff, odd_multiplier_odd_product_iff, even_sum_iff_same_parity as previously established PA formulas.
The proof proceeds by case analysis (10), intermediate claims (8), equality transport (2).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA00C7 odd_multiplier_even_product_iff PA00C8 odd_multiplier_odd_product_iff PA00CB even_sum_iff_same_parityDirect 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 q - 0003
intro r - 0004
intro n - 0005
intro hp - 0006
intro hdivision - 0007
have hmul_even : (((exists pod_even_proof_pq_even. p * q = 2 * pod_even_proof_pq_even) -> (exists pod_even_proof_q_even. q = 2 * pod_even_proof_q_even)) /\ ((exists pod_even_proof_q_even. q = 2 * pod_even_proof_q_even) -> (exists pod_even_proof_pq_even. p * q = 2 * pod_even_proof_pq_even))) - 0008
specialize odd_multiplier_even_product_iff p - 0009
specialize odd_multiplier_even_product_iff q - 0010
apply odd_multiplier_even_product_iff - 0011
exact hp - 0012
have hmul_odd : (((exists pod_odd_proof_pq_odd. p * q = 2 * pod_odd_proof_pq_odd + 1) -> (exists pod_odd_proof_q_odd. q = 2 * pod_odd_proof_q_odd + 1)) /\ ((exists pod_odd_proof_q_odd. q = 2 * pod_odd_proof_q_odd + 1) -> (exists pod_odd_proof_pq_odd. p * q = 2 * pod_odd_proof_pq_odd + 1))) - 0013
specialize odd_multiplier_odd_product_iff p - 0014
specialize odd_multiplier_odd_product_iff q - 0015
apply odd_multiplier_odd_product_iff - 0016
exact hp - 0017
have hleft : (((exists pod_even_proof_pqr_even. p * q + r = 2 * pod_even_proof_pqr_even) -> ((((exists pod_even_proof_pq_even. p * q = 2 * pod_even_proof_pq_even) /\ (exists pod_even_proof_r_even. r = 2 * pod_even_proof_r_even)) \/ ((exists pod_odd_proof_pq_odd. p * q = 2 * pod_odd_proof_pq_odd + 1) /\ (exists pod_odd_proof_r_odd. r = 2 * pod_odd_proof_r_odd + 1))))) /\ (((((exists pod_even_proof_pq_even. p * q = 2 * pod_even_proof_pq_even) /\ (exists pod_even_proof_r_even. r = 2 * pod_even_proof_r_even)) \/ ((exists pod_odd_proof_pq_odd. p * q = 2 * pod_odd_proof_pq_odd + 1) /\ (exists pod_odd_proof_r_odd. r = 2 * pod_odd_proof_r_odd + 1)))) -> (exists pod_even_proof_pqr_even. p * q + r = 2 * pod_even_proof_pqr_even))) - 0018
specialize even_sum_iff_same_parity (p * q) - 0019
specialize even_sum_iff_same_parity r - 0020
exact even_sum_iff_same_parity - 0021
have hright : (((exists pod_even_proof_qr_even. q + r = 2 * pod_even_proof_qr_even) -> ((((exists pod_even_proof_q_even. q = 2 * pod_even_proof_q_even) /\ (exists pod_even_proof_r_even. r = 2 * pod_even_proof_r_even)) \/ ((exists pod_odd_proof_q_odd. q = 2 * pod_odd_proof_q_odd + 1) /\ (exists pod_odd_proof_r_odd. r = 2 * pod_odd_proof_r_odd + 1))))) /\ (((((exists pod_even_proof_q_even. q = 2 * pod_even_proof_q_even) /\ (exists pod_even_proof_r_even. r = 2 * pod_even_proof_r_even)) \/ ((exists pod_odd_proof_q_odd. q = 2 * pod_odd_proof_q_odd + 1) /\ (exists pod_odd_proof_r_odd. r = 2 * pod_odd_proof_r_odd + 1)))) -> (exists pod_even_proof_qr_even. q + r = 2 * pod_even_proof_qr_even))) - 0022
specialize even_sum_iff_same_parity q - 0023
specialize even_sum_iff_same_parity r - 0024
exact even_sum_iff_same_parity - 0025
cases hmul_even - 0026
cases hmul_odd - 0027
cases hleft - 0028
cases hright - 0029
split - 0030
intro hn - 0031
have hpqr : exists pod_even_proof_pqr_even. p * q + r = 2 * pod_even_proof_pqr_even - 0032
rewrite <- hdivision - 0033
exact hn - 0034
apply hright_right - 0035
have hsame : (((exists pod_even_proof_pq_even. p * q = 2 * pod_even_proof_pq_even) /\ (exists pod_even_proof_r_even. r = 2 * pod_even_proof_r_even)) \/ ((exists pod_odd_proof_pq_odd. p * q = 2 * pod_odd_proof_pq_odd + 1) /\ (exists pod_odd_proof_r_odd. r = 2 * pod_odd_proof_r_odd + 1))) - 0036
apply hleft_left - 0037
exact hpqr - 0038
cases hsame - 0039
cases hsame_left - 0040
left - 0041
split - 0042
apply hmul_even_left - 0043
exact hsame_left_left - 0044
exact hsame_left_right - 0045
cases hsame_right - 0046
right - 0047
split - 0048
apply hmul_odd_left - 0049
exact hsame_right_left - 0050
exact hsame_right_right - 0051
intro hqr - 0052
have hpqr : exists pod_even_proof_pqr_even. p * q + r = 2 * pod_even_proof_pqr_even - 0053
apply hleft_right - 0054
have hsame : (((exists pod_even_proof_q_even. q = 2 * pod_even_proof_q_even) /\ (exists pod_even_proof_r_even. r = 2 * pod_even_proof_r_even)) \/ ((exists pod_odd_proof_q_odd. q = 2 * pod_odd_proof_q_odd + 1) /\ (exists pod_odd_proof_r_odd. r = 2 * pod_odd_proof_r_odd + 1))) - 0055
apply hright_left - 0056
exact hqr - 0057
cases hsame - 0058
cases hsame_left - 0059
left - 0060
split - 0061
apply hmul_even_right - 0062
exact hsame_left_left - 0063
exact hsame_left_right - 0064
cases hsame_right - 0065
right - 0066
split - 0067
apply hmul_odd_right - 0068
exact hsame_right_left - 0069
exact hsame_right_right - 0070
rewrite hdivision - 0071
exact hpqr