Exact expanded PA statement
forall p a x z. (exists esi_mod_left_from_unit_source esi_mod_right_from_unit_source. (x * z) + p * esi_mod_left_from_unit_source = (1) + p * esi_mod_right_from_unit_source) -> (exists esi_mod_left_from_unit_result esi_mod_right_from_unit_result. (x * (a * z)) + p * esi_mod_left_from_unit_result = (a) + p * esi_mod_right_from_unit_result)Structural proof guide
Generated structural guide
Multiplying an ordinary inverse by the target gives a scaled inverse.
Use the direct prerequisites mod_eq_mul_left, mul_assoc, mul_comm, mul_one as previously established PA formulas.
The proof proceeds by intermediate claims (3), equality transport (2).
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 x - 0004
intro z - 0005
intro hxz - 0006
have hscaled : exists esi_mod_left_from_unit_scaled esi_mod_right_from_unit_scaled. (a * (x * z)) + p * esi_mod_left_from_unit_scaled = (a * 1) + p * esi_mod_right_from_unit_scaled - 0007
specialize mod_eq_mul_left p - 0008
specialize mod_eq_mul_left (x * z) - 0009
specialize mod_eq_mul_left 1 - 0010
specialize mod_eq_mul_left a - 0011
apply mod_eq_mul_left - 0012
exact hxz - 0013
have hleft : a * (x * z) = x * (a * z) - 0014
trans (a * x) * z - 0015
symm - 0016
specialize mul_assoc a - 0017
specialize mul_assoc x - 0018
specialize mul_assoc z - 0019
apply mul_assoc - 0020
trans (x * a) * z - 0021
congr - 0022
apply mul_comm - 0023
refl - 0024
specialize mul_assoc x - 0025
specialize mul_assoc a - 0026
specialize mul_assoc z - 0027
apply mul_assoc - 0028
have hright : a * 1 = a - 0029
specialize mul_one a - 0030
exact mul_one - 0031
rewrite hleft at hscaled - 0032
rewrite hright at hscaled - 0033
exact hscaled