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.
Statement with defined notation
∀ p. ∀ n. Le(p,n) → Lt(n + n,p + p + p) → ∃ x. ∃ y. DivRem(n,p,1,x) ∧ DivRem(n + n,p,2,y)Every purple notation token opens its conservative definition. Expanding the displayed statement recovers the exact first-order Peano-arithmetic formula checked by the unchanged kernel.
Definitions used by this theorem
In the theorem statement
4 occurrences
In local proof propositions
8 occurrences
Exact expanded native-PA statement
forall p n. (exists bcf_le_gap_bdftt_lower. bcf_le_gap_bdftt_lower + (p) = n) -> (exists bcf_lt_gap_bdftt_scaled. bcf_lt_gap_bdftt_scaled + S (n + n) = (p + p) + p) -> exists r R. (((n) = (p) * (1) + (r) /\ (exists bcf_lt_gap_bdftt_left_bound. bcf_lt_gap_bdftt_left_bound + S (r) = p))) /\ (((n + n) = (p) * (2) + (R) /\ (exists bcf_lt_gap_bdftt_right_bound. bcf_lt_gap_bdftt_right_bound + S (R) = p)))Proof neighborhood
Direct theorem prerequisites
BT0014 add_le_add_right BT0015 add_le_add_left BT000F le_trans BT001E lt_of_le_of_lt BT0002 add_comm BT00XC add_lt_cancel_left BT00Y8 division_quotient_one_of_bounds BT00Y9 division_quotient_two_of_boundsDirect theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic script.
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 (8)
01Fix variables and assumptionsL1–4
02Establish hdouble_lowerL5–5
Establish this local claim before using it. It is not an additional assumption.
- L5
have hdouble_lower : Le(p + p,n + n)Definitions: Le(p + p,n + n)Original native command in the exact edition
03Establish hdouble_leftL6–11
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add le add right.
- L6
have hdouble_left : Le(p + p,n + p)Definitions: Le(p + p,n + p)Original native command in the exact edition - L7
specialize add_le_add_right p - L8
specialize add_le_add_right n - L9
specialize add_le_add_right p - L10
apply add_le_add_right - L11
exact hlower
04Establish hshift_lowerL12–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add le add left.
- L12
have hshift_lower : Le(n + p,n + n)Definitions: Le(n + p,n + n)Original native command in the exact edition - L13
specialize add_le_add_left p - L14
specialize add_le_add_left n - L15
specialize add_le_add_left n - L16
apply add_le_add_left - L17
exact hlower - L18
specialize le_trans (p + p) - L19
specialize le_trans (n + p) - L20
specialize le_trans (n + n) - L21
apply le_trans
05Use earlier factsL22–23
06Establish hshift_lowerL24–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add le add left.
- L24
have hshift_lower : Le(n + p,n + n)Definitions: Le(n + p,n + n)Original native command in the exact edition - L25
specialize add_le_add_left p - L26
specialize add_le_add_left n - L27
specialize add_le_add_left n - L28
apply add_le_add_left - L29
exact hlower
07Establish hshift_strictL30–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt of le of lt.
- L30
have hshift_strict : Lt(n + p,p + p + p)Definitions: Lt(n + p,p + p + p)Original native command in the exact edition - L31
specialize lt_of_le_of_lt (n + p) - L32
specialize lt_of_le_of_lt (n + n) - L33
specialize lt_of_le_of_lt ((p + p) + p) - L34
apply lt_of_le_of_lt - L35
exact hshift_lower - L36
exact hscaled
08Establish hleft_commL37–39
09Establish hright_commL40–42
10Establish hfirst_upperL43–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add lt cancel left.
11Establish hfirstL49–54
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division quotient one of bounds.
- L49
have hfirst : ∃ r. DivRem(n,p,1,r)Definitions: DivRem(n,p,1,r)Original native command in the exact edition - L50
specialize division_quotient_one_of_bounds p - L51
specialize division_quotient_one_of_bounds n - L52
apply division_quotient_one_of_bounds - L53
exact hlower - L54
exact hfirst_upper
12Establish hsecondL55–60
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division quotient two of bounds.
- L55
have hsecond : ∃ R. DivRem(n + n,p,2,R)Definitions: DivRem(n + n,p,2,R)Original native command in the exact edition - L56
specialize division_quotient_two_of_bounds p - L57
specialize division_quotient_two_of_bounds (n + n) - L58
apply division_quotient_two_of_bounds - L59
exact hdouble_lower - L60
exact hscaled
13Separate the logical casesL61–62
14Construct an explicit witnessL63–64
15Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
Original defined command ledger · 67 lines
- 0001
intro p - 0002
intro n - 0003
intro hlower - 0004
intro hscaled - 0005
have hdouble_lower : Le(p + p,n + n)Exact native replay line
have hdouble_lower : exists bcf_le_gap_bdftt_double_lower. bcf_le_gap_bdftt_double_lower + (p + p) = n + n - 0006
have hdouble_left : Le(p + p,n + p)Exact native replay line
have hdouble_left : exists bcf_le_gap_bdftt_double_left. bcf_le_gap_bdftt_double_left + (p + p) = n + p - 0007
specialize add_le_add_right p - 0008
specialize add_le_add_right n - 0009
specialize add_le_add_right p - 0010
apply add_le_add_right - 0011
exact hlower - 0012
have hshift_lower : Le(n + p,n + n)Exact native replay line
have hshift_lower : exists bcf_le_gap_bdftt_shift_lower. bcf_le_gap_bdftt_shift_lower + (n + p) = n + n - 0013
specialize add_le_add_left p - 0014
specialize add_le_add_left n - 0015
specialize add_le_add_left n - 0016
apply add_le_add_left - 0017
exact hlower - 0018
specialize le_trans (p + p) - 0019
specialize le_trans (n + p) - 0020
specialize le_trans (n + n) - 0021
apply le_trans - 0022
exact hdouble_left - 0023
exact hshift_lower - 0024
have hshift_lower : Le(n + p,n + n)Exact native replay line
have hshift_lower : exists bcf_le_gap_bdftt_shift_lower. bcf_le_gap_bdftt_shift_lower + (n + p) = n + n - 0025
specialize add_le_add_left p - 0026
specialize add_le_add_left n - 0027
specialize add_le_add_left n - 0028
apply add_le_add_left - 0029
exact hlower - 0030
have hshift_strict : Lt(n + p,p + p + p)Exact native replay line
have hshift_strict : exists bcf_lt_gap_bdftt_shift_strict. bcf_lt_gap_bdftt_shift_strict + S (n + p) = (p + p) + p - 0031
specialize lt_of_le_of_lt (n + p) - 0032
specialize lt_of_le_of_lt (n + n) - 0033
specialize lt_of_le_of_lt ((p + p) + p) - 0034
apply lt_of_le_of_lt - 0035
exact hshift_lower - 0036
exact hscaled - 0037
have hleft_comm : n + p = p + n - 0038
apply add_comm - 0039
rewrite hleft_comm at hshift_strict - 0040
have hright_comm : (p + p) + p = p + (p + p) - 0041
apply add_comm - 0042
rewrite hright_comm at hshift_strict - 0043
have hfirst_upper : Lt(n,p + p)Exact native replay line
have hfirst_upper : exists bcf_lt_gap_bdftt_upper. bcf_lt_gap_bdftt_upper + S (n) = p + p - 0044
specialize add_lt_cancel_left p - 0045
specialize add_lt_cancel_left n - 0046
specialize add_lt_cancel_left (p + p) - 0047
apply add_lt_cancel_left - 0048
exact hshift_strict - 0049
have hfirst : ∃ r. DivRem(n,p,1,r)Exact native replay line
have hfirst : exists r. ((n) = (p) * (1) + (r) /\ (exists bcf_lt_gap_bdftt_left_bound. bcf_lt_gap_bdftt_left_bound + S (r) = p)) - 0050
specialize division_quotient_one_of_bounds p - 0051
specialize division_quotient_one_of_bounds n - 0052
apply division_quotient_one_of_bounds - 0053
exact hlower - 0054
exact hfirst_upper - 0055
have hsecond : ∃ R. DivRem(n + n,p,2,R)Exact native replay line
have hsecond : exists R. ((n + n) = (p) * (2) + (R) /\ (exists bcf_lt_gap_bdftt_right_bound. bcf_lt_gap_bdftt_right_bound + S (R) = p)) - 0056
specialize division_quotient_two_of_bounds p - 0057
specialize division_quotient_two_of_bounds (n + n) - 0058
apply division_quotient_two_of_bounds - 0059
exact hdouble_lower - 0060
exact hscaled - 0061
cases hfirst - 0062
cases hsecond - 0063
exists x - 0064
exists x1 - 0065
split - 0066
exact hfirst_witness - 0067
exact hsecond_witness