Exact expanded first-order arithmetic statement
forall m n b c d e. ~(m=0) -> ~(n=0) -> (forall jt_divisor_crtcoprime. (exists jt_factor_crtcoprimea. (m)=(jt_divisor_crtcoprime)*jt_factor_crtcoprimea) -> (exists jt_factor_crtcoprimeb. (n)=(jt_divisor_crtcoprime)*jt_factor_crtcoprimeb) -> jt_divisor_crtcoprime=1) -> forall k. exists f g. forall jt_index_crtexists. (exists jt_gap_crtexistsindex. jt_gap_crtexistsindex+S (jt_index_crtexists)=(k)) -> exists jt_left_crtexists jt_right_crtexists jt_output_crtexists. ((((exists fs_h_jt_crtexistsleft. fs_h_jt_crtexistsleft + S (jt_left_crtexists) = S ((S (jt_index_crtexists)) * c)) /\ exists fs_q_jt_crtexistsleft. b = fs_q_jt_crtexistsleft * S ((S (jt_index_crtexists)) * c) + (jt_left_crtexists))) /\ (((((exists fs_h_jt_crtexistsright. fs_h_jt_crtexistsright + S (jt_right_crtexists) = S ((S (jt_index_crtexists)) * e)) /\ exists fs_q_jt_crtexistsright. d = fs_q_jt_crtexistsright * S ((S (jt_index_crtexists)) * e) + (jt_right_crtexists))) /\ (((((exists fs_h_jt_crtexistsoutput. fs_h_jt_crtexistsoutput + S (jt_output_crtexists) = S ((S (jt_index_crtexists)) * g)) /\ exists fs_q_jt_crtexistsoutput. f = fs_q_jt_crtexistsoutput * S ((S (jt_index_crtexists)) * g) + (jt_output_crtexists))) /\ (((exists jt_left_crtexistsmodleft jt_right_crtexistsmodleft. (jt_output_crtexists)+(m)*jt_left_crtexistsmodleft=(jt_left_crtexists)+(m)*jt_right_crtexistsmodleft) /\ (exists jt_left_crtexistsmodright jt_right_crtexistsmodright. (jt_output_crtexists)+(n)*jt_left_crtexistsmodright=(jt_right_crtexists)+(n)*jt_right_crtexistsmodright))))))))Constructive proof overview
Generated structural guide
Construct simultaneous residue representatives coordinate by coordinate, without any tuple totality premise.
The unchanged tactic script uses 4 declared prerequisites and contains 64 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
JT002A jordan_crt_tuple_empty beta_at_exists Alpha theorem; checked-use authorized binary_crt Alpha theorem; checked-use authorized JT002B jordan_crt_tuple_extendDirect 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.
Named ingredients (2)
01Fix variables and assumptionsL1–9
02Induction on kL10–10
Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.
- L10
induction k
03Construct an explicit witnessL11–12
04Use earlier factsL13–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L13
specialize jordan_crt_tuple_empty (m) - L14
specialize jordan_crt_tuple_empty (n) - L15
specialize jordan_crt_tuple_empty (b) - L16
specialize jordan_crt_tuple_empty (c) - L17
specialize jordan_crt_tuple_empty (d) - L18
specialize jordan_crt_tuple_empty (e) - L19
specialize jordan_crt_tuple_empty (0) - L20
specialize jordan_crt_tuple_empty (0) - L21
apply jordan_crt_tuple_empty
05Separate the logical casesL22–23
06Establish haL24–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L24
have ha : exists a. ((exists fs_h_jt_crttotalleft. fs_h_jt_crttotalleft + S (a) = S ((S (k)) * c)) /\ exists fs_q_jt_crttotalleft. b = fs_q_jt_crttotalleft * S ((S (k)) * c) + (a)) - L25
specialize beta_at_exists (b) - L26
specialize beta_at_exists (c) - L27
specialize beta_at_exists (k) - L28
apply beta_at_exists
07Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L29
cases ha
08Establish hzL30–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L30
have hz : exists z. ((exists fs_h_jt_crttotalright. fs_h_jt_crttotalright + S (z) = S ((S (k)) * e)) /\ exists fs_q_jt_crttotalright. d = fs_q_jt_crttotalright * S ((S (k)) * e) + (z)) - L31
specialize beta_at_exists (d) - L32
specialize beta_at_exists (e) - L33
specialize beta_at_exists (k) - L34
apply beta_at_exists
09Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
cases hz
10Establish hwL36–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary crt.
- L36
have hw : exists w. ((exists jt_left_crttotalmodleft jt_right_crttotalmodleft. (w)+(m)*jt_left_crttotalmodleft=(x2)+(m)*jt_right_crttotalmodleft) /\ (exists jt_left_crttotalmodright jt_right_crttotalmodright. (w)+(n)*jt_left_crttotalmodright=(x3)+(n)*jt_right_crttotalmodright)) - L37
specialize binary_crt (m) - L38
specialize binary_crt (n) - L39
specialize binary_crt (x2) - L40
specialize binary_crt (x3) - L41
apply binary_crt - L42
exact hm - L43
exact hn - L44
exact hcop
11Separate the logical casesL45–46
12Use earlier factsL47–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
specialize jordan_crt_tuple_extend (m) - L48
specialize jordan_crt_tuple_extend (n) - L49
specialize jordan_crt_tuple_extend (b) - L50
specialize jordan_crt_tuple_extend (c) - L51
specialize jordan_crt_tuple_extend (d) - L52
specialize jordan_crt_tuple_extend (e) - L53
specialize jordan_crt_tuple_extend (x) - L54
specialize jordan_crt_tuple_extend (x1) - L55
specialize jordan_crt_tuple_extend (k) - L56
specialize jordan_crt_tuple_extend (x2)
13Use earlier factsL57–64
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 64 lines
- 0001
intro m - 0002
intro n - 0003
intro b - 0004
intro c - 0005
intro d - 0006
intro e - 0007
intro hm - 0008
intro hn - 0009
intro hcop - 0010
induction k - 0011
exists 0 - 0012
exists 0 - 0013
specialize jordan_crt_tuple_empty (m) - 0014
specialize jordan_crt_tuple_empty (n) - 0015
specialize jordan_crt_tuple_empty (b) - 0016
specialize jordan_crt_tuple_empty (c) - 0017
specialize jordan_crt_tuple_empty (d) - 0018
specialize jordan_crt_tuple_empty (e) - 0019
specialize jordan_crt_tuple_empty (0) - 0020
specialize jordan_crt_tuple_empty (0) - 0021
apply jordan_crt_tuple_empty - 0022
cases IH - 0023
cases IH_witness - 0024
have ha : exists a. ((exists fs_h_jt_crttotalleft. fs_h_jt_crttotalleft + S (a) = S ((S (k)) * c)) /\ exists fs_q_jt_crttotalleft. b = fs_q_jt_crttotalleft * S ((S (k)) * c) + (a)) - 0025
specialize beta_at_exists (b) - 0026
specialize beta_at_exists (c) - 0027
specialize beta_at_exists (k) - 0028
apply beta_at_exists - 0029
cases ha - 0030
have hz : exists z. ((exists fs_h_jt_crttotalright. fs_h_jt_crttotalright + S (z) = S ((S (k)) * e)) /\ exists fs_q_jt_crttotalright. d = fs_q_jt_crttotalright * S ((S (k)) * e) + (z)) - 0031
specialize beta_at_exists (d) - 0032
specialize beta_at_exists (e) - 0033
specialize beta_at_exists (k) - 0034
apply beta_at_exists - 0035
cases hz - 0036
have hw : exists w. ((exists jt_left_crttotalmodleft jt_right_crttotalmodleft. (w)+(m)*jt_left_crttotalmodleft=(x2)+(m)*jt_right_crttotalmodleft) /\ (exists jt_left_crttotalmodright jt_right_crttotalmodright. (w)+(n)*jt_left_crttotalmodright=(x3)+(n)*jt_right_crttotalmodright)) - 0037
specialize binary_crt (m) - 0038
specialize binary_crt (n) - 0039
specialize binary_crt (x2) - 0040
specialize binary_crt (x3) - 0041
apply binary_crt - 0042
exact hm - 0043
exact hn - 0044
exact hcop - 0045
cases hw - 0046
cases hw_witness - 0047
specialize jordan_crt_tuple_extend (m) - 0048
specialize jordan_crt_tuple_extend (n) - 0049
specialize jordan_crt_tuple_extend (b) - 0050
specialize jordan_crt_tuple_extend (c) - 0051
specialize jordan_crt_tuple_extend (d) - 0052
specialize jordan_crt_tuple_extend (e) - 0053
specialize jordan_crt_tuple_extend (x) - 0054
specialize jordan_crt_tuple_extend (x1) - 0055
specialize jordan_crt_tuple_extend (k) - 0056
specialize jordan_crt_tuple_extend (x2) - 0057
specialize jordan_crt_tuple_extend (x3) - 0058
specialize jordan_crt_tuple_extend (x4) - 0059
apply jordan_crt_tuple_extend - 0060
exact IH_witness_witness - 0061
exact ha_witness - 0062
exact hz_witness - 0063
exact hw_witness_left - 0064
exact hw_witness_right