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
∀ x. ∃ e. CeilDivSix(x,e)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
1 occurrences
In local proof propositions
3 occurrences
Exact expanded native-PA statement
forall x. exists e. (((exists bcs_lower_gap_total_result. bcs_lower_gap_total_result + (x) = 6 * (e)) /\ exists bcs_upper_gap_total_result. bcs_upper_gap_total_result + S (6 * (e)) = (x) + 6))Proof neighborhood
Direct theorem prerequisites
BT001P division_remainder_exists BT000C succ_ne_zero BT000Q zero_or_succ BT0000 zero_add BT0019 lt_to_le BT0015 add_le_add_left BT0002 add_commDirect 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 (7)
01Fix variables and assumptionsL1–1
Work with arbitrary variables or the premises of the current implication.
- L1
intro x
02Establish hdivL2–9
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder exists.
- L2
have hdiv : ∃ q. ∃ r. DivRem(x,6,q,r)Definitions: DivRem(x,6,q,r)Original native command in the exact edition - L3
specialize division_remainder_exists 6 - L4
specialize division_remainder_exists x - L5
apply division_remainder_exists - L6
intro h6 - L7
specialize succ_ne_zero 5 - L8
apply succ_ne_zero - L9
exact h6
03Separate the logical casesL10–12
04Use earlier factsL13–13
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L13
specialize zero_or_succ x2
05Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
cases zero_or_succ
06Construct an explicit witnessL15–15
Supply the displayed value, then prove that it has the required property.
- L15
exists x1
07Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
split
08Construct an explicit witnessL17–17
Supply the displayed value, then prove that it has the required property.
- L17
exists 0
09Calculate and transport equalitiesL18–18
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L18
trans x
10Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
apply zero_add
11Calculate and transport equalitiesL20–20
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L20
trans 6 * x1 + x2
12Use earlier factsL21–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
exact hdiv_witness_witness_left
13Calculate and transport equalitiesL22–22
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L22
rewrite zero_or_succ_left
14Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
apply PA3
15Construct an explicit witnessL24–24
Supply the displayed value, then prove that it has the required property.
- L24
exists 5
16Calculate and transport equalitiesL25–27
17Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
apply PA4
18Calculate and transport equalitiesL29–30
19Use earlier factsL31–31
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
apply add_comm
20Calculate and transport equalitiesL32–33
21Use earlier factsL34–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
apply PA4
22Calculate and transport equalitiesL35–36
23Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
apply PA3
24Calculate and transport equalitiesL38–38
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L38
refl
25Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
cases zero_or_succ_right
26Construct an explicit witnessL40–40
Supply the displayed value, then prove that it has the required property.
- L40
exists S x1
27Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
split
28Establish hrleL42–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt to le.
29Establish hlowL45–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add le add left.
- L45
have hlow : Le(6 · x1 + x2,6 · x1 + 6)Definitions: Le(6 · x1 + x2,6 · x1 + 6)Original native command in the exact edition - L46
apply add_le_add_left - L47
exact hrle
30Establish hsixsuccL48–52
31Construct an explicit witnessL53–53
Supply the displayed value, then prove that it has the required property.
- L53
exists x3
Original defined command ledger · 56 lines
- 0001
intro x - 0002
have hdiv : ∃ q. ∃ r. DivRem(x,6,q,r)Exact native replay line
have hdiv : exists q r. x = 6 * q + r /\ exists h. h + S r = 6 - 0003
specialize division_remainder_exists 6 - 0004
specialize division_remainder_exists x - 0005
apply division_remainder_exists - 0006
intro h6 - 0007
specialize succ_ne_zero 5 - 0008
apply succ_ne_zero - 0009
exact h6 - 0010
cases hdiv - 0011
cases hdiv_witness - 0012
cases hdiv_witness_witness - 0013
specialize zero_or_succ x2 - 0014
cases zero_or_succ - 0015
exists x1 - 0016
split - 0017
exists 0 - 0018
trans x - 0019
apply zero_add - 0020
trans 6 * x1 + x2 - 0021
exact hdiv_witness_witness_left - 0022
rewrite zero_or_succ_left - 0023
apply PA3 - 0024
exists 5 - 0025
rewrite hdiv_witness_witness_left - 0026
rewrite zero_or_succ_left - 0027
trans S (5 + 6 * x1) - 0028
apply PA4 - 0029
trans S (6 * x1 + 5) - 0030
congr - 0031
apply add_comm - 0032
trans 6 * x1 + 6 - 0033
symm - 0034
apply PA4 - 0035
congr - 0036
symm - 0037
apply PA3 - 0038
refl - 0039
cases zero_or_succ_right - 0040
exists S x1 - 0041
split - 0042
have hrle : Le(x2,6)Exact native replay line
have hrle : exists k. k + x2 = 6 - 0043
apply lt_to_le - 0044
exact hdiv_witness_witness_right - 0045
have hlow : Le(6 · x1 + x2,6 · x1 + 6)Exact native replay line
have hlow : exists k. k + (6 * x1 + x2) = 6 * x1 + 6 - 0046
apply add_le_add_left - 0047
exact hrle - 0048
have hsixsucc : 6 * S x1 = 6 * x1 + 6 - 0049
apply PA6 - 0050
rewrite hsixsucc - 0051
rewrite hdiv_witness_witness_left - 0052
exact hlow - 0053
exists x3 - 0054
rewrite hdiv_witness_witness_left - 0055
rewrite zero_or_succ_right_witness - 0056
simp [add_comm]