Exact expanded PA statement
forall a b c. (exists bcf_lt_gap_mlmrn_source. bcf_lt_gap_mlmrn_source + S (a) = b) -> ~(c = 0) -> (exists bcf_lt_gap_mlmrn_result. bcf_lt_gap_mlmrn_result + S (a * c) = b * c)Structural proof guide
Right multiplication by a nonzero natural preserves strict order.
Direct prerequisites: mul_comm, mul_lt_mul_succ_left_nonzero, mul_le_mul_right, lt_of_lt_of_le. The authored body proceeds by intermediate claims (5), equality transport (2).
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 a - 0002
intro b - 0003
intro c - 0004
intro hab - 0005
intro hc - 0006
have hraw : exists bcf_lt_gap_mlmrn_raw_step. bcf_lt_gap_mlmrn_raw_step + S (c * a) = c * S a - 0007
specialize mul_lt_mul_succ_left_nonzero c - 0008
specialize mul_lt_mul_succ_left_nonzero a - 0009
apply mul_lt_mul_succ_left_nonzero - 0010
exact hc - 0011
have hleft_comm : c * a = a * c - 0012
specialize mul_comm c - 0013
specialize mul_comm a - 0014
exact mul_comm - 0015
have hright_comm : c * S a = S a * c - 0016
specialize mul_comm c - 0017
specialize mul_comm (S a) - 0018
exact mul_comm - 0019
rewrite hleft_comm at hraw - 0020
rewrite hright_comm at hraw - 0021
have hstep : exists bcf_lt_gap_mlmrn_step. bcf_lt_gap_mlmrn_step + S (a * c) = S a * c - 0022
exact hraw - 0023
have htail : exists bcf_le_gap_mlmrn_tail. bcf_le_gap_mlmrn_tail + (S a * c) = b * c - 0024
specialize mul_le_mul_right (S a) - 0025
specialize mul_le_mul_right b - 0026
specialize mul_le_mul_right c - 0027
apply mul_le_mul_right - 0028
exact hab - 0029
specialize lt_of_lt_of_le (a * c) - 0030
specialize lt_of_lt_of_le (S a * c) - 0031
specialize lt_of_lt_of_le (b * c) - 0032
apply lt_of_lt_of_le - 0033
exact hstep - 0034
exact htail