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. ∀ m. ModEq(2,n,m) → (Even(n) → Even(m)) ∧ (Even(m) → Even(n)) ∧ ((Odd(n) → Odd(m)) ∧ (Odd(m) → Odd(n)))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
9 occurrences
In local proof propositions
9 occurrences
Exact expanded native-PA statement
forall n m. (exists pmt_u_n_m pmt_v_n_m. n + 2 * pmt_u_n_m = m + 2 * pmt_v_n_m) -> (((((exists pmt_even_n. n = 2 * pmt_even_n) -> (exists pmt_even_m. m = 2 * pmt_even_m)) /\ ((exists pmt_even_m. m = 2 * pmt_even_m) -> (exists pmt_even_n. n = 2 * pmt_even_n)))) /\ ((((exists pmt_odd_n. n = 2 * pmt_odd_n + 1) -> (exists pmt_odd_m. m = 2 * pmt_odd_m + 1)) /\ ((exists pmt_odd_m. m = 2 * pmt_odd_m + 1) -> (exists pmt_odd_n. n = 2 * pmt_odd_n + 1)))))Proof neighborhood
Direct theorem prerequisites
PA00CH even_to_mod_two_zero PA00D4 mod_two_zero_to_even PA00CI odd_to_mod_two_one PA00FK mod_two_one_to_odd PA003L mod_eq_symm PA0024 mod_eq_transDirect 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 (6)
01Fix variables and assumptionsL1–3
02Establish hbackL4–9
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
03Separate the logical casesL10–11
04Fix variables and assumptionsL12–12
Work with arbitrary variables or the premises of the current implication.
- L12
intro hneven
05Establish hnzeroL13–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply even to mod two zero.
06Establish hmzeroL17–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq trans.
07Use earlier factsL27–27
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L27
exact hmzero
08Fix variables and assumptionsL28–28
Work with arbitrary variables or the premises of the current implication.
- L28
intro hmeven
09Establish hmzeroL29–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply even to mod two zero.
10Establish hnzeroL33–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq trans.
11Use earlier factsL43–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L43
exact hnzero
12Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
split
13Fix variables and assumptionsL45–45
Work with arbitrary variables or the premises of the current implication.
- L45
intro hnodd
14Establish hnoneL46–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply odd to mod two one.
15Establish hmoneL50–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq trans.
16Use earlier factsL60–60
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L60
exact hmone
17Fix variables and assumptionsL61–61
Work with arbitrary variables or the premises of the current implication.
- L61
intro hmodd
18Establish hmoneL62–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply odd to mod two one.
19Establish hnoneL66–75
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq trans.
20Use earlier factsL76–76
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
exact hnone
Original defined command ledger · 76 lines
- 0001
intro n - 0002
intro m - 0003
intro hmod - 0004
have hback : ModEq(2,m,n)Exact native replay line
have hback : exists pmt_u_m_n pmt_v_m_n. m + 2 * pmt_u_m_n = n + 2 * pmt_v_m_n - 0005
specialize mod_eq_symm 2 - 0006
specialize mod_eq_symm n - 0007
specialize mod_eq_symm m - 0008
apply mod_eq_symm - 0009
exact hmod - 0010
split - 0011
split - 0012
intro hneven - 0013
have hnzero : ModEq(2,n,0)Exact native replay line
have hnzero : exists pmt_u_n_zero pmt_v_n_zero. n + 2 * pmt_u_n_zero = 0 + 2 * pmt_v_n_zero - 0014
specialize even_to_mod_two_zero n - 0015
apply even_to_mod_two_zero - 0016
exact hneven - 0017
have hmzero : ModEq(2,m,0)Exact native replay line
have hmzero : exists pmt_u_m_zero pmt_v_m_zero. m + 2 * pmt_u_m_zero = 0 + 2 * pmt_v_m_zero - 0018
specialize mod_eq_trans 2 - 0019
specialize mod_eq_trans m - 0020
specialize mod_eq_trans n - 0021
specialize mod_eq_trans 0 - 0022
apply mod_eq_trans - 0023
exact hback - 0024
exact hnzero - 0025
specialize mod_two_zero_to_even m - 0026
apply mod_two_zero_to_even - 0027
exact hmzero - 0028
intro hmeven - 0029
have hmzero : ModEq(2,m,0)Exact native replay line
have hmzero : exists pmt_u_m_zero pmt_v_m_zero. m + 2 * pmt_u_m_zero = 0 + 2 * pmt_v_m_zero - 0030
specialize even_to_mod_two_zero m - 0031
apply even_to_mod_two_zero - 0032
exact hmeven - 0033
have hnzero : ModEq(2,n,0)Exact native replay line
have hnzero : exists pmt_u_n_zero pmt_v_n_zero. n + 2 * pmt_u_n_zero = 0 + 2 * pmt_v_n_zero - 0034
specialize mod_eq_trans 2 - 0035
specialize mod_eq_trans n - 0036
specialize mod_eq_trans m - 0037
specialize mod_eq_trans 0 - 0038
apply mod_eq_trans - 0039
exact hmod - 0040
exact hmzero - 0041
specialize mod_two_zero_to_even n - 0042
apply mod_two_zero_to_even - 0043
exact hnzero - 0044
split - 0045
intro hnodd - 0046
have hnone : ModEq(2,n,1)Exact native replay line
have hnone : exists pmt_u_n_one pmt_v_n_one. n + 2 * pmt_u_n_one = 1 + 2 * pmt_v_n_one - 0047
specialize odd_to_mod_two_one n - 0048
apply odd_to_mod_two_one - 0049
exact hnodd - 0050
have hmone : ModEq(2,m,1)Exact native replay line
have hmone : exists pmt_u_m_one pmt_v_m_one. m + 2 * pmt_u_m_one = 1 + 2 * pmt_v_m_one - 0051
specialize mod_eq_trans 2 - 0052
specialize mod_eq_trans m - 0053
specialize mod_eq_trans n - 0054
specialize mod_eq_trans 1 - 0055
apply mod_eq_trans - 0056
exact hback - 0057
exact hnone - 0058
specialize mod_two_one_to_odd m - 0059
apply mod_two_one_to_odd - 0060
exact hmone - 0061
intro hmodd - 0062
have hmone : ModEq(2,m,1)Exact native replay line
have hmone : exists pmt_u_m_one pmt_v_m_one. m + 2 * pmt_u_m_one = 1 + 2 * pmt_v_m_one - 0063
specialize odd_to_mod_two_one m - 0064
apply odd_to_mod_two_one - 0065
exact hmodd - 0066
have hnone : ModEq(2,n,1)Exact native replay line
have hnone : exists pmt_u_n_one pmt_v_n_one. n + 2 * pmt_u_n_one = 1 + 2 * pmt_v_n_one - 0067
specialize mod_eq_trans 2 - 0068
specialize mod_eq_trans n - 0069
specialize mod_eq_trans m - 0070
specialize mod_eq_trans 1 - 0071
apply mod_eq_trans - 0072
exact hmod - 0073
exact hmone - 0074
specialize mod_two_one_to_odd n - 0075
apply mod_two_one_to_odd - 0076
exact hnone