GF006F

gaussian_search_pair_valid

Every pair of canonical signed-coordinate codes constructs a valid Gaussian code; arbitrary natural codes are not presumed valid.

Alpha v34 checked-use · first admitted v30 · independently kernel and Lean verified; not Stable

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.

Inputs are genuine canonical signed-pair codes, not arbitrary naturals. Products start at the actual Gaussian identity, whose code is six. The factor list uses the proved prime-divisor property; irreducibility alone is not silently renamed primality. Uniqueness supplies equal lengths, a bounded bijection, and an actual unit at each match, including repeated factors. Units have empty factorizations and zero is excluded. Sorted primary representatives, Gaussian prime classification, and Eisenstein factorization are separate targets.

Exact theorem in conservative defined notation

∀ rc. ∀ ic. ZPairValid((rc + ic) · S (rc + ic) + (ic + ic))

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

signed_decode_total · checked external prerequisite
Original expanded first-order statement
forall rc ic. (exists ge_real_positive_search_pair_carrier ge_real_negative_search_pair_carrier ge_imaginary_positive_search_pair_carrier ge_imaginary_negative_search_pair_carrier. (exists ge_real_code_search_pair_carrierdecode ge_imaginary_code_search_pair_carrierdecode. (((((rc) + (ic)) * S ((rc) + (ic)) + ((ic) + (ic))) = ((ge_real_code_search_pair_carrierdecode) + (ge_imaginary_code_search_pair_carrierdecode)) * S ((ge_real_code_search_pair_carrierdecode) + (ge_imaginary_code_search_pair_carrierdecode)) + ((ge_imaginary_code_search_pair_carrierdecode) + (ge_imaginary_code_search_pair_carrierdecode))) /\ (((((ge_real_code_search_pair_carrierdecode) = 2 * (ge_real_positive_search_pair_carrier) /\ (ge_real_negative_search_pair_carrier) = 0) \/ exists ge_signed_half_ge_search_pair_carrierdecode_real. (((ge_real_code_search_pair_carrierdecode) = 2 * ge_signed_half_ge_search_pair_carrierdecode_real + 1 /\ (ge_real_positive_search_pair_carrier) = 0) /\ (ge_real_negative_search_pair_carrier) = S ge_signed_half_ge_search_pair_carrierdecode_real))) /\ ((((ge_imaginary_code_search_pair_carrierdecode) = 2 * (ge_imaginary_positive_search_pair_carrier) /\ (ge_imaginary_negative_search_pair_carrier) = 0) \/ exists ge_signed_half_ge_search_pair_carrierdecode_imaginary. (((ge_imaginary_code_search_pair_carrierdecode) = 2 * ge_signed_half_ge_search_pair_carrierdecode_imaginary + 1 /\ (ge_imaginary_positive_search_pair_carrier) = 0) /\ (ge_imaginary_negative_search_pair_carrier) = S ge_signed_half_ge_search_pair_carrierdecode_imaginary)))))))

Complete tactic proof in conservative notation

All 23 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

23 script commands · 10 reading checkpoints · 2 local claims

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

01Fix variables and assumptionsL1–2

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro rc
  2. L2
    intro ic
02Establish hrL3–5

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed decode total.

  1. L3
    have hr : ∃ p. ∃ n. SignedDecode(rc,p,n)Definitions: SignedDecode(rc,p,n)Original native command in the exact edition
  2. L4
    specialize signed_decode_total (rc)
  3. L5
    apply signed_decode_total
03Separate the logical casesL6–7

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L6
    cases hr
  2. L7
    cases hr_witness
04Establish hiL8–10

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed decode total.

  1. L8
    have hi : ∃ p. ∃ n. SignedDecode(ic,p,n)Definitions: SignedDecode(ic,p,n)Original native command in the exact edition
  2. L9
    specialize signed_decode_total (ic)
  3. L10
    apply signed_decode_total
05Separate the logical casesL11–12

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L11
    cases hi
  2. L12
    cases hi_witness
06Construct an explicit witnessL13–18

Supply the displayed value, then prove that it has the required property.

  1. L13
    exists (x)
  2. L14
    exists (x1)
  3. L15
    exists (x2)
  4. L16
    exists (x3)
  5. L17
    exists (rc)
  6. L18
    exists (ic)
07Separate the logical casesL19–19

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L19
    split
08Calculate and transport equalitiesL20–20

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L20
    refl
09Separate the logical casesL21–21

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L21
    split
10Use earlier factsL22–23

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L22
    exact hr_witness_witness
  2. L23
    exact hi_witness_witness

Library-wide reading audit

Original defined command ledger · 23 lines
  1. 0001intro rc
  2. 0002intro ic
  3. 0003have hr : ∃ p. ∃ n. SignedDecode(rc,p,n)
  4. 0004specialize signed_decode_total (rc)
  5. 0005apply signed_decode_total
  6. 0006cases hr
  7. 0007cases hr_witness
  8. 0008have hi : ∃ p. ∃ n. SignedDecode(ic,p,n)
  9. 0009specialize signed_decode_total (ic)
  10. 0010apply signed_decode_total
  11. 0011cases hi
  12. 0012cases hi_witness
  13. 0013exists (x)
  14. 0014exists (x1)
  15. 0015exists (x2)
  16. 0016exists (x3)
  17. 0017exists (rc)
  18. 0018exists (ic)
  19. 0019split
  20. 0020refl
  21. 0021split
  22. 0022exact hr_witness_witness
  23. 0023exact hi_witness_witness