Exact expanded first-order arithmetic statement
forall u v p i j. (exists jt_gap_quotbound. jt_gap_quotbound+S (p)=(u*v)) -> p=v*i+j -> (exists jt_gap_quotremainder. jt_gap_quotremainder+S (j)=(v)) -> (exists jt_gap_quotresult. jt_gap_quotresult+S (i)=(u))Constructive proof overview
Generated structural guide
An actual bounded row-major index has a row index below u; no division oracle is assumed.
The unchanged tactic script uses 6 declared prerequisites and contains 39 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
le_or_lt Alpha theorem; checked-use authorized lt_not_le Alpha theorem; checked-use authorized le_trans Alpha theorem; checked-use authorized mul_le_mul_left Alpha theorem; checked-use authorized mul_comm Alpha theorem; checked-use authorized le_add_right Alpha theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply 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.
01Fix variables and assumptionsL1–8
02Establish hcL9–12
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le or lt.
03Separate the logical casesL13–14
04Use earlier factsL15–22
05Establish hmL23–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul left.
06Establish hcommL29–38
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul comm.
07Use earlier factsL39–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
exact hc_right
Original exact command ledger · 39 lines
- 0001
intro u - 0002
intro v - 0003
intro p - 0004
intro i - 0005
intro j - 0006
intro hp - 0007
intro heq - 0008
intro hj - 0009
have hc : (exists jt_gap_quotle. jt_gap_quotle+(u)=(i)) \/ (exists jt_gap_quotlt. jt_gap_quotlt+S (i)=(u)) - 0010
specialize le_or_lt (u) - 0011
specialize le_or_lt (i) - 0012
apply le_or_lt - 0013
cases hc - 0014
exfalso - 0015
specialize lt_not_le (p) - 0016
specialize lt_not_le (u*v) - 0017
apply lt_not_le - 0018
exact hp - 0019
specialize le_trans (u*v) - 0020
specialize le_trans (v*i) - 0021
specialize le_trans (p) - 0022
apply le_trans - 0023
have hm : exists jt_gap_quotmult. jt_gap_quotmult+(v*u)=(v*i) - 0024
specialize mul_le_mul_left (u) - 0025
specialize mul_le_mul_left (i) - 0026
specialize mul_le_mul_left (v) - 0027
apply mul_le_mul_left - 0028
exact hc_left - 0029
have hcomm : v*u=u*v - 0030
specialize mul_comm (v) - 0031
specialize mul_comm (u) - 0032
apply mul_comm - 0033
rewrite hcomm at hm - 0034
exact hm - 0035
rewrite heq - 0036
specialize le_add_right (v*i) - 0037
specialize le_add_right (j) - 0038
apply le_add_right - 0039
exact hc_right