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 n s. (exists bcf_lt_gap_b5rbfstl_positive. bcf_lt_gap_b5rbfstl_positive + S (2) = n) -> (((exists bcs_sqrt_lower_gap_b5rbfstl_floor. bcs_sqrt_lower_gap_b5rbfstl_floor + (s) * (s) = (n + n)) /\ exists bcs_sqrt_upper_gap_b5rbfstl_floor. bcs_sqrt_upper_gap_b5rbfstl_floor + S (n + n) = S (s) * S (s))) -> (exists bcf_le_gap_b5rbfstl_result. bcf_le_gap_b5rbfstl_result + (2) = s)Structural proof guide
The floor root of twice a natural above two is at least two.
Direct prerequisites: le_or_lt, le_refl, le_succ, lt_of_lt_of_le, lt_three_cases, floor_sqrt_strict_upper_bound, two_lt_double_lower_six, le_trans, lt_not_le, lt_irrefl_expanded. The authored body proceeds by case analysis (3), intermediate claims (10), equality transport (5), closed numeral normalization (2).
Proof neighborhood
Direct dependencies
BT001G le_or_lt BT000E le_refl BT0018 le_succ BT001D lt_of_lt_of_le BT0097 lt_three_cases BT00R7 floor_sqrt_strict_upper_bound BT010A two_lt_double_lower_six BT000F le_trans BT001I lt_not_le BT001B lt_irrefl_expandedDirect 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 (10)
01Fix variables and assumptionsL1–4
02Establish hcasesL5–8
Establish this local claim before using it. It is not an additional assumption.
03Separate the logical casesL9–9
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L9
cases hcases
04Use earlier factsL10–10
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L10
exact hcases_left
05Establish htwo_threeL11–16
06Establish hthreeL17–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt of lt of le.
07Establish hsmall_casesL24–27
08Establish hupperL28–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply floor sqrt strict upper bound.
09Establish hlowerL33–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply two lt double lower six.
10Separate the logical casesL37–38
11Calculate and transport equalitiesL39–40
12Establish hsmallL41–41
Establish this local claim before using it. It is not an additional assumption.
- L41
have hsmall : exists bcf_le_gap_b5rbfstl_zero_small. bcf_le_gap_b5rbfstl_zero_small + (S 0 * S 0) = 3 + 3
13Construct an explicit witnessL42–42
Supply the displayed value, then prove that it has the required property.
- L42
exists 5
14Calculate and transport equalitiesL43–43
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L43
norm_num
15Establish hreverseL44–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
16Separate the logical casesL51–51
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L51
exfalso
17Use earlier factsL52–56
18Calculate and transport equalitiesL57–58
19Establish hsmallL59–59
Establish this local claim before using it. It is not an additional assumption.
- L59
have hsmall : exists bcf_le_gap_b5rbfstl_one_small. bcf_le_gap_b5rbfstl_one_small + (S 1 * S 1) = 3 + 3
20Construct an explicit witnessL60–60
Supply the displayed value, then prove that it has the required property.
- L60
exists 2
21Calculate and transport equalitiesL61–61
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L61
norm_num
22Establish hreverseL62–68
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
23Separate the logical casesL69–69
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L69
exfalso
24Use earlier factsL70–74
25Calculate and transport equalitiesL75–75
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L75
rewrite hsmall_cases_right at hcases_right
26Separate the logical casesL76–76
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L76
exfalso
Original exact command ledger · 79 lines
- 0001
intro n - 0002
intro s - 0003
intro hpositive - 0004
intro hfloor - 0005
have hcases : (exists bcf_le_gap_b5rbfstl_result. bcf_le_gap_b5rbfstl_result + (2) = s) \/ (exists bcf_lt_gap_b5rbfstl_reverse. bcf_lt_gap_b5rbfstl_reverse + S (s) = 2) - 0006
specialize le_or_lt 2 - 0007
specialize le_or_lt s - 0008
exact le_or_lt - 0009
cases hcases - 0010
exact hcases_left - 0011
have htwo_three : exists k. k + 2 = 3 - 0012
specialize le_refl 2 - 0013
specialize le_succ 2 - 0014
specialize le_succ 2 - 0015
apply le_succ - 0016
exact le_refl - 0017
have hthree : exists bcf_lt_gap_b5rbfstl_three. bcf_lt_gap_b5rbfstl_three + S (s) = 3 - 0018
specialize lt_of_lt_of_le s - 0019
specialize lt_of_lt_of_le 2 - 0020
specialize lt_of_lt_of_le 3 - 0021
apply lt_of_lt_of_le - 0022
exact hcases_right - 0023
exact htwo_three - 0024
have hsmall_cases : s = 0 \/ s = 1 \/ s = 2 - 0025
specialize lt_three_cases s - 0026
apply lt_three_cases - 0027
exact hthree - 0028
have hupper : exists bcf_lt_gap_b5rbfstl_upper. bcf_lt_gap_b5rbfstl_upper + S (n + n) = S s * S s - 0029
specialize floor_sqrt_strict_upper_bound (n + n) - 0030
specialize floor_sqrt_strict_upper_bound s - 0031
apply floor_sqrt_strict_upper_bound - 0032
exact hfloor - 0033
have hlower : exists bcf_le_gap_b5rbfstl_lower_six. bcf_le_gap_b5rbfstl_lower_six + (3 + 3) = n + n - 0034
specialize two_lt_double_lower_six n - 0035
apply two_lt_double_lower_six - 0036
exact hpositive - 0037
cases hsmall_cases - 0038
cases hsmall_cases_left - 0039
rewrite hsmall_cases_left_left at hupper - 0040
rewrite hsmall_cases_left_left at hupper - 0041
have hsmall : exists bcf_le_gap_b5rbfstl_zero_small. bcf_le_gap_b5rbfstl_zero_small + (S 0 * S 0) = 3 + 3 - 0042
exists 5 - 0043
norm_num - 0044
have hreverse : exists bcf_le_gap_b5rbfstl_zero_reverse. bcf_le_gap_b5rbfstl_zero_reverse + (S 0 * S 0) = n + n - 0045
specialize le_trans (S 0 * S 0) - 0046
specialize le_trans (3 + 3) - 0047
specialize le_trans (n + n) - 0048
apply le_trans - 0049
exact hsmall - 0050
exact hlower - 0051
exfalso - 0052
specialize lt_not_le (n + n) - 0053
specialize lt_not_le (S 0 * S 0) - 0054
apply lt_not_le - 0055
exact hupper - 0056
exact hreverse - 0057
rewrite hsmall_cases_left_right at hupper - 0058
rewrite hsmall_cases_left_right at hupper - 0059
have hsmall : exists bcf_le_gap_b5rbfstl_one_small. bcf_le_gap_b5rbfstl_one_small + (S 1 * S 1) = 3 + 3 - 0060
exists 2 - 0061
norm_num - 0062
have hreverse : exists bcf_le_gap_b5rbfstl_one_reverse. bcf_le_gap_b5rbfstl_one_reverse + (S 1 * S 1) = n + n - 0063
specialize le_trans (S 1 * S 1) - 0064
specialize le_trans (3 + 3) - 0065
specialize le_trans (n + n) - 0066
apply le_trans - 0067
exact hsmall - 0068
exact hlower - 0069
exfalso - 0070
specialize lt_not_le (n + n) - 0071
specialize lt_not_le (S 1 * S 1) - 0072
apply lt_not_le - 0073
exact hupper - 0074
exact hreverse - 0075
rewrite hsmall_cases_right at hcases_right - 0076
exfalso - 0077
specialize lt_irrefl_expanded 2 - 0078
apply lt_irrefl_expanded - 0079
exact hcases_right