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. ∀ c. ∀ b. ∀ e. ∀ k. ∀ P. ∀ z. Lt(k,N) → ¬P = 0 → (∀ x. Lt(x,k) → Dvd(S (S x · c),P)) → (∀ x. ∀ y. Lt(x,k) → BetaAt(b,e,x,y) → ModEq(S (S x · c),z,y)) → (∀ x. Le(k,x) → Le(x,N) → Coprime(P,S (S x · c))) → ∃ x. ∀ y. ∀ n. Lt(y,S k) → BetaAt(b,e,y,n) → ModEq(S (S y · c),x,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
12 occurrences
In local proof propositions
12 occurrences
Exact expanded native-PA statement
forall N c b e k P z. (exists h. h + S k = N) -> ~(P = 0) -> (forall i. (exists h. h + S i = k) -> exists q. P = S ((S i) * c) * q) -> (forall i a. (exists h. h + S i = k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z + S ((S i) * c) * u = a + S ((S i) * c) * v) -> (forall j. (exists g. g + k = j) -> (exists h. h + j = N) -> forall d. (exists u. P = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1) -> exists z2. forall i a. (exists h. h + S i = S k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z2 + S ((S i) * c) * u = a + S ((S i) * c) * vProof neighborhood
Direct theorem prerequisites
BT003Y beta_modulus_nonzero BT000E le_refl BT0019 lt_to_le BT004U binary_crt_fold_step BT0041 beta_at_exists BT0042 beta_at_unique BT0017 le_of_succ_le_succ BT001C le_eq_or_ltDirect 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–10
02Fix variables and assumptionsL11–12
03Establish hnewL13–16
04Establish hkboundL17–21
05Establish hcopL22–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hfuture.
- L22
have hcop : Coprime(P,S (S k · c))Definitions: Coprime(P,S (S k · c))Original native command in the exact edition - L23
specialize hfuture k - L24
apply hfuture - L25
specialize le_refl k - L26
exact le_refl - L27
exact hkbound
06Establish hvalueL28–32
Establish this local claim before using it. It is not an additional assumption.
- L28
have hvalue : ∃ a. BetaAt(b,e,k,a)Definitions: BetaAt(b,e,k,a)Original native command in the exact edition - L29
specialize beta_at_exists b - L30
specialize beta_at_exists e - L31
specialize beta_at_exists k - L32
exact beta_at_exists
07Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
cases hvalue
08Establish hfoldL34–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary crt fold step.
- L34
have hfold : ∃ z2. (∀ y. ∀ n. Dvd(y,P) → ModEq(y,z,n) → ModEq(y,z2,n)) ∧ ModEq(S (S k · c),z2,x)Definitions: Dvd(y,P)ModEq(y,z,n)ModEq(y,z2,n)ModEq(S (S k · c),z2,x)Original native command in the exact edition - L35
specialize binary_crt_fold_step P - L36
specialize binary_crt_fold_step (S ((S k) * c)) - L37
specialize binary_crt_fold_step z - L38
specialize binary_crt_fold_step x - L39
apply binary_crt_fold_step - L40
exact hP - L41
exact hnew - L42
exact hcop
09Separate the logical casesL43–44
10Construct an explicit witnessL45–45
Supply the displayed value, then prove that it has the required property.
- L45
exists x1
11Fix variables and assumptionsL46–49
12Establish hikL50–54
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.
13Establish hsplitL55–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le eq or lt.
14Separate the logical casesL60–60
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
cases hsplit
15Establish hati_newL61–64
Establish this local claim before using it. It is not an additional assumption.
- L61
have hati_new : BetaAt(b,e,k,a)Definitions: BetaAt(b,e,k,a)Original native command in the exact edition - L62
rewrite <- hsplit_left - L63
rewrite <- hsplit_left - L64
exact hati
16Establish haeqL65–74
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
17Calculate and transport equalitiesL75–76
18Use earlier factsL77–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L77
exact hfold_witness_right
19Establish hmiPL78–81
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hdiv.
- L78
have hmiP : Dvd(S (S i · c),P)Definitions: Dvd(S (S i · c),P)Original native command in the exact edition - L79
specialize hdiv i - L80
apply hdiv - L81
exact hsplit_right
20Establish hzoldL82–91
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hcong.
- L82
have hzold : ModEq(S (S i · c),z,a)Definitions: ModEq(S (S i · c),z,a)Original native command in the exact edition - L83
specialize hcong i - L84
specialize hcong a - L85
apply hcong - L86
exact hsplit_right - L87
exact hati - L88
specialize hfold_witness_left (S ((S i) * c)) - L89
specialize hfold_witness_left a - L90
apply hfold_witness_left - L91
exact hmiP
21Use earlier factsL92–92
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L92
exact hzold
Original defined command ledger · 92 lines
- 0001
intro N - 0002
intro c - 0003
intro b - 0004
intro e - 0005
intro k - 0006
intro P - 0007
intro z - 0008
intro hkN - 0009
intro hP - 0010
intro hdiv - 0011
intro hcong - 0012
intro hfuture - 0013
have hnew : ~(S ((S k) * c) = 0) - 0014
specialize beta_modulus_nonzero c - 0015
specialize beta_modulus_nonzero k - 0016
exact beta_modulus_nonzero - 0017
have hkbound : Le(k,N)Exact native replay line
have hkbound : exists h. h + k = N - 0018
specialize lt_to_le k - 0019
specialize lt_to_le N - 0020
apply lt_to_le - 0021
exact hkN - 0022
have hcop : Coprime(P,S (S k · c))Exact native replay line
have hcop : forall d. (exists u. P = d * u) -> (exists v. S ((S k) * c) = d * v) -> d = 1 - 0023
specialize hfuture k - 0024
apply hfuture - 0025
specialize le_refl k - 0026
exact le_refl - 0027
exact hkbound - 0028
have hvalue : ∃ a. BetaAt(b,e,k,a)Exact native replay line
have hvalue : exists a. ((exists h. h + S a = S ((S k) * e)) /\ exists q. b = q * S ((S k) * e) + a) - 0029
specialize beta_at_exists b - 0030
specialize beta_at_exists e - 0031
specialize beta_at_exists k - 0032
exact beta_at_exists - 0033
cases hvalue - 0034
have hfold : ∃ z2. (∀ y. ∀ n. Dvd(y,P) → ModEq(y,z,n) → ModEq(y,z2,n)) ∧ ModEq(S (S k · c),z2,x)Exact native replay line
have hfold : exists z2. ((forall m a. (exists q. P = m * q) -> (exists u v. z + m * u = a + m * v) -> exists r s. z2 + m * r = a + m * s) /\ exists q r. z2 + S ((S k) * c) * q = x + S ((S k) * c) * r) - 0035
specialize binary_crt_fold_step P - 0036
specialize binary_crt_fold_step (S ((S k) * c)) - 0037
specialize binary_crt_fold_step z - 0038
specialize binary_crt_fold_step x - 0039
apply binary_crt_fold_step - 0040
exact hP - 0041
exact hnew - 0042
exact hcop - 0043
cases hfold - 0044
cases hfold_witness - 0045
exists x1 - 0046
intro i - 0047
intro a - 0048
intro hi - 0049
intro hati - 0050
have hik : Le(i,k)Exact native replay line
have hik : exists r. r + i = k - 0051
specialize le_of_succ_le_succ i - 0052
specialize le_of_succ_le_succ k - 0053
apply le_of_succ_le_succ - 0054
exact hi - 0055
have hsplit : i = k ∨ Lt(i,k)Exact native replay line
have hsplit : i = k \/ exists r. r + S i = k - 0056
specialize le_eq_or_lt i - 0057
specialize le_eq_or_lt k - 0058
apply le_eq_or_lt - 0059
exact hik - 0060
cases hsplit - 0061
have hati_new : BetaAt(b,e,k,a)Exact native replay line
have hati_new : ((exists h. h + S a = S ((S k) * e)) /\ exists q. b = q * S ((S k) * e) + a) - 0062
rewrite <- hsplit_left - 0063
rewrite <- hsplit_left - 0064
exact hati - 0065
have haeq : a = x - 0066
specialize beta_at_unique b - 0067
specialize beta_at_unique e - 0068
specialize beta_at_unique k - 0069
specialize beta_at_unique a - 0070
specialize beta_at_unique x - 0071
apply beta_at_unique - 0072
exact hati_new - 0073
exact hvalue_witness - 0074
rewrite hsplit_left - 0075
rewrite hsplit_left - 0076
rewrite haeq - 0077
exact hfold_witness_right - 0078
have hmiP : Dvd(S (S i · c),P)Exact native replay line
have hmiP : exists q. P = S ((S i) * c) * q - 0079
specialize hdiv i - 0080
apply hdiv - 0081
exact hsplit_right - 0082
have hzold : ModEq(S (S i · c),z,a)Exact native replay line
have hzold : exists u v. z + S ((S i) * c) * u = a + S ((S i) * c) * v - 0083
specialize hcong i - 0084
specialize hcong a - 0085
apply hcong - 0086
exact hsplit_right - 0087
exact hati - 0088
specialize hfold_witness_left (S ((S i) * c)) - 0089
specialize hfold_witness_left a - 0090
apply hfold_witness_left - 0091
exact hmiP - 0092
exact hzold