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 first-order arithmetic statement
forall b c l n u v L g. (((forall gcrt_common_index_gfull_prefix_lcm_own gcrt_common_modulus_gfull_prefix_lcm_own. (exists ff_lt_gcrt_gfull_prefix_lcm_own_bound. ff_lt_gcrt_gfull_prefix_lcm_own_bound + S gcrt_common_index_gfull_prefix_lcm_own = l) -> (((exists ff_h_gcrt_gfull_prefix_lcm_own_entry. ff_h_gcrt_gfull_prefix_lcm_own_entry + S (gcrt_common_modulus_gfull_prefix_lcm_own) = S ((S (gcrt_common_index_gfull_prefix_lcm_own)) * c)) /\ exists ff_q_gcrt_gfull_prefix_lcm_own_entry. b = ff_q_gcrt_gfull_prefix_lcm_own_entry * S ((S (gcrt_common_index_gfull_prefix_lcm_own)) * c) + (gcrt_common_modulus_gfull_prefix_lcm_own))) -> exists gcrt_common_quotient_gfull_prefix_lcm_own. L = gcrt_common_modulus_gfull_prefix_lcm_own * gcrt_common_quotient_gfull_prefix_lcm_own) /\ forall gcrt_lcm_common_gfull_prefix_lcm. (forall gcrt_common_index_gfull_prefix_lcm_other gcrt_common_modulus_gfull_prefix_lcm_other. (exists ff_lt_gcrt_gfull_prefix_lcm_other_bound. ff_lt_gcrt_gfull_prefix_lcm_other_bound + S gcrt_common_index_gfull_prefix_lcm_other = l) -> (((exists ff_h_gcrt_gfull_prefix_lcm_other_entry. ff_h_gcrt_gfull_prefix_lcm_other_entry + S (gcrt_common_modulus_gfull_prefix_lcm_other) = S ((S (gcrt_common_index_gfull_prefix_lcm_other)) * c)) /\ exists ff_q_gcrt_gfull_prefix_lcm_other_entry. b = ff_q_gcrt_gfull_prefix_lcm_other_entry * S ((S (gcrt_common_index_gfull_prefix_lcm_other)) * c) + (gcrt_common_modulus_gfull_prefix_lcm_other))) -> exists gcrt_common_quotient_gfull_prefix_lcm_other. gcrt_lcm_common_gfull_prefix_lcm = gcrt_common_modulus_gfull_prefix_lcm_other * gcrt_common_quotient_gfull_prefix_lcm_other) -> exists gcrt_lcm_quotient_gfull_prefix_lcm. gcrt_lcm_common_gfull_prefix_lcm = L * gcrt_lcm_quotient_gfull_prefix_lcm)) -> (forall gfull_index_prefix_pointwise gfull_modulus_prefix_pointwise gfull_gcd_prefix_pointwise. (exists ff_lt_gcrt_gfull_prefix_pointwise_bound. ff_lt_gcrt_gfull_prefix_pointwise_bound + S gfull_index_prefix_pointwise = l) -> (((exists ff_h_gcrt_gfull_prefix_pointwise_entry. ff_h_gcrt_gfull_prefix_pointwise_entry + S (gfull_modulus_prefix_pointwise) = S ((S (gfull_index_prefix_pointwise)) * c)) /\ exists ff_q_gcrt_gfull_prefix_pointwise_entry. b = ff_q_gcrt_gfull_prefix_pointwise_entry * S ((S (gfull_index_prefix_pointwise)) * c) + (gfull_modulus_prefix_pointwise))) -> ((((exists ec_gcd_left_gfull_prefix_pointwise_gcd. gfull_modulus_prefix_pointwise = gfull_gcd_prefix_pointwise * ec_gcd_left_gfull_prefix_pointwise_gcd) /\ (exists ec_gcd_right_gfull_prefix_pointwise_gcd. n = gfull_gcd_prefix_pointwise * ec_gcd_right_gfull_prefix_pointwise_gcd)) /\ forall ec_gcd_common_gfull_prefix_pointwise_gcd. (exists ec_gcd_common_left_gfull_prefix_pointwise_gcd. gfull_modulus_prefix_pointwise = ec_gcd_common_gfull_prefix_pointwise_gcd * ec_gcd_common_left_gfull_prefix_pointwise_gcd) -> (exists ec_gcd_common_right_gfull_prefix_pointwise_gcd. n = ec_gcd_common_gfull_prefix_pointwise_gcd * ec_gcd_common_right_gfull_prefix_pointwise_gcd) -> exists ec_gcd_greatest_gfull_prefix_pointwise_gcd. gfull_gcd_prefix_pointwise = ec_gcd_common_gfull_prefix_pointwise_gcd * ec_gcd_greatest_gfull_prefix_pointwise_gcd)) -> (exists hgcrt_mod_left_gfull_prefix_pointwise_mod hgcrt_mod_right_gfull_prefix_pointwise_mod. u + gfull_gcd_prefix_pointwise * hgcrt_mod_left_gfull_prefix_pointwise_mod = v + gfull_gcd_prefix_pointwise * hgcrt_mod_right_gfull_prefix_pointwise_mod)) -> ((((exists ec_gcd_left_gfull_prefix_final_gcd. L = g * ec_gcd_left_gfull_prefix_final_gcd) /\ (exists ec_gcd_right_gfull_prefix_final_gcd. n = g * ec_gcd_right_gfull_prefix_final_gcd)) /\ forall ec_gcd_common_gfull_prefix_final_gcd. (exists ec_gcd_common_left_gfull_prefix_final_gcd. L = ec_gcd_common_gfull_prefix_final_gcd * ec_gcd_common_left_gfull_prefix_final_gcd) -> (exists ec_gcd_common_right_gfull_prefix_final_gcd. n = ec_gcd_common_gfull_prefix_final_gcd * ec_gcd_common_right_gfull_prefix_final_gcd) -> exists ec_gcd_greatest_gfull_prefix_final_gcd. g = ec_gcd_common_gfull_prefix_final_gcd * ec_gcd_greatest_gfull_prefix_final_gcd)) -> (exists hgcrt_mod_left_gfull_prefix_final_mod hgcrt_mod_right_gfull_prefix_final_mod. u + g * hgcrt_mod_left_gfull_prefix_final_mod = v + g * hgcrt_mod_right_gfull_prefix_final_mod)Constructive proof overview
Generated structural guide
Induction over every finite decoded modulus list lifts pointwise gcd congruences to congruence modulo the gcd of its exact list LCM; zero moduli and the empty list are included.
The unchanged tactic script uses 13 declared prerequisites and contains 135 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
crt_prefix_lcm_unique Alpha theorem; checked-use authorized crt_prefix_lcm_empty Alpha theorem; checked-use authorized canonical_gcd_one_left_iff Alpha theorem; checked-use authorized crt_mod_one_universal Alpha theorem; checked-use authorized crt_prefix_lcm_exists_unique Alpha theorem; checked-use authorized beta_at_exists Stable theorem; checked-use authorized lcm_exists_relational Stable theorem; checked-use authorized crt_prefix_lcm_successor_intro Alpha theorem; checked-use authorized canonical_gcd_exists Alpha theorem; checked-use authorized FC000A crt_prefix_gcd_congruences_drop_last FC0009 crt_gcd_lcm_distributes mod_eq_lcm_merge Stable theorem; checked-use authorized le_refl 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.
Named ingredients (2)
01Fix variables and assumptionsL1–2
02Induction on lL3–11
03Establish hLoneL12–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt prefix lcm unique.
- L12
have hLone : L = 1 - L13
specialize crt_prefix_lcm_unique b - L14
specialize crt_prefix_lcm_unique c - L15
specialize crt_prefix_lcm_unique 0 - L16
specialize crt_prefix_lcm_unique L - L17
specialize crt_prefix_lcm_unique 1 - L18
apply crt_prefix_lcm_unique - L19
exact hL - L20
specialize crt_prefix_lcm_empty b - L21
specialize crt_prefix_lcm_empty c
04Use earlier factsL22–22
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L22
apply crt_prefix_lcm_empty
05Establish hgoneL23–25
06Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
cases canonical_gcd_one_left_iff
07Use earlier factsL27–27
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L27
apply canonical_gcd_one_left_iff_left
08Calculate and transport equalitiesL28–29
09Use earlier factsL30–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L30
exact hg
10Calculate and transport equalitiesL31–32
11Use earlier factsL33–35
12Fix variables and assumptionsL36–43
13Use earlier factsL44–46
14Separate the logical casesL47–48
15Establish hmL49–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L49
have hm : exists m. ((exists ff_h_gcrt_gfull_prefix_actual_last. ff_h_gcrt_gfull_prefix_actual_last + S (m) = S ((S (l)) * c)) /\ exists ff_q_gcrt_gfull_prefix_actual_last. b = ff_q_gcrt_gfull_prefix_actual_last * S ((S (l)) * c) + (m)) - L50
specialize beta_at_exists b - L51
specialize beta_at_exists c - L52
specialize beta_at_exists l - L53
apply beta_at_exists
16Separate the logical casesL54–54
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L54
cases hm
17Establish hKL55–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lcm exists relational.
18Separate the logical casesL59–59
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L59
cases hK
19Establish hLeqL60–69
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt prefix lcm unique.
- L60
have hLeq : L = x2 - L61
specialize crt_prefix_lcm_unique b - L62
specialize crt_prefix_lcm_unique c - L63
specialize crt_prefix_lcm_unique (S l) - L64
specialize crt_prefix_lcm_unique L - L65
specialize crt_prefix_lcm_unique x2 - L66
apply crt_prefix_lcm_unique - L67
exact hL - L68
specialize crt_prefix_lcm_successor_intro b - L69
specialize crt_prefix_lcm_successor_intro c
20Use earlier factsL70–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
specialize crt_prefix_lcm_successor_intro l - L71
specialize crt_prefix_lcm_successor_intro x - L72
specialize crt_prefix_lcm_successor_intro x1 - L73
specialize crt_prefix_lcm_successor_intro x2 - L74
apply crt_prefix_lcm_successor_intro - L75
exact crt_prefix_lcm_exists_unique_witness_left - L76
exact hm_witness - L77
exact hK_witness
21Establish hdL78–81
22Separate the logical casesL82–82
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L82
cases hd
23Establish heL83–86
24Separate the logical casesL87–87
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L87
cases he
25Establish hmodL88–97
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L88
have hmod : exists hgcrt_mod_left_gfull_prefix_old_mod hgcrt_mod_right_gfull_prefix_old_mod. u + x3 * hgcrt_mod_left_gfull_prefix_old_mod = v + x3 * hgcrt_mod_right_gfull_prefix_old_mod - L89
specialize IH n - L90
specialize IH u - L91
specialize IH v - L92
specialize IH x - L93
specialize IH x3 - L94
apply IH - L95
exact crt_prefix_lcm_exists_unique_witness_left - L96
specialize crt_prefix_gcd_congruences_drop_last b - L97
specialize crt_prefix_gcd_congruences_drop_last c
26Use earlier factsL98–104
Instantiate or apply named facts and discharge the corresponding proof obligations.
27Establish hlatL105–114
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt gcd lcm distributes.
- L105
have hlat : Dvd(x3,g) ∧ Dvd(x4,g) ∧ (∀ x. Dvd(x3,x) → Dvd(x4,x) → Dvd(g,x))Definitions: Dvd - L106
specialize crt_gcd_lcm_distributes x - L107
specialize crt_gcd_lcm_distributes x1 - L108
specialize crt_gcd_lcm_distributes n - L109
specialize crt_gcd_lcm_distributes x2 - L110
specialize crt_gcd_lcm_distributes x3 - L111
specialize crt_gcd_lcm_distributes x4 - L112
specialize crt_gcd_lcm_distributes g - L113
apply crt_gcd_lcm_distributes - L114
exact hK_witness
28Use earlier factsL115–116
29Calculate and transport equalitiesL117–118
30Use earlier factsL119–128
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 135 lines
- 0001
intro b - 0002
intro c - 0003
induction l - 0004
intro n - 0005
intro u - 0006
intro v - 0007
intro L - 0008
intro g - 0009
intro hL - 0010
intro hp - 0011
intro hg - 0012
have hLone : L = 1 - 0013
specialize crt_prefix_lcm_unique b - 0014
specialize crt_prefix_lcm_unique c - 0015
specialize crt_prefix_lcm_unique 0 - 0016
specialize crt_prefix_lcm_unique L - 0017
specialize crt_prefix_lcm_unique 1 - 0018
apply crt_prefix_lcm_unique - 0019
exact hL - 0020
specialize crt_prefix_lcm_empty b - 0021
specialize crt_prefix_lcm_empty c - 0022
apply crt_prefix_lcm_empty - 0023
have hgone : g = 1 - 0024
specialize canonical_gcd_one_left_iff n - 0025
specialize canonical_gcd_one_left_iff g - 0026
cases canonical_gcd_one_left_iff - 0027
apply canonical_gcd_one_left_iff_left - 0028
rewrite <- hLone - 0029
rewrite <- hLone - 0030
exact hg - 0031
rewrite hgone - 0032
rewrite hgone - 0033
specialize crt_mod_one_universal u - 0034
specialize crt_mod_one_universal v - 0035
apply crt_mod_one_universal - 0036
intro n - 0037
intro u - 0038
intro v - 0039
intro L - 0040
intro g - 0041
intro hL - 0042
intro hp - 0043
intro hg - 0044
specialize crt_prefix_lcm_exists_unique b - 0045
specialize crt_prefix_lcm_exists_unique c - 0046
specialize crt_prefix_lcm_exists_unique l - 0047
cases crt_prefix_lcm_exists_unique - 0048
cases crt_prefix_lcm_exists_unique_witness - 0049
have hm : exists m. ((exists ff_h_gcrt_gfull_prefix_actual_last. ff_h_gcrt_gfull_prefix_actual_last + S (m) = S ((S (l)) * c)) /\ exists ff_q_gcrt_gfull_prefix_actual_last. b = ff_q_gcrt_gfull_prefix_actual_last * S ((S (l)) * c) + (m)) - 0050
specialize beta_at_exists b - 0051
specialize beta_at_exists c - 0052
specialize beta_at_exists l - 0053
apply beta_at_exists - 0054
cases hm - 0055
have hK : exists K. (((exists hscale_left_factor_gfull_prefix_binary_lcm. K = x * hscale_left_factor_gfull_prefix_binary_lcm) /\ (exists hscale_right_factor_gfull_prefix_binary_lcm. K = x1 * hscale_right_factor_gfull_prefix_binary_lcm)) /\ forall hscale_common_gfull_prefix_binary_lcm. (exists hscale_left_common_gfull_prefix_binary_lcm. hscale_common_gfull_prefix_binary_lcm = x * hscale_left_common_gfull_prefix_binary_lcm) -> (exists hscale_right_common_gfull_prefix_binary_lcm. hscale_common_gfull_prefix_binary_lcm = x1 * hscale_right_common_gfull_prefix_binary_lcm) -> exists hscale_least_factor_gfull_prefix_binary_lcm. hscale_common_gfull_prefix_binary_lcm = K * hscale_least_factor_gfull_prefix_binary_lcm) - 0056
specialize lcm_exists_relational x - 0057
specialize lcm_exists_relational x1 - 0058
apply lcm_exists_relational - 0059
cases hK - 0060
have hLeq : L = x2 - 0061
specialize crt_prefix_lcm_unique b - 0062
specialize crt_prefix_lcm_unique c - 0063
specialize crt_prefix_lcm_unique (S l) - 0064
specialize crt_prefix_lcm_unique L - 0065
specialize crt_prefix_lcm_unique x2 - 0066
apply crt_prefix_lcm_unique - 0067
exact hL - 0068
specialize crt_prefix_lcm_successor_intro b - 0069
specialize crt_prefix_lcm_successor_intro c - 0070
specialize crt_prefix_lcm_successor_intro l - 0071
specialize crt_prefix_lcm_successor_intro x - 0072
specialize crt_prefix_lcm_successor_intro x1 - 0073
specialize crt_prefix_lcm_successor_intro x2 - 0074
apply crt_prefix_lcm_successor_intro - 0075
exact crt_prefix_lcm_exists_unique_witness_left - 0076
exact hm_witness - 0077
exact hK_witness - 0078
have hd : exists d. (((exists ec_gcd_left_gfull_prefix_old_gcd. x = d * ec_gcd_left_gfull_prefix_old_gcd) /\ (exists ec_gcd_right_gfull_prefix_old_gcd. n = d * ec_gcd_right_gfull_prefix_old_gcd)) /\ forall ec_gcd_common_gfull_prefix_old_gcd. (exists ec_gcd_common_left_gfull_prefix_old_gcd. x = ec_gcd_common_gfull_prefix_old_gcd * ec_gcd_common_left_gfull_prefix_old_gcd) -> (exists ec_gcd_common_right_gfull_prefix_old_gcd. n = ec_gcd_common_gfull_prefix_old_gcd * ec_gcd_common_right_gfull_prefix_old_gcd) -> exists ec_gcd_greatest_gfull_prefix_old_gcd. d = ec_gcd_common_gfull_prefix_old_gcd * ec_gcd_greatest_gfull_prefix_old_gcd) - 0079
specialize canonical_gcd_exists x - 0080
specialize canonical_gcd_exists n - 0081
apply canonical_gcd_exists - 0082
cases hd - 0083
have he : exists e. (((exists ec_gcd_left_gfull_prefix_new_gcd. x1 = e * ec_gcd_left_gfull_prefix_new_gcd) /\ (exists ec_gcd_right_gfull_prefix_new_gcd. n = e * ec_gcd_right_gfull_prefix_new_gcd)) /\ forall ec_gcd_common_gfull_prefix_new_gcd. (exists ec_gcd_common_left_gfull_prefix_new_gcd. x1 = ec_gcd_common_gfull_prefix_new_gcd * ec_gcd_common_left_gfull_prefix_new_gcd) -> (exists ec_gcd_common_right_gfull_prefix_new_gcd. n = ec_gcd_common_gfull_prefix_new_gcd * ec_gcd_common_right_gfull_prefix_new_gcd) -> exists ec_gcd_greatest_gfull_prefix_new_gcd. e = ec_gcd_common_gfull_prefix_new_gcd * ec_gcd_greatest_gfull_prefix_new_gcd) - 0084
specialize canonical_gcd_exists x1 - 0085
specialize canonical_gcd_exists n - 0086
apply canonical_gcd_exists - 0087
cases he - 0088
have hmod : exists hgcrt_mod_left_gfull_prefix_old_mod hgcrt_mod_right_gfull_prefix_old_mod. u + x3 * hgcrt_mod_left_gfull_prefix_old_mod = v + x3 * hgcrt_mod_right_gfull_prefix_old_mod - 0089
specialize IH n - 0090
specialize IH u - 0091
specialize IH v - 0092
specialize IH x - 0093
specialize IH x3 - 0094
apply IH - 0095
exact crt_prefix_lcm_exists_unique_witness_left - 0096
specialize crt_prefix_gcd_congruences_drop_last b - 0097
specialize crt_prefix_gcd_congruences_drop_last c - 0098
specialize crt_prefix_gcd_congruences_drop_last l - 0099
specialize crt_prefix_gcd_congruences_drop_last n - 0100
specialize crt_prefix_gcd_congruences_drop_last u - 0101
specialize crt_prefix_gcd_congruences_drop_last v - 0102
apply crt_prefix_gcd_congruences_drop_last - 0103
exact hp - 0104
exact hd_witness - 0105
have hlat : (((exists hscale_left_factor_gfull_prefix_lattice_result. g = x3 * hscale_left_factor_gfull_prefix_lattice_result) /\ (exists hscale_right_factor_gfull_prefix_lattice_result. g = x4 * hscale_right_factor_gfull_prefix_lattice_result)) /\ forall hscale_common_gfull_prefix_lattice_result. (exists hscale_left_common_gfull_prefix_lattice_result. hscale_common_gfull_prefix_lattice_result = x3 * hscale_left_common_gfull_prefix_lattice_result) -> (exists hscale_right_common_gfull_prefix_lattice_result. hscale_common_gfull_prefix_lattice_result = x4 * hscale_right_common_gfull_prefix_lattice_result) -> exists hscale_least_factor_gfull_prefix_lattice_result. hscale_common_gfull_prefix_lattice_result = g * hscale_least_factor_gfull_prefix_lattice_result) - 0106
specialize crt_gcd_lcm_distributes x - 0107
specialize crt_gcd_lcm_distributes x1 - 0108
specialize crt_gcd_lcm_distributes n - 0109
specialize crt_gcd_lcm_distributes x2 - 0110
specialize crt_gcd_lcm_distributes x3 - 0111
specialize crt_gcd_lcm_distributes x4 - 0112
specialize crt_gcd_lcm_distributes g - 0113
apply crt_gcd_lcm_distributes - 0114
exact hK_witness - 0115
exact hd_witness - 0116
exact he_witness - 0117
rewrite <- hLeq - 0118
rewrite <- hLeq - 0119
exact hg - 0120
specialize mod_eq_lcm_merge g - 0121
specialize mod_eq_lcm_merge x3 - 0122
specialize mod_eq_lcm_merge x4 - 0123
specialize mod_eq_lcm_merge u - 0124
specialize mod_eq_lcm_merge v - 0125
apply mod_eq_lcm_merge - 0126
exact hlat - 0127
exact hmod - 0128
specialize hp l - 0129
specialize hp x1 - 0130
specialize hp x4 - 0131
apply hp - 0132
specialize le_refl (S l) - 0133
apply le_refl - 0134
exact hm_witness - 0135
exact he_witness