Exact expanded first-order arithmetic statement
forall p a. (~((p) = 1) /\ forall pfa_factor_left_negate_domain pfa_factor_right_negate_domain. (p) = pfa_factor_left_negate_domain * pfa_factor_right_negate_domain -> pfa_factor_left_negate_domain = 1 \/ pfa_factor_right_negate_domain = 1) -> (exists pfa_gap_negate_input. pfa_gap_negate_input + S (a) = (p)) -> exists b. (((exists pfa_gap_negate_existsadditionleft. pfa_gap_negate_existsadditionleft + S (a) = (p)) /\ (((exists pfa_gap_negate_existsadditionright. pfa_gap_negate_existsadditionright + S (b) = (p)) /\ ((((exists pfa_gap_negate_existsadditionresultbound. pfa_gap_negate_existsadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_negate_existsadditionresultcongruence pfa_offset_right_negate_existsadditionresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_negate_existsadditionresultcongruence = (0) + (p) * pfa_offset_right_negate_existsadditionresultcongruence)))))))))Constructive proof overview
Generated structural guide
Construct a bounded additive inverse by actual signed floor division; the zero input is included.
The unchanged tactic script uses 5 declared prerequisites and contains 33 exact native proof lines.
Public research checkpoint: original HA and independently compiled Lean verified; not Alpha-enrolled, no Alpha checked-use authority; not Stable
Proof neighborhood
Direct dependencies
signed_integer_floor_exists Alpha theorem; checked-use authorized prime_nonzero Alpha theorem; checked-use authorized FP0002 prime_field_zero_below_prime add_assoc Alpha theorem; checked-use authorized add_comm Alpha theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. The literal dependency-closed bundle is checked by original HA and the independently compiled Lean verifier. Public delivery grants no Alpha checked-use authority or Stable membership.
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 (1)
01Fix variables and assumptionsL1–4
02Establish hfL5–14
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed integer floor exists.
- L5
have hf : exists q n r. (0 + p * n = (a + p * q) + r /\ (exists pfa_gap_negate_floor. pfa_gap_negate_floor + S (r) = (p))) - L6
specialize signed_integer_floor_exists (0) - L7
specialize signed_integer_floor_exists (a) - L8
specialize signed_integer_floor_exists (p) - L9
apply signed_integer_floor_exists - L10
intro hz - L11
specialize prime_nonzero (p) - L12
apply prime_nonzero - L13
exact hp - L14
exact hz
03Separate the logical casesL15–18
04Construct an explicit witnessL19–19
Supply the displayed value, then prove that it has the required property.
- L19
exists x2
05Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
split
06Use earlier factsL21–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
exact ha
07Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
split
08Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
exact hf_witness_witness_witness_right
09Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
split
10Use earlier factsL25–27
11Construct an explicit witnessL28–29
12Calculate and transport equalitiesL30–32
13Use earlier factsL33–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
exact hf_witness_witness_witness_left
Original exact command ledger · 33 lines
- 0001
intro p - 0002
intro a - 0003
intro hp - 0004
intro ha - 0005
have hf : exists q n r. (0 + p * n = (a + p * q) + r /\ (exists pfa_gap_negate_floor. pfa_gap_negate_floor + S (r) = (p))) - 0006
specialize signed_integer_floor_exists (0) - 0007
specialize signed_integer_floor_exists (a) - 0008
specialize signed_integer_floor_exists (p) - 0009
apply signed_integer_floor_exists - 0010
intro hz - 0011
specialize prime_nonzero (p) - 0012
apply prime_nonzero - 0013
exact hp - 0014
exact hz - 0015
cases hf - 0016
cases hf_witness - 0017
cases hf_witness_witness - 0018
cases hf_witness_witness_witness - 0019
exists x2 - 0020
split - 0021
exact ha - 0022
split - 0023
exact hf_witness_witness_witness_right - 0024
split - 0025
specialize prime_field_zero_below_prime (p) - 0026
apply prime_field_zero_below_prime - 0027
exact hp - 0028
exists x - 0029
exists x1 - 0030
trans (a + p * x) + x2 - 0031
simp [add_assoc, add_comm] - 0032
symm - 0033
exact hf_witness_witness_witness_left