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 r s b c l. (forall gcomp_left_index_gfull_normalized_exists_pairs gcomp_right_index_gfull_normalized_exists_pairs gcomp_left_residue_gfull_normalized_exists_pairs gcomp_right_residue_gfull_normalized_exists_pairs gcomp_left_modulus_gfull_normalized_exists_pairs gcomp_right_modulus_gfull_normalized_exists_pairs gcomp_pair_gcd_gfull_normalized_exists_pairs. (exists ff_lt_gcrt_gfull_normalized_exists_pairs_left_bound. ff_lt_gcrt_gfull_normalized_exists_pairs_left_bound + S gcomp_left_index_gfull_normalized_exists_pairs = l) -> (exists ff_lt_gcrt_gfull_normalized_exists_pairs_right_bound. ff_lt_gcrt_gfull_normalized_exists_pairs_right_bound + S gcomp_right_index_gfull_normalized_exists_pairs = l) -> (((exists ff_h_gcrt_gfull_normalized_exists_pairs_left_residue. ff_h_gcrt_gfull_normalized_exists_pairs_left_residue + S (gcomp_left_residue_gfull_normalized_exists_pairs) = S ((S (gcomp_left_index_gfull_normalized_exists_pairs)) * s)) /\ exists ff_q_gcrt_gfull_normalized_exists_pairs_left_residue. r = ff_q_gcrt_gfull_normalized_exists_pairs_left_residue * S ((S (gcomp_left_index_gfull_normalized_exists_pairs)) * s) + (gcomp_left_residue_gfull_normalized_exists_pairs))) -> (((exists ff_h_gcrt_gfull_normalized_exists_pairs_right_residue. ff_h_gcrt_gfull_normalized_exists_pairs_right_residue + S (gcomp_right_residue_gfull_normalized_exists_pairs) = S ((S (gcomp_right_index_gfull_normalized_exists_pairs)) * s)) /\ exists ff_q_gcrt_gfull_normalized_exists_pairs_right_residue. r = ff_q_gcrt_gfull_normalized_exists_pairs_right_residue * S ((S (gcomp_right_index_gfull_normalized_exists_pairs)) * s) + (gcomp_right_residue_gfull_normalized_exists_pairs))) -> (((exists ff_h_gcrt_gfull_normalized_exists_pairs_left_modulus. ff_h_gcrt_gfull_normalized_exists_pairs_left_modulus + S (gcomp_left_modulus_gfull_normalized_exists_pairs) = S ((S (gcomp_left_index_gfull_normalized_exists_pairs)) * c)) /\ exists ff_q_gcrt_gfull_normalized_exists_pairs_left_modulus. b = ff_q_gcrt_gfull_normalized_exists_pairs_left_modulus * S ((S (gcomp_left_index_gfull_normalized_exists_pairs)) * c) + (gcomp_left_modulus_gfull_normalized_exists_pairs))) -> (((exists ff_h_gcrt_gfull_normalized_exists_pairs_right_modulus. ff_h_gcrt_gfull_normalized_exists_pairs_right_modulus + S (gcomp_right_modulus_gfull_normalized_exists_pairs) = S ((S (gcomp_right_index_gfull_normalized_exists_pairs)) * c)) /\ exists ff_q_gcrt_gfull_normalized_exists_pairs_right_modulus. b = ff_q_gcrt_gfull_normalized_exists_pairs_right_modulus * S ((S (gcomp_right_index_gfull_normalized_exists_pairs)) * c) + (gcomp_right_modulus_gfull_normalized_exists_pairs))) -> ((((exists hag_left_factor_gcomp_gfull_normalized_exists_pairs_gcd. gcomp_left_modulus_gfull_normalized_exists_pairs = gcomp_pair_gcd_gfull_normalized_exists_pairs * hag_left_factor_gcomp_gfull_normalized_exists_pairs_gcd) /\ (exists hag_right_factor_gcomp_gfull_normalized_exists_pairs_gcd. gcomp_right_modulus_gfull_normalized_exists_pairs = gcomp_pair_gcd_gfull_normalized_exists_pairs * hag_right_factor_gcomp_gfull_normalized_exists_pairs_gcd)) /\ forall hag_divisor_gcomp_gfull_normalized_exists_pairs_gcd. (exists hag_common_left_gcomp_gfull_normalized_exists_pairs_gcd. gcomp_left_modulus_gfull_normalized_exists_pairs = hag_divisor_gcomp_gfull_normalized_exists_pairs_gcd * hag_common_left_gcomp_gfull_normalized_exists_pairs_gcd) -> (exists hag_common_right_gcomp_gfull_normalized_exists_pairs_gcd. gcomp_right_modulus_gfull_normalized_exists_pairs = hag_divisor_gcomp_gfull_normalized_exists_pairs_gcd * hag_common_right_gcomp_gfull_normalized_exists_pairs_gcd) -> exists hag_greatest_factor_gcomp_gfull_normalized_exists_pairs_gcd. gcomp_pair_gcd_gfull_normalized_exists_pairs = hag_divisor_gcomp_gfull_normalized_exists_pairs_gcd * hag_greatest_factor_gcomp_gfull_normalized_exists_pairs_gcd)) -> (exists hgcrt_mod_left_gcrt_gfull_normalized_exists_pairs_result hgcrt_mod_right_gcrt_gfull_normalized_exists_pairs_result. gcomp_left_residue_gfull_normalized_exists_pairs + gcomp_pair_gcd_gfull_normalized_exists_pairs * hgcrt_mod_left_gcrt_gfull_normalized_exists_pairs_result = gcomp_right_residue_gfull_normalized_exists_pairs + gcomp_pair_gcd_gfull_normalized_exists_pairs * hgcrt_mod_right_gcrt_gfull_normalized_exists_pairs_result)) -> exists x M. ((((((forall gcrt_common_index_gfull_normalized_exists_chosen_lcm_own gcrt_common_modulus_gfull_normalized_exists_chosen_lcm_own. (exists ff_lt_gcrt_gfull_normalized_exists_chosen_lcm_own_bound. ff_lt_gcrt_gfull_normalized_exists_chosen_lcm_own_bound + S gcrt_common_index_gfull_normalized_exists_chosen_lcm_own = l) -> (((exists ff_h_gcrt_gfull_normalized_exists_chosen_lcm_own_entry. ff_h_gcrt_gfull_normalized_exists_chosen_lcm_own_entry + S (gcrt_common_modulus_gfull_normalized_exists_chosen_lcm_own) = S ((S (gcrt_common_index_gfull_normalized_exists_chosen_lcm_own)) * c)) /\ exists ff_q_gcrt_gfull_normalized_exists_chosen_lcm_own_entry. b = ff_q_gcrt_gfull_normalized_exists_chosen_lcm_own_entry * S ((S (gcrt_common_index_gfull_normalized_exists_chosen_lcm_own)) * c) + (gcrt_common_modulus_gfull_normalized_exists_chosen_lcm_own))) -> exists gcrt_common_quotient_gfull_normalized_exists_chosen_lcm_own. M = gcrt_common_modulus_gfull_normalized_exists_chosen_lcm_own * gcrt_common_quotient_gfull_normalized_exists_chosen_lcm_own) /\ forall gcrt_lcm_common_gfull_normalized_exists_chosen_lcm. (forall gcrt_common_index_gfull_normalized_exists_chosen_lcm_other gcrt_common_modulus_gfull_normalized_exists_chosen_lcm_other. (exists ff_lt_gcrt_gfull_normalized_exists_chosen_lcm_other_bound. ff_lt_gcrt_gfull_normalized_exists_chosen_lcm_other_bound + S gcrt_common_index_gfull_normalized_exists_chosen_lcm_other = l) -> (((exists ff_h_gcrt_gfull_normalized_exists_chosen_lcm_other_entry. ff_h_gcrt_gfull_normalized_exists_chosen_lcm_other_entry + S (gcrt_common_modulus_gfull_normalized_exists_chosen_lcm_other) = S ((S (gcrt_common_index_gfull_normalized_exists_chosen_lcm_other)) * c)) /\ exists ff_q_gcrt_gfull_normalized_exists_chosen_lcm_other_entry. b = ff_q_gcrt_gfull_normalized_exists_chosen_lcm_other_entry * S ((S (gcrt_common_index_gfull_normalized_exists_chosen_lcm_other)) * c) + (gcrt_common_modulus_gfull_normalized_exists_chosen_lcm_other))) -> exists gcrt_common_quotient_gfull_normalized_exists_chosen_lcm_other. gcrt_lcm_common_gfull_normalized_exists_chosen_lcm = gcrt_common_modulus_gfull_normalized_exists_chosen_lcm_other * gcrt_common_quotient_gfull_normalized_exists_chosen_lcm_other) -> exists gcrt_lcm_quotient_gfull_normalized_exists_chosen_lcm. gcrt_lcm_common_gfull_normalized_exists_chosen_lcm = M * gcrt_lcm_quotient_gfull_normalized_exists_chosen_lcm)) /\ ((M = 0 \/ (exists ff_lt_gcrt_gfull_normalized_exists_chosen_bound. ff_lt_gcrt_gfull_normalized_exists_chosen_bound + S x = M)) /\ (forall gcrt_solution_index_gfull_normalized_exists_chosen_solution gcrt_solution_residue_gfull_normalized_exists_chosen_solution gcrt_solution_modulus_gfull_normalized_exists_chosen_solution. (exists ff_lt_gcrt_gfull_normalized_exists_chosen_solution_bound. ff_lt_gcrt_gfull_normalized_exists_chosen_solution_bound + S gcrt_solution_index_gfull_normalized_exists_chosen_solution = l) -> (((exists ff_h_gcrt_gfull_normalized_exists_chosen_solution_residue. ff_h_gcrt_gfull_normalized_exists_chosen_solution_residue + S (gcrt_solution_residue_gfull_normalized_exists_chosen_solution) = S ((S (gcrt_solution_index_gfull_normalized_exists_chosen_solution)) * s)) /\ exists ff_q_gcrt_gfull_normalized_exists_chosen_solution_residue. r = ff_q_gcrt_gfull_normalized_exists_chosen_solution_residue * S ((S (gcrt_solution_index_gfull_normalized_exists_chosen_solution)) * s) + (gcrt_solution_residue_gfull_normalized_exists_chosen_solution))) -> (((exists ff_h_gcrt_gfull_normalized_exists_chosen_solution_modulus. ff_h_gcrt_gfull_normalized_exists_chosen_solution_modulus + S (gcrt_solution_modulus_gfull_normalized_exists_chosen_solution) = S ((S (gcrt_solution_index_gfull_normalized_exists_chosen_solution)) * c)) /\ exists ff_q_gcrt_gfull_normalized_exists_chosen_solution_modulus. b = ff_q_gcrt_gfull_normalized_exists_chosen_solution_modulus * S ((S (gcrt_solution_index_gfull_normalized_exists_chosen_solution)) * c) + (gcrt_solution_modulus_gfull_normalized_exists_chosen_solution))) -> (exists hgcrt_mod_left_gcrt_gfull_normalized_exists_chosen_solution_congruence hgcrt_mod_right_gcrt_gfull_normalized_exists_chosen_solution_congruence. x + gcrt_solution_modulus_gfull_normalized_exists_chosen_solution * hgcrt_mod_left_gcrt_gfull_normalized_exists_chosen_solution_congruence = gcrt_solution_residue_gfull_normalized_exists_chosen_solution + gcrt_solution_modulus_gfull_normalized_exists_chosen_solution * hgcrt_mod_right_gcrt_gfull_normalized_exists_chosen_solution_congruence))))) /\ forall y. (((((forall gcrt_common_index_gfull_normalized_exists_compared_lcm_own gcrt_common_modulus_gfull_normalized_exists_compared_lcm_own. (exists ff_lt_gcrt_gfull_normalized_exists_compared_lcm_own_bound. ff_lt_gcrt_gfull_normalized_exists_compared_lcm_own_bound + S gcrt_common_index_gfull_normalized_exists_compared_lcm_own = l) -> (((exists ff_h_gcrt_gfull_normalized_exists_compared_lcm_own_entry. ff_h_gcrt_gfull_normalized_exists_compared_lcm_own_entry + S (gcrt_common_modulus_gfull_normalized_exists_compared_lcm_own) = S ((S (gcrt_common_index_gfull_normalized_exists_compared_lcm_own)) * c)) /\ exists ff_q_gcrt_gfull_normalized_exists_compared_lcm_own_entry. b = ff_q_gcrt_gfull_normalized_exists_compared_lcm_own_entry * S ((S (gcrt_common_index_gfull_normalized_exists_compared_lcm_own)) * c) + (gcrt_common_modulus_gfull_normalized_exists_compared_lcm_own))) -> exists gcrt_common_quotient_gfull_normalized_exists_compared_lcm_own. M = gcrt_common_modulus_gfull_normalized_exists_compared_lcm_own * gcrt_common_quotient_gfull_normalized_exists_compared_lcm_own) /\ forall gcrt_lcm_common_gfull_normalized_exists_compared_lcm. (forall gcrt_common_index_gfull_normalized_exists_compared_lcm_other gcrt_common_modulus_gfull_normalized_exists_compared_lcm_other. (exists ff_lt_gcrt_gfull_normalized_exists_compared_lcm_other_bound. ff_lt_gcrt_gfull_normalized_exists_compared_lcm_other_bound + S gcrt_common_index_gfull_normalized_exists_compared_lcm_other = l) -> (((exists ff_h_gcrt_gfull_normalized_exists_compared_lcm_other_entry. ff_h_gcrt_gfull_normalized_exists_compared_lcm_other_entry + S (gcrt_common_modulus_gfull_normalized_exists_compared_lcm_other) = S ((S (gcrt_common_index_gfull_normalized_exists_compared_lcm_other)) * c)) /\ exists ff_q_gcrt_gfull_normalized_exists_compared_lcm_other_entry. b = ff_q_gcrt_gfull_normalized_exists_compared_lcm_other_entry * S ((S (gcrt_common_index_gfull_normalized_exists_compared_lcm_other)) * c) + (gcrt_common_modulus_gfull_normalized_exists_compared_lcm_other))) -> exists gcrt_common_quotient_gfull_normalized_exists_compared_lcm_other. gcrt_lcm_common_gfull_normalized_exists_compared_lcm = gcrt_common_modulus_gfull_normalized_exists_compared_lcm_other * gcrt_common_quotient_gfull_normalized_exists_compared_lcm_other) -> exists gcrt_lcm_quotient_gfull_normalized_exists_compared_lcm. gcrt_lcm_common_gfull_normalized_exists_compared_lcm = M * gcrt_lcm_quotient_gfull_normalized_exists_compared_lcm)) /\ ((M = 0 \/ (exists ff_lt_gcrt_gfull_normalized_exists_compared_bound. ff_lt_gcrt_gfull_normalized_exists_compared_bound + S y = M)) /\ (forall gcrt_solution_index_gfull_normalized_exists_compared_solution gcrt_solution_residue_gfull_normalized_exists_compared_solution gcrt_solution_modulus_gfull_normalized_exists_compared_solution. (exists ff_lt_gcrt_gfull_normalized_exists_compared_solution_bound. ff_lt_gcrt_gfull_normalized_exists_compared_solution_bound + S gcrt_solution_index_gfull_normalized_exists_compared_solution = l) -> (((exists ff_h_gcrt_gfull_normalized_exists_compared_solution_residue. ff_h_gcrt_gfull_normalized_exists_compared_solution_residue + S (gcrt_solution_residue_gfull_normalized_exists_compared_solution) = S ((S (gcrt_solution_index_gfull_normalized_exists_compared_solution)) * s)) /\ exists ff_q_gcrt_gfull_normalized_exists_compared_solution_residue. r = ff_q_gcrt_gfull_normalized_exists_compared_solution_residue * S ((S (gcrt_solution_index_gfull_normalized_exists_compared_solution)) * s) + (gcrt_solution_residue_gfull_normalized_exists_compared_solution))) -> (((exists ff_h_gcrt_gfull_normalized_exists_compared_solution_modulus. ff_h_gcrt_gfull_normalized_exists_compared_solution_modulus + S (gcrt_solution_modulus_gfull_normalized_exists_compared_solution) = S ((S (gcrt_solution_index_gfull_normalized_exists_compared_solution)) * c)) /\ exists ff_q_gcrt_gfull_normalized_exists_compared_solution_modulus. b = ff_q_gcrt_gfull_normalized_exists_compared_solution_modulus * S ((S (gcrt_solution_index_gfull_normalized_exists_compared_solution)) * c) + (gcrt_solution_modulus_gfull_normalized_exists_compared_solution))) -> (exists hgcrt_mod_left_gcrt_gfull_normalized_exists_compared_solution_congruence hgcrt_mod_right_gcrt_gfull_normalized_exists_compared_solution_congruence. y + gcrt_solution_modulus_gfull_normalized_exists_compared_solution * hgcrt_mod_left_gcrt_gfull_normalized_exists_compared_solution_congruence = gcrt_solution_residue_gfull_normalized_exists_compared_solution + gcrt_solution_modulus_gfull_normalized_exists_compared_solution * hgcrt_mod_right_gcrt_gfull_normalized_exists_compared_solution_congruence))))) -> y = x)Constructive proof overview
Generated structural guide
Full zero-inclusive generalized CRT: every arbitrary pairwise-compatible finite list has its exact LCM and a unique normalized simultaneous solution; neither positivity nor an operational merge invariant is assumed.
The unchanged tactic script uses 4 declared prerequisites and contains 49 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
FC000E crt_pairwise_compatible_prefix_solution_exists crt_prefix_lcm_exists_unique Alpha theorem; checked-use authorized FC0012 crt_prefix_solution_normalized_exists FC0011 crt_normalized_prefix_solution_uniqueDirect 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 (3)
01Fix variables and assumptionsL1–6
02Establish hsL7–14
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt pairwise compatible prefix solution exists.
- L7
have hs : ∃ x. CRTPrefixSolution(r,s,b,c,l,x)Definitions: CRTPrefixSolution - L8
specialize crt_pairwise_compatible_prefix_solution_exists r - L9
specialize crt_pairwise_compatible_prefix_solution_exists s - L10
specialize crt_pairwise_compatible_prefix_solution_exists b - L11
specialize crt_pairwise_compatible_prefix_solution_exists c - L12
specialize crt_pairwise_compatible_prefix_solution_exists l - L13
apply crt_pairwise_compatible_prefix_solution_exists - L14
exact hp
03Separate the logical casesL15–15
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L15
cases hs
04Use earlier factsL16–18
05Separate the logical casesL19–20
06Establish hnL21–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt prefix solution normalized exists.
- L21
have hn : ∃ z. CRTNormalizedPrefixSolution(r,s,b,c,l,z,x1)Definitions: CRTNormalizedPrefixSolution - L22
specialize crt_prefix_solution_normalized_exists r - L23
specialize crt_prefix_solution_normalized_exists s - L24
specialize crt_prefix_solution_normalized_exists b - L25
specialize crt_prefix_solution_normalized_exists c - L26
specialize crt_prefix_solution_normalized_exists l - L27
specialize crt_prefix_solution_normalized_exists x1 - L28
specialize crt_prefix_solution_normalized_exists x - L29
apply crt_prefix_solution_normalized_exists - L30
exact crt_prefix_lcm_exists_unique_witness_left
07Use earlier factsL31–31
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
exact hs_witness
08Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
cases hn
09Construct an explicit witnessL33–34
10Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
split
11Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
exact hn_witness
12Fix variables and assumptionsL37–38
13Use earlier factsL39–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
specialize crt_normalized_prefix_solution_unique r - L40
specialize crt_normalized_prefix_solution_unique s - L41
specialize crt_normalized_prefix_solution_unique b - L42
specialize crt_normalized_prefix_solution_unique c - L43
specialize crt_normalized_prefix_solution_unique l - L44
specialize crt_normalized_prefix_solution_unique x1 - L45
specialize crt_normalized_prefix_solution_unique x2 - L46
specialize crt_normalized_prefix_solution_unique y - L47
apply crt_normalized_prefix_solution_unique - L48
exact hn_witness
14Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hy
Original exact command ledger · 49 lines
- 0001
intro r - 0002
intro s - 0003
intro b - 0004
intro c - 0005
intro l - 0006
intro hp - 0007
have hs : exists x. forall gcrt_solution_index_gfull_normalized_exists_actual gcrt_solution_residue_gfull_normalized_exists_actual gcrt_solution_modulus_gfull_normalized_exists_actual. (exists ff_lt_gcrt_gfull_normalized_exists_actual_bound. ff_lt_gcrt_gfull_normalized_exists_actual_bound + S gcrt_solution_index_gfull_normalized_exists_actual = l) -> (((exists ff_h_gcrt_gfull_normalized_exists_actual_residue. ff_h_gcrt_gfull_normalized_exists_actual_residue + S (gcrt_solution_residue_gfull_normalized_exists_actual) = S ((S (gcrt_solution_index_gfull_normalized_exists_actual)) * s)) /\ exists ff_q_gcrt_gfull_normalized_exists_actual_residue. r = ff_q_gcrt_gfull_normalized_exists_actual_residue * S ((S (gcrt_solution_index_gfull_normalized_exists_actual)) * s) + (gcrt_solution_residue_gfull_normalized_exists_actual))) -> (((exists ff_h_gcrt_gfull_normalized_exists_actual_modulus. ff_h_gcrt_gfull_normalized_exists_actual_modulus + S (gcrt_solution_modulus_gfull_normalized_exists_actual) = S ((S (gcrt_solution_index_gfull_normalized_exists_actual)) * c)) /\ exists ff_q_gcrt_gfull_normalized_exists_actual_modulus. b = ff_q_gcrt_gfull_normalized_exists_actual_modulus * S ((S (gcrt_solution_index_gfull_normalized_exists_actual)) * c) + (gcrt_solution_modulus_gfull_normalized_exists_actual))) -> (exists hgcrt_mod_left_gcrt_gfull_normalized_exists_actual_congruence hgcrt_mod_right_gcrt_gfull_normalized_exists_actual_congruence. x + gcrt_solution_modulus_gfull_normalized_exists_actual * hgcrt_mod_left_gcrt_gfull_normalized_exists_actual_congruence = gcrt_solution_residue_gfull_normalized_exists_actual + gcrt_solution_modulus_gfull_normalized_exists_actual * hgcrt_mod_right_gcrt_gfull_normalized_exists_actual_congruence) - 0008
specialize crt_pairwise_compatible_prefix_solution_exists r - 0009
specialize crt_pairwise_compatible_prefix_solution_exists s - 0010
specialize crt_pairwise_compatible_prefix_solution_exists b - 0011
specialize crt_pairwise_compatible_prefix_solution_exists c - 0012
specialize crt_pairwise_compatible_prefix_solution_exists l - 0013
apply crt_pairwise_compatible_prefix_solution_exists - 0014
exact hp - 0015
cases hs - 0016
specialize crt_prefix_lcm_exists_unique b - 0017
specialize crt_prefix_lcm_exists_unique c - 0018
specialize crt_prefix_lcm_exists_unique l - 0019
cases crt_prefix_lcm_exists_unique - 0020
cases crt_prefix_lcm_exists_unique_witness - 0021
have hn : exists z. ((((forall gcrt_common_index_gfull_normalized_exists_value_lcm_own gcrt_common_modulus_gfull_normalized_exists_value_lcm_own. (exists ff_lt_gcrt_gfull_normalized_exists_value_lcm_own_bound. ff_lt_gcrt_gfull_normalized_exists_value_lcm_own_bound + S gcrt_common_index_gfull_normalized_exists_value_lcm_own = l) -> (((exists ff_h_gcrt_gfull_normalized_exists_value_lcm_own_entry. ff_h_gcrt_gfull_normalized_exists_value_lcm_own_entry + S (gcrt_common_modulus_gfull_normalized_exists_value_lcm_own) = S ((S (gcrt_common_index_gfull_normalized_exists_value_lcm_own)) * c)) /\ exists ff_q_gcrt_gfull_normalized_exists_value_lcm_own_entry. b = ff_q_gcrt_gfull_normalized_exists_value_lcm_own_entry * S ((S (gcrt_common_index_gfull_normalized_exists_value_lcm_own)) * c) + (gcrt_common_modulus_gfull_normalized_exists_value_lcm_own))) -> exists gcrt_common_quotient_gfull_normalized_exists_value_lcm_own. x1 = gcrt_common_modulus_gfull_normalized_exists_value_lcm_own * gcrt_common_quotient_gfull_normalized_exists_value_lcm_own) /\ forall gcrt_lcm_common_gfull_normalized_exists_value_lcm. (forall gcrt_common_index_gfull_normalized_exists_value_lcm_other gcrt_common_modulus_gfull_normalized_exists_value_lcm_other. (exists ff_lt_gcrt_gfull_normalized_exists_value_lcm_other_bound. ff_lt_gcrt_gfull_normalized_exists_value_lcm_other_bound + S gcrt_common_index_gfull_normalized_exists_value_lcm_other = l) -> (((exists ff_h_gcrt_gfull_normalized_exists_value_lcm_other_entry. ff_h_gcrt_gfull_normalized_exists_value_lcm_other_entry + S (gcrt_common_modulus_gfull_normalized_exists_value_lcm_other) = S ((S (gcrt_common_index_gfull_normalized_exists_value_lcm_other)) * c)) /\ exists ff_q_gcrt_gfull_normalized_exists_value_lcm_other_entry. b = ff_q_gcrt_gfull_normalized_exists_value_lcm_other_entry * S ((S (gcrt_common_index_gfull_normalized_exists_value_lcm_other)) * c) + (gcrt_common_modulus_gfull_normalized_exists_value_lcm_other))) -> exists gcrt_common_quotient_gfull_normalized_exists_value_lcm_other. gcrt_lcm_common_gfull_normalized_exists_value_lcm = gcrt_common_modulus_gfull_normalized_exists_value_lcm_other * gcrt_common_quotient_gfull_normalized_exists_value_lcm_other) -> exists gcrt_lcm_quotient_gfull_normalized_exists_value_lcm. gcrt_lcm_common_gfull_normalized_exists_value_lcm = x1 * gcrt_lcm_quotient_gfull_normalized_exists_value_lcm)) /\ ((x1 = 0 \/ (exists ff_lt_gcrt_gfull_normalized_exists_value_bound. ff_lt_gcrt_gfull_normalized_exists_value_bound + S z = x1)) /\ (forall gcrt_solution_index_gfull_normalized_exists_value_solution gcrt_solution_residue_gfull_normalized_exists_value_solution gcrt_solution_modulus_gfull_normalized_exists_value_solution. (exists ff_lt_gcrt_gfull_normalized_exists_value_solution_bound. ff_lt_gcrt_gfull_normalized_exists_value_solution_bound + S gcrt_solution_index_gfull_normalized_exists_value_solution = l) -> (((exists ff_h_gcrt_gfull_normalized_exists_value_solution_residue. ff_h_gcrt_gfull_normalized_exists_value_solution_residue + S (gcrt_solution_residue_gfull_normalized_exists_value_solution) = S ((S (gcrt_solution_index_gfull_normalized_exists_value_solution)) * s)) /\ exists ff_q_gcrt_gfull_normalized_exists_value_solution_residue. r = ff_q_gcrt_gfull_normalized_exists_value_solution_residue * S ((S (gcrt_solution_index_gfull_normalized_exists_value_solution)) * s) + (gcrt_solution_residue_gfull_normalized_exists_value_solution))) -> (((exists ff_h_gcrt_gfull_normalized_exists_value_solution_modulus. ff_h_gcrt_gfull_normalized_exists_value_solution_modulus + S (gcrt_solution_modulus_gfull_normalized_exists_value_solution) = S ((S (gcrt_solution_index_gfull_normalized_exists_value_solution)) * c)) /\ exists ff_q_gcrt_gfull_normalized_exists_value_solution_modulus. b = ff_q_gcrt_gfull_normalized_exists_value_solution_modulus * S ((S (gcrt_solution_index_gfull_normalized_exists_value_solution)) * c) + (gcrt_solution_modulus_gfull_normalized_exists_value_solution))) -> (exists hgcrt_mod_left_gcrt_gfull_normalized_exists_value_solution_congruence hgcrt_mod_right_gcrt_gfull_normalized_exists_value_solution_congruence. z + gcrt_solution_modulus_gfull_normalized_exists_value_solution * hgcrt_mod_left_gcrt_gfull_normalized_exists_value_solution_congruence = gcrt_solution_residue_gfull_normalized_exists_value_solution + gcrt_solution_modulus_gfull_normalized_exists_value_solution * hgcrt_mod_right_gcrt_gfull_normalized_exists_value_solution_congruence)))) - 0022
specialize crt_prefix_solution_normalized_exists r - 0023
specialize crt_prefix_solution_normalized_exists s - 0024
specialize crt_prefix_solution_normalized_exists b - 0025
specialize crt_prefix_solution_normalized_exists c - 0026
specialize crt_prefix_solution_normalized_exists l - 0027
specialize crt_prefix_solution_normalized_exists x1 - 0028
specialize crt_prefix_solution_normalized_exists x - 0029
apply crt_prefix_solution_normalized_exists - 0030
exact crt_prefix_lcm_exists_unique_witness_left - 0031
exact hs_witness - 0032
cases hn - 0033
exists x2 - 0034
exists x1 - 0035
split - 0036
exact hn_witness - 0037
intro y - 0038
intro hy - 0039
specialize crt_normalized_prefix_solution_unique r - 0040
specialize crt_normalized_prefix_solution_unique s - 0041
specialize crt_normalized_prefix_solution_unique b - 0042
specialize crt_normalized_prefix_solution_unique c - 0043
specialize crt_normalized_prefix_solution_unique l - 0044
specialize crt_normalized_prefix_solution_unique x1 - 0045
specialize crt_normalized_prefix_solution_unique x2 - 0046
specialize crt_normalized_prefix_solution_unique y - 0047
apply crt_normalized_prefix_solution_unique - 0048
exact hn_witness - 0049
exact hy