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
∀ n. ∀ s. Lt(2,n) → FloorSqrt(n + n,s) → Le(3 · s,n + n)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
3 occurrences
In local proof propositions
6 occurrences
Exact expanded native-PA statement
forall n s. (exists bcf_lt_gap_b5rbfstmd_positive. bcf_lt_gap_b5rbfstmd_positive + S (2) = n) -> (((exists bcs_sqrt_lower_gap_b5rbfstmd_floor. bcs_sqrt_lower_gap_b5rbfstmd_floor + (s) * (s) = (n + n)) /\ exists bcs_sqrt_upper_gap_b5rbfstmd_floor. bcs_sqrt_upper_gap_b5rbfstmd_floor + S (n + n) = S (s) * S (s))) -> (exists bcf_le_gap_b5rbfstmd_result. bcf_le_gap_b5rbfstmd_result + (3 * s) = n + n)Proof neighborhood
Direct theorem prerequisites
BT010A two_lt_double_lower_six BT010B floor_sqrt_two_le_of_two_lt BT010C three_mul_le_square_of_three_le BT001C le_eq_or_lt BT00R6 floor_sqrt_lower_bound BT000F le_transDirect 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 (6)
01Fix variables and assumptionsL1–4
02Establish htwoL5–10
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply floor sqrt two le of two lt.
03Establish hsplitL11–15
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le eq or lt.
04Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
cases hsplit
05Establish hlowerL17–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply two lt double lower six.
- L17
have hlower : Le(3 + 3,n + n)Definitions: Le(3 + 3,n + n)Original native command in the exact edition - L18
specialize two_lt_double_lower_six n - L19
apply two_lt_double_lower_six - L20
exact hpositive - L21
rewrite <- hsplit_left
06Establish hcalcL22–25
07Establish hthreeL26–27
Establish this local claim before using it. It is not an additional assumption.
08Establish hsquareL28–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply three mul le square of three le.
- L28
have hsquare : Le(3 · s,s · s)Definitions: Le(3 · s,s · s)Original native command in the exact edition - L29
specialize three_mul_le_square_of_three_le s - L30
apply three_mul_le_square_of_three_le - L31
exact hthree
09Establish hfloor_lowerL32–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply floor sqrt lower bound.
- L32
have hfloor_lower : Le(s · s,n + n)Definitions: Le(s · s,n + n)Original native command in the exact edition - L33
specialize floor_sqrt_lower_bound (n + n) - L34
specialize floor_sqrt_lower_bound s - L35
apply floor_sqrt_lower_bound - L36
exact hfloor - L37
specialize le_trans (3 * s) - L38
specialize le_trans (s * s) - L39
specialize le_trans (n + n) - L40
apply le_trans - L41
exact hsquare
10Use earlier factsL42–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
exact hfloor_lower
Original defined command ledger · 42 lines
- 0001
intro n - 0002
intro s - 0003
intro hpositive - 0004
intro hfloor - 0005
have htwo : Lt(1,s)Exact native replay line
have htwo : exists bcf_le_gap_b5rbfstmd_two. bcf_le_gap_b5rbfstmd_two + (2) = s - 0006
specialize floor_sqrt_two_le_of_two_lt n - 0007
specialize floor_sqrt_two_le_of_two_lt s - 0008
apply floor_sqrt_two_le_of_two_lt - 0009
exact hpositive - 0010
exact hfloor - 0011
have hsplit : 2 = s ∨ Lt(2,s)Exact native replay line
have hsplit : 2 = s \/ (exists bcf_lt_gap_b5rbfstmd_strict. bcf_lt_gap_b5rbfstmd_strict + S (2) = s) - 0012
specialize le_eq_or_lt 2 - 0013
specialize le_eq_or_lt s - 0014
apply le_eq_or_lt - 0015
exact htwo - 0016
cases hsplit - 0017
have hlower : Le(3 + 3,n + n)Exact native replay line
have hlower : exists bcf_le_gap_b5rbfstmd_lower_six. bcf_le_gap_b5rbfstmd_lower_six + (3 + 3) = n + n - 0018
specialize two_lt_double_lower_six n - 0019
apply two_lt_double_lower_six - 0020
exact hpositive - 0021
rewrite <- hsplit_left - 0022
have hcalc : 3 * 2 = 3 + 3 - 0023
norm_num - 0024
rewrite hcalc - 0025
exact hlower - 0026
have hthree : Lt(2,s)Exact native replay line
have hthree : exists bcf_le_gap_b5rbfstmd_three. bcf_le_gap_b5rbfstmd_three + (3) = s - 0027
exact hsplit_right - 0028
have hsquare : Le(3 · s,s · s)Exact native replay line
have hsquare : exists bcf_le_gap_b5rbfstmd_square. bcf_le_gap_b5rbfstmd_square + (3 * s) = s * s - 0029
specialize three_mul_le_square_of_three_le s - 0030
apply three_mul_le_square_of_three_le - 0031
exact hthree - 0032
have hfloor_lower : Le(s · s,n + n)Exact native replay line
have hfloor_lower : exists bcf_le_gap_b5rbfstmd_floor_lower. bcf_le_gap_b5rbfstmd_floor_lower + (s * s) = n + n - 0033
specialize floor_sqrt_lower_bound (n + n) - 0034
specialize floor_sqrt_lower_bound s - 0035
apply floor_sqrt_lower_bound - 0036
exact hfloor - 0037
specialize le_trans (3 * s) - 0038
specialize le_trans (s * s) - 0039
specialize le_trans (n + n) - 0040
apply le_trans - 0041
exact hsquare - 0042
exact hfloor_lower