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. ∀ a. ∀ b. ∀ qa. ∀ ra. ∀ qb. ∀ rb. a = qa · p + ra → Lt(ra,p) → b = qb · p + rb → Lt(rb,p) → ModEq(p,a,b) ∨ ¬ModEq(p,a,b)Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
4 occurrences
In local proof propositions
8 occurrences
Exact expanded native-PA statement
forall p a b qa ra qb rb. a = qa * p + ra -> (exists ha. ha + S ra = p) -> b = qb * p + rb -> (exists hb. hb + S rb = p) -> (exists u v. a + p * u = b + p * v) \/ ~(exists u v. a + p * u = b + p * v)Proof neighborhood
Direct theorem prerequisites
PA004G eq_decidable PA003C remainder_decomposition_to_mod_eq PA003L mod_eq_symm PA0024 mod_eq_trans PA002U mod_eq_bounded_uniqueDirect theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed 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 (5)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hrb
03Use earlier factsL12–13
04Separate the logical casesL14–15
05Establish harL16–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply remainder decomposition to mod eq.
06Establish hbrL23–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply remainder decomposition to mod eq.
07Establish hbraL30–32
Establish this local claim before using it. It is not an additional assumption.
08Establish hrabL33–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
09Use earlier factsL43–45
10Separate the logical casesL46–46
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L46
right
11Fix variables and assumptionsL47–47
Work with arbitrary variables or the premises of the current implication.
- L47
intro hab
12Use earlier factsL48–54
13Establish harL55–61
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply remainder decomposition to mod eq.
14Establish hra_aL62–67
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
15Establish hra_bL68–75
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq trans.
16Establish hbrL76–85
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply remainder decomposition to mod eq.
- L76
- L77
specialize remainder_decomposition_to_mod_eq p - L78
specialize remainder_decomposition_to_mod_eq b - L79
specialize remainder_decomposition_to_mod_eq qb - L80
specialize remainder_decomposition_to_mod_eq rb - L81
apply remainder_decomposition_to_mod_eq - L82
exact hb - L83
specialize mod_eq_trans p - L84
specialize mod_eq_trans ra - L85
specialize mod_eq_trans b
Original defined command ledger · 89 lines
- 0001
intro p - 0002
intro a - 0003
intro b - 0004
intro qa - 0005
intro ra - 0006
intro qb - 0007
intro rb - 0008
intro ha - 0009
intro hra - 0010
intro hb - 0011
intro hrb - 0012
specialize eq_decidable ra - 0013
specialize eq_decidable rb - 0014
cases eq_decidable - 0015
left - 0016
have har : ModEq(p,a,ra)Exact native replay line
have har : exists u v. a + p * u = ra + p * v - 0017
specialize remainder_decomposition_to_mod_eq p - 0018
specialize remainder_decomposition_to_mod_eq a - 0019
specialize remainder_decomposition_to_mod_eq qa - 0020
specialize remainder_decomposition_to_mod_eq ra - 0021
apply remainder_decomposition_to_mod_eq - 0022
exact ha - 0023
have hbr : ModEq(p,b,rb)Exact native replay line
have hbr : exists u v. b + p * u = rb + p * v - 0024
specialize remainder_decomposition_to_mod_eq p - 0025
specialize remainder_decomposition_to_mod_eq b - 0026
specialize remainder_decomposition_to_mod_eq qb - 0027
specialize remainder_decomposition_to_mod_eq rb - 0028
apply remainder_decomposition_to_mod_eq - 0029
exact hb - 0030
have hbra : ModEq(p,b,ra)Exact native replay line
have hbra : exists u v. b + p * u = ra + p * v - 0031
rewrite eq_decidable_left - 0032
exact hbr - 0033
have hrab : ModEq(p,ra,b)Exact native replay line
have hrab : exists u v. ra + p * u = b + p * v - 0034
specialize mod_eq_symm p - 0035
specialize mod_eq_symm b - 0036
specialize mod_eq_symm ra - 0037
apply mod_eq_symm - 0038
exact hbra - 0039
specialize mod_eq_trans p - 0040
specialize mod_eq_trans a - 0041
specialize mod_eq_trans ra - 0042
specialize mod_eq_trans b - 0043
apply mod_eq_trans - 0044
exact har - 0045
exact hrab - 0046
right - 0047
intro hab - 0048
apply eq_decidable_right - 0049
specialize mod_eq_bounded_unique p - 0050
specialize mod_eq_bounded_unique ra - 0051
specialize mod_eq_bounded_unique rb - 0052
apply mod_eq_bounded_unique - 0053
exact hra - 0054
exact hrb - 0055
have har : ModEq(p,a,ra)Exact native replay line
have har : exists u v. a + p * u = ra + p * v - 0056
specialize remainder_decomposition_to_mod_eq p - 0057
specialize remainder_decomposition_to_mod_eq a - 0058
specialize remainder_decomposition_to_mod_eq qa - 0059
specialize remainder_decomposition_to_mod_eq ra - 0060
apply remainder_decomposition_to_mod_eq - 0061
exact ha - 0062
have hra_a : ModEq(p,ra,a)Exact native replay line
have hra_a : exists u v. ra + p * u = a + p * v - 0063
specialize mod_eq_symm p - 0064
specialize mod_eq_symm a - 0065
specialize mod_eq_symm ra - 0066
apply mod_eq_symm - 0067
exact har - 0068
have hra_b : ModEq(p,ra,b)Exact native replay line
have hra_b : exists u v. ra + p * u = b + p * v - 0069
specialize mod_eq_trans p - 0070
specialize mod_eq_trans ra - 0071
specialize mod_eq_trans a - 0072
specialize mod_eq_trans b - 0073
apply mod_eq_trans - 0074
exact hra_a - 0075
exact hab - 0076
have hbr : ModEq(p,b,rb)Exact native replay line
have hbr : exists u v. b + p * u = rb + p * v - 0077
specialize remainder_decomposition_to_mod_eq p - 0078
specialize remainder_decomposition_to_mod_eq b - 0079
specialize remainder_decomposition_to_mod_eq qb - 0080
specialize remainder_decomposition_to_mod_eq rb - 0081
apply remainder_decomposition_to_mod_eq - 0082
exact hb - 0083
specialize mod_eq_trans p - 0084
specialize mod_eq_trans ra - 0085
specialize mod_eq_trans b - 0086
specialize mod_eq_trans rb - 0087
apply mod_eq_trans - 0088
exact hra_b - 0089
exact hbr