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.
Exact expanded PA statement
forall x y. ((((exists sdp_even_matching_x. x = 2 * sdp_even_matching_x) /\ (exists sdp_even_matching_y. y = 2 * sdp_even_matching_y)) \/ ((exists sdp_odd_matching_x. x = 2 * sdp_odd_matching_x + 1) /\ (exists sdp_odd_matching_y. y = 2 * sdp_odd_matching_y + 1)))) -> (exists sdp_u_matching_result sdp_v_matching_result. (x) + 2 * sdp_u_matching_result = (y) + 2 * sdp_v_matching_result)Structural proof guide
Generated structural guide
Naturals with the same constructive parity are congruent modulo two.
Use the direct prerequisites even_to_mod_two_zero, odd_to_mod_two_one, mod_eq_symm, mod_eq_trans as previously established PA formulas.
The proof proceeds by case analysis (3), intermediate claims (6).
Referenced ingredients
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v25 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
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–3
02Separate the logical casesL4–5
03Establish hxzeroL6–9
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply even to mod two zero.
04Establish hyzeroL10–13
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply even to mod two zero.
05Establish hzeroyL14–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
- L14
have hzeroy : exists sdp_u_proof_zero_y sdp_v_proof_zero_y. (0) + 2 * sdp_u_proof_zero_y = (y) + 2 * sdp_v_proof_zero_y - L15
specialize mod_eq_symm 2 - L16
specialize mod_eq_symm y - L17
specialize mod_eq_symm 0 - L18
apply mod_eq_symm - L19
exact hyzero - L20
specialize mod_eq_trans 2 - L21
specialize mod_eq_trans x - L22
specialize mod_eq_trans 0 - L23
specialize mod_eq_trans y
06Use earlier factsL24–26
07Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases hmatching_right
08Establish hxoneL28–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply odd to mod two one.
09Establish hyoneL32–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply odd to mod two one.
10Establish honeyL36–45
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
- L36
have honey : exists sdp_u_proof_one_y sdp_v_proof_one_y. (1) + 2 * sdp_u_proof_one_y = (y) + 2 * sdp_v_proof_one_y - L37
specialize mod_eq_symm 2 - L38
specialize mod_eq_symm y - L39
specialize mod_eq_symm 1 - L40
apply mod_eq_symm - L41
exact hyone - L42
specialize mod_eq_trans 2 - L43
specialize mod_eq_trans x - L44
specialize mod_eq_trans 1 - L45
specialize mod_eq_trans y
Original exact command ledger · 48 lines
- 0001
intro x - 0002
intro y - 0003
intro hmatching - 0004
cases hmatching - 0005
cases hmatching_left - 0006
have hxzero : exists sdp_u_proof_x_zero sdp_v_proof_x_zero. (x) + 2 * sdp_u_proof_x_zero = (0) + 2 * sdp_v_proof_x_zero - 0007
specialize even_to_mod_two_zero x - 0008
apply even_to_mod_two_zero - 0009
exact hmatching_left_left - 0010
have hyzero : exists sdp_u_proof_y_zero sdp_v_proof_y_zero. (y) + 2 * sdp_u_proof_y_zero = (0) + 2 * sdp_v_proof_y_zero - 0011
specialize even_to_mod_two_zero y - 0012
apply even_to_mod_two_zero - 0013
exact hmatching_left_right - 0014
have hzeroy : exists sdp_u_proof_zero_y sdp_v_proof_zero_y. (0) + 2 * sdp_u_proof_zero_y = (y) + 2 * sdp_v_proof_zero_y - 0015
specialize mod_eq_symm 2 - 0016
specialize mod_eq_symm y - 0017
specialize mod_eq_symm 0 - 0018
apply mod_eq_symm - 0019
exact hyzero - 0020
specialize mod_eq_trans 2 - 0021
specialize mod_eq_trans x - 0022
specialize mod_eq_trans 0 - 0023
specialize mod_eq_trans y - 0024
apply mod_eq_trans - 0025
exact hxzero - 0026
exact hzeroy - 0027
cases hmatching_right - 0028
have hxone : exists sdp_u_proof_x_one sdp_v_proof_x_one. (x) + 2 * sdp_u_proof_x_one = (1) + 2 * sdp_v_proof_x_one - 0029
specialize odd_to_mod_two_one x - 0030
apply odd_to_mod_two_one - 0031
exact hmatching_right_left - 0032
have hyone : exists sdp_u_proof_y_one sdp_v_proof_y_one. (y) + 2 * sdp_u_proof_y_one = (1) + 2 * sdp_v_proof_y_one - 0033
specialize odd_to_mod_two_one y - 0034
apply odd_to_mod_two_one - 0035
exact hmatching_right_right - 0036
have honey : exists sdp_u_proof_one_y sdp_v_proof_one_y. (1) + 2 * sdp_u_proof_one_y = (y) + 2 * sdp_v_proof_one_y - 0037
specialize mod_eq_symm 2 - 0038
specialize mod_eq_symm y - 0039
specialize mod_eq_symm 1 - 0040
apply mod_eq_symm - 0041
exact hyone - 0042
specialize mod_eq_trans 2 - 0043
specialize mod_eq_trans x - 0044
specialize mod_eq_trans 1 - 0045
specialize mod_eq_trans y - 0046
apply mod_eq_trans - 0047
exact hxone - 0048
exact honey