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 expanded first-order arithmetic statement
forall m n d a b. ~(m=0) -> ~(n=0) -> (forall sfd_common_divisor_cdp_cofactor_coprime. (exists pvs_factor_cdp_cofactor_coprimeleft. (m) = (sfd_common_divisor_cdp_cofactor_coprime) * pvs_factor_cdp_cofactor_coprimeleft) -> (exists pvs_factor_cdp_cofactor_coprimeright. (n) = (sfd_common_divisor_cdp_cofactor_coprime) * pvs_factor_cdp_cofactor_coprimeright) -> sfd_common_divisor_cdp_cofactor_coprime = 1) -> (((~((a)=0)) /\ (((~((b)=0)) /\ (((exists pvs_factor_cdp_cofactor_pairleft. (m) = (a) * pvs_factor_cdp_cofactor_pairleft) /\ (((exists pvs_factor_cdp_cofactor_pairright. (n) = (b) * pvs_factor_cdp_cofactor_pairright) /\ ((d)=(a)*(b)))))))))) -> exists u v. ((((m)=(a)*(u)) /\ ((((n)=(b)*(v)) /\ (((~((u)=0)) /\ (((~((v)=0)) /\ (((exists pvs_le_gap_cdp_cofactor_resultubound. pvs_le_gap_cdp_cofactor_resultubound + (u) = (m)) /\ (((exists pvs_le_gap_cdp_cofactor_resultvbound. pvs_le_gap_cdp_cofactor_resultvbound + (v) = (n)) /\ (((forall sfd_common_divisor_cdp_cofactor_resultab. (exists pvs_factor_cdp_cofactor_resultableft. (a) = (sfd_common_divisor_cdp_cofactor_resultab) * pvs_factor_cdp_cofactor_resultableft) -> (exists pvs_factor_cdp_cofactor_resultabright. (b) = (sfd_common_divisor_cdp_cofactor_resultab) * pvs_factor_cdp_cofactor_resultabright) -> sfd_common_divisor_cdp_cofactor_resultab = 1) /\ (((forall sfd_common_divisor_cdp_cofactor_resultav. (exists pvs_factor_cdp_cofactor_resultavleft. (a) = (sfd_common_divisor_cdp_cofactor_resultav) * pvs_factor_cdp_cofactor_resultavleft) -> (exists pvs_factor_cdp_cofactor_resultavright. (v) = (sfd_common_divisor_cdp_cofactor_resultav) * pvs_factor_cdp_cofactor_resultavright) -> sfd_common_divisor_cdp_cofactor_resultav = 1) /\ (((forall sfd_common_divisor_cdp_cofactor_resultub. (exists pvs_factor_cdp_cofactor_resultubleft. (u) = (sfd_common_divisor_cdp_cofactor_resultub) * pvs_factor_cdp_cofactor_resultubleft) -> (exists pvs_factor_cdp_cofactor_resultubright. (b) = (sfd_common_divisor_cdp_cofactor_resultub) * pvs_factor_cdp_cofactor_resultubright) -> sfd_common_divisor_cdp_cofactor_resultub = 1) /\ (((forall sfd_common_divisor_cdp_cofactor_resultuv. (exists pvs_factor_cdp_cofactor_resultuvleft. (u) = (sfd_common_divisor_cdp_cofactor_resultuv) * pvs_factor_cdp_cofactor_resultuvleft) -> (exists pvs_factor_cdp_cofactor_resultuvright. (v) = (sfd_common_divisor_cdp_cofactor_resultuv) * pvs_factor_cdp_cofactor_resultuvright) -> sfd_common_divisor_cdp_cofactor_resultuv = 1) /\ ((m)*(n)=(d)*((u)*(v)))))))))))))))))))))))Constructive proof overview
Generated structural guide
Real positive bounded cofactor witnesses have all cross-input coprimality relations and multiply to the true quotient.
The unchanged tactic script uses 4 declared prerequisites and contains 107 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
positive_divisor_quotient_exists_unique Alpha theorem; checked-use authorized crt_coprime_divisor_pair Alpha theorem; checked-use authorized mul_assoc Stable theorem; checked-use authorized mul_comm Stable 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. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply 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.
01Fix variables and assumptionsL1–9
02Separate the logical casesL10–13
03Establish huL14–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply positive divisor quotient exists unique.
- L14
have hu : exists q. (((m=a*q) /\ (((~(q=0)) /\ (((exists pvs_factor_cdp_cofactor_udivisor. (m) = (q) * pvs_factor_cdp_cofactor_udivisor) /\ (((exists pvs_le_gap_cdp_cofactor_ubound. pvs_le_gap_cdp_cofactor_ubound + (q) = (m)) /\ (forall r. m=a*r -> r=q))))))))) - L15
specialize positive_divisor_quotient_exists_unique (m) - L16
specialize positive_divisor_quotient_exists_unique (a) - L17
apply positive_divisor_quotient_exists_unique - L18
exact hm - L19
exact hp_right_right_left
04Separate the logical casesL20–24
05Establish hvL25–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply positive divisor quotient exists unique.
- L25
have hv : exists q. (((n=b*q) /\ (((~(q=0)) /\ (((exists pvs_factor_cdp_cofactor_vdivisor. (n) = (q) * pvs_factor_cdp_cofactor_vdivisor) /\ (((exists pvs_le_gap_cdp_cofactor_vbound. pvs_le_gap_cdp_cofactor_vbound + (q) = (n)) /\ (forall r. n=b*r -> r=q))))))))) - L26
specialize positive_divisor_quotient_exists_unique (n) - L27
specialize positive_divisor_quotient_exists_unique (b) - L28
apply positive_divisor_quotient_exists_unique - L29
exact hn - L30
exact hp_right_right_right_left
06Separate the logical casesL31–35
07Construct an explicit witnessL36–37
08Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
split
09Use earlier factsL39–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
exact hu_witness_left
10Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
split
11Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
exact hv_witness_left
12Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
split
13Use earlier factsL43–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L43
exact hu_witness_right_left
14Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
split
15Use earlier factsL45–45
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L45
exact hv_witness_right_left
16Separate the logical casesL46–46
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L46
split
17Use earlier factsL47–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
exact hu_witness_right_right_right_left
18Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
19Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hv_witness_right_right_right_left
20Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
split
21Use earlier factsL51–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
22Separate the logical casesL59–59
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L59
split
23Use earlier factsL60–67
Instantiate or apply named facts and discharge the corresponding proof obligations.
24Separate the logical casesL68–68
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L68
split
25Use earlier factsL69–76
Instantiate or apply named facts and discharge the corresponding proof obligations.
26Separate the logical casesL77–77
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L77
split
27Use earlier factsL78–85
Instantiate or apply named facts and discharge the corresponding proof obligations.
28Calculate and transport equalitiesL86–89
29Use earlier factsL90–90
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L90
apply mul_assoc
30Calculate and transport equalitiesL91–94
31Use earlier factsL95–95
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L95
apply mul_assoc
32Calculate and transport equalitiesL96–99
33Use earlier factsL100–100
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L100
apply mul_comm
34Calculate and transport equalitiesL101–104
35Use earlier factsL105–105
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L105
apply mul_assoc
36Calculate and transport equalitiesL106–106
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L106
symm
37Use earlier factsL107–107
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L107
apply mul_assoc
Original exact command ledger · 107 lines
- 0001
intro m - 0002
intro n - 0003
intro d - 0004
intro a - 0005
intro b - 0006
intro hm - 0007
intro hn - 0008
intro hc - 0009
intro hp - 0010
cases hp - 0011
cases hp_right - 0012
cases hp_right_right - 0013
cases hp_right_right_right - 0014
have hu : exists q. (((m=a*q) /\ (((~(q=0)) /\ (((exists pvs_factor_cdp_cofactor_udivisor. (m) = (q) * pvs_factor_cdp_cofactor_udivisor) /\ (((exists pvs_le_gap_cdp_cofactor_ubound. pvs_le_gap_cdp_cofactor_ubound + (q) = (m)) /\ (forall r. m=a*r -> r=q))))))))) - 0015
specialize positive_divisor_quotient_exists_unique (m) - 0016
specialize positive_divisor_quotient_exists_unique (a) - 0017
apply positive_divisor_quotient_exists_unique - 0018
exact hm - 0019
exact hp_right_right_left - 0020
cases hu - 0021
cases hu_witness - 0022
cases hu_witness_right - 0023
cases hu_witness_right_right - 0024
cases hu_witness_right_right_right - 0025
have hv : exists q. (((n=b*q) /\ (((~(q=0)) /\ (((exists pvs_factor_cdp_cofactor_vdivisor. (n) = (q) * pvs_factor_cdp_cofactor_vdivisor) /\ (((exists pvs_le_gap_cdp_cofactor_vbound. pvs_le_gap_cdp_cofactor_vbound + (q) = (n)) /\ (forall r. n=b*r -> r=q))))))))) - 0026
specialize positive_divisor_quotient_exists_unique (n) - 0027
specialize positive_divisor_quotient_exists_unique (b) - 0028
apply positive_divisor_quotient_exists_unique - 0029
exact hn - 0030
exact hp_right_right_right_left - 0031
cases hv - 0032
cases hv_witness - 0033
cases hv_witness_right - 0034
cases hv_witness_right_right - 0035
cases hv_witness_right_right_right - 0036
exists x - 0037
exists x1 - 0038
split - 0039
exact hu_witness_left - 0040
split - 0041
exact hv_witness_left - 0042
split - 0043
exact hu_witness_right_left - 0044
split - 0045
exact hv_witness_right_left - 0046
split - 0047
exact hu_witness_right_right_right_left - 0048
split - 0049
exact hv_witness_right_right_right_left - 0050
split - 0051
specialize crt_coprime_divisor_pair (m) - 0052
specialize crt_coprime_divisor_pair (n) - 0053
specialize crt_coprime_divisor_pair (a) - 0054
specialize crt_coprime_divisor_pair (b) - 0055
apply crt_coprime_divisor_pair - 0056
exact hc - 0057
exact hp_right_right_left - 0058
exact hp_right_right_right_left - 0059
split - 0060
specialize crt_coprime_divisor_pair (m) - 0061
specialize crt_coprime_divisor_pair (n) - 0062
specialize crt_coprime_divisor_pair (a) - 0063
specialize crt_coprime_divisor_pair (x1) - 0064
apply crt_coprime_divisor_pair - 0065
exact hc - 0066
exact hp_right_right_left - 0067
exact hv_witness_right_right_left - 0068
split - 0069
specialize crt_coprime_divisor_pair (m) - 0070
specialize crt_coprime_divisor_pair (n) - 0071
specialize crt_coprime_divisor_pair (x) - 0072
specialize crt_coprime_divisor_pair (b) - 0073
apply crt_coprime_divisor_pair - 0074
exact hc - 0075
exact hu_witness_right_right_left - 0076
exact hp_right_right_right_left - 0077
split - 0078
specialize crt_coprime_divisor_pair (m) - 0079
specialize crt_coprime_divisor_pair (n) - 0080
specialize crt_coprime_divisor_pair (x) - 0081
specialize crt_coprime_divisor_pair (x1) - 0082
apply crt_coprime_divisor_pair - 0083
exact hc - 0084
exact hu_witness_right_right_left - 0085
exact hv_witness_right_right_left - 0086
rewrite hu_witness_left - 0087
rewrite hv_witness_left - 0088
rewrite hp_right_right_right_right - 0089
trans a*(x*(b*x1)) - 0090
apply mul_assoc - 0091
trans a*((x*b)*x1) - 0092
congr - 0093
refl - 0094
symm - 0095
apply mul_assoc - 0096
trans a*((b*x)*x1) - 0097
congr - 0098
refl - 0099
congr - 0100
apply mul_comm - 0101
refl - 0102
trans a*(b*(x*x1)) - 0103
congr - 0104
refl - 0105
apply mul_assoc - 0106
symm - 0107
apply mul_assoc