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. ∀ r. ∀ a. ∀ b. ∀ c. ∀ d. Dvd(p,r · r + 1) → ModEq(p,r · a + b,r · c + d) → ∃ x. ∃ y. (a = c + x ∨ c = a + x) ∧ ((b = d + y ∨ d = b + y) ∧ Dvd(p,x · x + y · y))Every purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.
Definitions used by this theorem
In the theorem statement
In local proof propositions
Exact expanded first-order statement
forall p r a b c d. (exists ftcn_factor_root. (r * r + 1) = (p) * ftcn_factor_root) -> (exists ftcn_left_collision ftcn_right_collision. (r * a + b) + (p) * ftcn_left_collision = (r * c + d) + (p) * ftcn_right_collision) -> exists x y. ((((a) = (c) + (x) \/ (c) = (a) + (x))) /\ ((((b) = (d) + (y) \/ (d) = (b) + (y))) /\ (exists ftcn_factor_norm. (x * x + y * y) = (p) * ftcn_factor_norm)))Proof neighborhood
Direct theorem prerequisites
TS001A natural_absolute_difference_exists TS001C affine_collision_difference_linear_or_opposite TS0018 negative_one_linear_congruence_norm_multiple TS0019 negative_one_opposite_linear_congruence_norm_multipleDirect theorem dependents
Definition-aware tactic body
Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay command.
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 (4)
01Fix variables and assumptionsL1–8
02Establish hfirstL9–12
03Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
cases hfirst
04Establish hsecondL14–17
05Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
cases hsecond
06Construct an explicit witnessL19–20
07Separate the logical casesL21–21
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L21
split
08Use earlier factsL22–22
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L22
exact hfirst_witness
09Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
split
10Use earlier factsL24–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
exact hsecond_witness
11Establish hsignL25–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply affine collision difference linear or opposite.
- L25
have hsign : ModEq(p,r · x,x1) ∨ ModEq(p,r · x + x1,0)Definitions: ModEq(p,r · x,x1)ModEq(p,r · x + x1,0)Original native command in the exact edition - L26
specialize affine_collision_difference_linear_or_opposite p - L27
specialize affine_collision_difference_linear_or_opposite r - L28
specialize affine_collision_difference_linear_or_opposite a - L29
specialize affine_collision_difference_linear_or_opposite b - L30
specialize affine_collision_difference_linear_or_opposite c - L31
specialize affine_collision_difference_linear_or_opposite d - L32
specialize affine_collision_difference_linear_or_opposite x - L33
specialize affine_collision_difference_linear_or_opposite x1 - L34
apply affine_collision_difference_linear_or_opposite
12Use earlier factsL35–37
13Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
cases hsign
14Use earlier factsL39–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
specialize negative_one_linear_congruence_norm_multiple p - L40
specialize negative_one_linear_congruence_norm_multiple r - L41
specialize negative_one_linear_congruence_norm_multiple x - L42
specialize negative_one_linear_congruence_norm_multiple x1 - L43
apply negative_one_linear_congruence_norm_multiple - L44
exact hroot - L45
exact hsign_left - L46
specialize negative_one_opposite_linear_congruence_norm_multiple p - L47
specialize negative_one_opposite_linear_congruence_norm_multiple r - L48
specialize negative_one_opposite_linear_congruence_norm_multiple x
Original defined command ledger · 52 lines
- 0001
intro p - 0002
intro r - 0003
intro a - 0004
intro b - 0005
intro c - 0006
intro d - 0007
intro hroot - 0008
intro hcollision - 0009
have hfirst : exists x. (((a) = (c) + (x) \/ (c) = (a) + (x))) - 0010
specialize natural_absolute_difference_exists a - 0011
specialize natural_absolute_difference_exists c - 0012
exact natural_absolute_difference_exists - 0013
cases hfirst - 0014
have hsecond : exists y. (((b) = (d) + (y) \/ (d) = (b) + (y))) - 0015
specialize natural_absolute_difference_exists b - 0016
specialize natural_absolute_difference_exists d - 0017
exact natural_absolute_difference_exists - 0018
cases hsecond - 0019
exists x - 0020
exists x1 - 0021
split - 0022
exact hfirst_witness - 0023
split - 0024
exact hsecond_witness - 0025
have hsign : ModEq(p,r · x,x1) ∨ ModEq(p,r · x + x1,0)Exact native replay line
have hsign : (exists ftcn_left_collision_direct ftcn_right_collision_direct. (r * x) + (p) * ftcn_left_collision_direct = (x1) + (p) * ftcn_right_collision_direct) \/ (exists ftcn_left_collision_opposite ftcn_right_collision_opposite. (r * x + x1) + (p) * ftcn_left_collision_opposite = (0) + (p) * ftcn_right_collision_opposite) - 0026
specialize affine_collision_difference_linear_or_opposite p - 0027
specialize affine_collision_difference_linear_or_opposite r - 0028
specialize affine_collision_difference_linear_or_opposite a - 0029
specialize affine_collision_difference_linear_or_opposite b - 0030
specialize affine_collision_difference_linear_or_opposite c - 0031
specialize affine_collision_difference_linear_or_opposite d - 0032
specialize affine_collision_difference_linear_or_opposite x - 0033
specialize affine_collision_difference_linear_or_opposite x1 - 0034
apply affine_collision_difference_linear_or_opposite - 0035
exact hcollision - 0036
exact hfirst_witness - 0037
exact hsecond_witness - 0038
cases hsign - 0039
specialize negative_one_linear_congruence_norm_multiple p - 0040
specialize negative_one_linear_congruence_norm_multiple r - 0041
specialize negative_one_linear_congruence_norm_multiple x - 0042
specialize negative_one_linear_congruence_norm_multiple x1 - 0043
apply negative_one_linear_congruence_norm_multiple - 0044
exact hroot - 0045
exact hsign_left - 0046
specialize negative_one_opposite_linear_congruence_norm_multiple p - 0047
specialize negative_one_opposite_linear_congruence_norm_multiple r - 0048
specialize negative_one_opposite_linear_congruence_norm_multiple x - 0049
specialize negative_one_opposite_linear_congruence_norm_multiple x1 - 0050
apply negative_one_opposite_linear_congruence_norm_multiple - 0051
exact hroot - 0052
exact hsign_right