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 first-order arithmetic statement
forall p dp dn ep en. (exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. dp + p * hgcrt_mod_left_hpl_mod = ep + p * hgcrt_mod_right_hpl_mod) -> (exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. dn + p * hgcrt_mod_left_hpl_mod = en + p * hgcrt_mod_right_hpl_mod) -> (exists sph_inverse_unit. ((exists hpl_gap_unit. hpl_gap_unit + S (sph_inverse_unit) = (p)) /\ (exists hgcrt_mod_left_hpl_unit hgcrt_mod_right_hpl_unit. (dp * sph_inverse_unit) + p * hgcrt_mod_left_hpl_unit = (1 + dn * sph_inverse_unit) + p * hgcrt_mod_right_hpl_unit))) -> (exists sph_inverse_unit. ((exists hpl_gap_unit. hpl_gap_unit + S (sph_inverse_unit) = (p)) /\ (exists hgcrt_mod_left_hpl_unit hgcrt_mod_right_hpl_unit. (ep * sph_inverse_unit) + p * hgcrt_mod_left_hpl_unit = (1 + en * sph_inverse_unit) + p * hgcrt_mod_right_hpl_unit)))Constructive proof overview
Generated structural guide
The same bounded inverse transports an integer derivative through congruent positive and negative components.
The unchanged tactic script uses 5 declared prerequisites and contains 51 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
mod_eq_trans Stable theorem; checked-use authorized mod_eq_mul_right Stable theorem; checked-use authorized mod_eq_symm Stable theorem; checked-use authorized mod_eq_add Stable theorem; checked-use authorized mod_eq_refl Stable 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
02Separate the logical casesL9–10
03Establish hmiddleL11–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq trans.
- L11
have hmiddle : exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. (dp * x) + p * hgcrt_mod_left_hpl_mod = (1 + en * x) + p * hgcrt_mod_right_hpl_mod - L12
specialize mod_eq_trans p - L13
specialize mod_eq_trans (dp * x) - L14
specialize mod_eq_trans (1 + dn * x) - L15
specialize mod_eq_trans (1 + en * x) - L16
apply mod_eq_trans - L17
exact hunit_witness_right - L18
specialize mod_eq_add p - L19
specialize mod_eq_add 1 - L20
specialize mod_eq_add 1
04Use earlier factsL21–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
05Use earlier factsL31–32
06Construct an explicit witnessL33–33
Supply the displayed value, then prove that it has the required property.
- L33
exists x
07Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
split
08Use earlier factsL35–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
exact hunit_witness_left - L36
specialize mod_eq_trans p - L37
specialize mod_eq_trans (ep * x) - L38
specialize mod_eq_trans (dp * x) - L39
specialize mod_eq_trans (1 + en * x) - L40
apply mod_eq_trans - L41
specialize mod_eq_mul_right p - L42
specialize mod_eq_mul_right ep - L43
specialize mod_eq_mul_right dp - L44
specialize mod_eq_mul_right x
Original exact command ledger · 51 lines
- 0001
intro p - 0002
intro dp - 0003
intro dn - 0004
intro ep - 0005
intro en - 0006
intro hpositive - 0007
intro hnegative - 0008
intro hunit - 0009
cases hunit - 0010
cases hunit_witness - 0011
have hmiddle : exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. (dp * x) + p * hgcrt_mod_left_hpl_mod = (1 + en * x) + p * hgcrt_mod_right_hpl_mod - 0012
specialize mod_eq_trans p - 0013
specialize mod_eq_trans (dp * x) - 0014
specialize mod_eq_trans (1 + dn * x) - 0015
specialize mod_eq_trans (1 + en * x) - 0016
apply mod_eq_trans - 0017
exact hunit_witness_right - 0018
specialize mod_eq_add p - 0019
specialize mod_eq_add 1 - 0020
specialize mod_eq_add 1 - 0021
specialize mod_eq_add (dn * x) - 0022
specialize mod_eq_add (en * x) - 0023
apply mod_eq_add - 0024
specialize mod_eq_refl p - 0025
specialize mod_eq_refl 1 - 0026
apply mod_eq_refl - 0027
specialize mod_eq_mul_right p - 0028
specialize mod_eq_mul_right dn - 0029
specialize mod_eq_mul_right en - 0030
specialize mod_eq_mul_right x - 0031
apply mod_eq_mul_right - 0032
exact hnegative - 0033
exists x - 0034
split - 0035
exact hunit_witness_left - 0036
specialize mod_eq_trans p - 0037
specialize mod_eq_trans (ep * x) - 0038
specialize mod_eq_trans (dp * x) - 0039
specialize mod_eq_trans (1 + en * x) - 0040
apply mod_eq_trans - 0041
specialize mod_eq_mul_right p - 0042
specialize mod_eq_mul_right ep - 0043
specialize mod_eq_mul_right dp - 0044
specialize mod_eq_mul_right x - 0045
apply mod_eq_mul_right - 0046
specialize mod_eq_symm p - 0047
specialize mod_eq_symm dp - 0048
specialize mod_eq_symm ep - 0049
apply mod_eq_symm - 0050
exact hpositive - 0051
exact hmiddle