Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
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 the historical Alpha-v12 body receipt. The complete historical Alpha-v18 proof bundle independently checks every dependency; current Alpha v25 preserves that checked theorem use without changing Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (4)
01Fix variables and assumptionsL1–5
02Establish hrawL6–10
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul lt mul succ left nonzero.
03Establish hleft_commL11–14
04Establish hright_commL15–20
05Establish hstepL21–22
06Establish htailL23–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul right.
- L23
have htail : exists bcf_le_gap_mlmrn_tail. bcf_le_gap_mlmrn_tail + (S a * c) = b * c - L24
specialize mul_le_mul_right (S a) - L25
specialize mul_le_mul_right b - L26
specialize mul_le_mul_right c - L27
apply mul_le_mul_right - L28
exact hab - L29
specialize lt_of_lt_of_le (a * c) - L30
specialize lt_of_lt_of_le (S a * c) - L31
specialize lt_of_lt_of_le (b * c) - L32
apply lt_of_lt_of_le
Original exact command ledger · 34 lines
- 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