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_solvable_pairs_forward gcomp_right_index_gfull_solvable_pairs_forward gcomp_left_residue_gfull_solvable_pairs_forward gcomp_right_residue_gfull_solvable_pairs_forward gcomp_left_modulus_gfull_solvable_pairs_forward gcomp_right_modulus_gfull_solvable_pairs_forward gcomp_pair_gcd_gfull_solvable_pairs_forward. (exists ff_lt_gcrt_gfull_solvable_pairs_forward_left_bound. ff_lt_gcrt_gfull_solvable_pairs_forward_left_bound + S gcomp_left_index_gfull_solvable_pairs_forward = l) -> (exists ff_lt_gcrt_gfull_solvable_pairs_forward_right_bound. ff_lt_gcrt_gfull_solvable_pairs_forward_right_bound + S gcomp_right_index_gfull_solvable_pairs_forward = l) -> (((exists ff_h_gcrt_gfull_solvable_pairs_forward_left_residue. ff_h_gcrt_gfull_solvable_pairs_forward_left_residue + S (gcomp_left_residue_gfull_solvable_pairs_forward) = S ((S (gcomp_left_index_gfull_solvable_pairs_forward)) * s)) /\ exists ff_q_gcrt_gfull_solvable_pairs_forward_left_residue. r = ff_q_gcrt_gfull_solvable_pairs_forward_left_residue * S ((S (gcomp_left_index_gfull_solvable_pairs_forward)) * s) + (gcomp_left_residue_gfull_solvable_pairs_forward))) -> (((exists ff_h_gcrt_gfull_solvable_pairs_forward_right_residue. ff_h_gcrt_gfull_solvable_pairs_forward_right_residue + S (gcomp_right_residue_gfull_solvable_pairs_forward) = S ((S (gcomp_right_index_gfull_solvable_pairs_forward)) * s)) /\ exists ff_q_gcrt_gfull_solvable_pairs_forward_right_residue. r = ff_q_gcrt_gfull_solvable_pairs_forward_right_residue * S ((S (gcomp_right_index_gfull_solvable_pairs_forward)) * s) + (gcomp_right_residue_gfull_solvable_pairs_forward))) -> (((exists ff_h_gcrt_gfull_solvable_pairs_forward_left_modulus. ff_h_gcrt_gfull_solvable_pairs_forward_left_modulus + S (gcomp_left_modulus_gfull_solvable_pairs_forward) = S ((S (gcomp_left_index_gfull_solvable_pairs_forward)) * c)) /\ exists ff_q_gcrt_gfull_solvable_pairs_forward_left_modulus. b = ff_q_gcrt_gfull_solvable_pairs_forward_left_modulus * S ((S (gcomp_left_index_gfull_solvable_pairs_forward)) * c) + (gcomp_left_modulus_gfull_solvable_pairs_forward))) -> (((exists ff_h_gcrt_gfull_solvable_pairs_forward_right_modulus. ff_h_gcrt_gfull_solvable_pairs_forward_right_modulus + S (gcomp_right_modulus_gfull_solvable_pairs_forward) = S ((S (gcomp_right_index_gfull_solvable_pairs_forward)) * c)) /\ exists ff_q_gcrt_gfull_solvable_pairs_forward_right_modulus. b = ff_q_gcrt_gfull_solvable_pairs_forward_right_modulus * S ((S (gcomp_right_index_gfull_solvable_pairs_forward)) * c) + (gcomp_right_modulus_gfull_solvable_pairs_forward))) -> ((((exists hag_left_factor_gcomp_gfull_solvable_pairs_forward_gcd. gcomp_left_modulus_gfull_solvable_pairs_forward = gcomp_pair_gcd_gfull_solvable_pairs_forward * hag_left_factor_gcomp_gfull_solvable_pairs_forward_gcd) /\ (exists hag_right_factor_gcomp_gfull_solvable_pairs_forward_gcd. gcomp_right_modulus_gfull_solvable_pairs_forward = gcomp_pair_gcd_gfull_solvable_pairs_forward * hag_right_factor_gcomp_gfull_solvable_pairs_forward_gcd)) /\ forall hag_divisor_gcomp_gfull_solvable_pairs_forward_gcd. (exists hag_common_left_gcomp_gfull_solvable_pairs_forward_gcd. gcomp_left_modulus_gfull_solvable_pairs_forward = hag_divisor_gcomp_gfull_solvable_pairs_forward_gcd * hag_common_left_gcomp_gfull_solvable_pairs_forward_gcd) -> (exists hag_common_right_gcomp_gfull_solvable_pairs_forward_gcd. gcomp_right_modulus_gfull_solvable_pairs_forward = hag_divisor_gcomp_gfull_solvable_pairs_forward_gcd * hag_common_right_gcomp_gfull_solvable_pairs_forward_gcd) -> exists hag_greatest_factor_gcomp_gfull_solvable_pairs_forward_gcd. gcomp_pair_gcd_gfull_solvable_pairs_forward = hag_divisor_gcomp_gfull_solvable_pairs_forward_gcd * hag_greatest_factor_gcomp_gfull_solvable_pairs_forward_gcd)) -> (exists hgcrt_mod_left_gcrt_gfull_solvable_pairs_forward_result hgcrt_mod_right_gcrt_gfull_solvable_pairs_forward_result. gcomp_left_residue_gfull_solvable_pairs_forward + gcomp_pair_gcd_gfull_solvable_pairs_forward * hgcrt_mod_left_gcrt_gfull_solvable_pairs_forward_result = gcomp_right_residue_gfull_solvable_pairs_forward + gcomp_pair_gcd_gfull_solvable_pairs_forward * hgcrt_mod_right_gcrt_gfull_solvable_pairs_forward_result)) -> exists x. (forall gcrt_solution_index_gfull_solvable_solution_forward gcrt_solution_residue_gfull_solvable_solution_forward gcrt_solution_modulus_gfull_solvable_solution_forward. (exists ff_lt_gcrt_gfull_solvable_solution_forward_bound. ff_lt_gcrt_gfull_solvable_solution_forward_bound + S gcrt_solution_index_gfull_solvable_solution_forward = l) -> (((exists ff_h_gcrt_gfull_solvable_solution_forward_residue. ff_h_gcrt_gfull_solvable_solution_forward_residue + S (gcrt_solution_residue_gfull_solvable_solution_forward) = S ((S (gcrt_solution_index_gfull_solvable_solution_forward)) * s)) /\ exists ff_q_gcrt_gfull_solvable_solution_forward_residue. r = ff_q_gcrt_gfull_solvable_solution_forward_residue * S ((S (gcrt_solution_index_gfull_solvable_solution_forward)) * s) + (gcrt_solution_residue_gfull_solvable_solution_forward))) -> (((exists ff_h_gcrt_gfull_solvable_solution_forward_modulus. ff_h_gcrt_gfull_solvable_solution_forward_modulus + S (gcrt_solution_modulus_gfull_solvable_solution_forward) = S ((S (gcrt_solution_index_gfull_solvable_solution_forward)) * c)) /\ exists ff_q_gcrt_gfull_solvable_solution_forward_modulus. b = ff_q_gcrt_gfull_solvable_solution_forward_modulus * S ((S (gcrt_solution_index_gfull_solvable_solution_forward)) * c) + (gcrt_solution_modulus_gfull_solvable_solution_forward))) -> (exists hgcrt_mod_left_gcrt_gfull_solvable_solution_forward_congruence hgcrt_mod_right_gcrt_gfull_solvable_solution_forward_congruence. x + gcrt_solution_modulus_gfull_solvable_solution_forward * hgcrt_mod_left_gcrt_gfull_solvable_solution_forward_congruence = gcrt_solution_residue_gfull_solvable_solution_forward + gcrt_solution_modulus_gfull_solvable_solution_forward * hgcrt_mod_right_gcrt_gfull_solvable_solution_forward_congruence))) /\ ((exists x. (forall gcrt_solution_index_gfull_solvable_solution_backward gcrt_solution_residue_gfull_solvable_solution_backward gcrt_solution_modulus_gfull_solvable_solution_backward. (exists ff_lt_gcrt_gfull_solvable_solution_backward_bound. ff_lt_gcrt_gfull_solvable_solution_backward_bound + S gcrt_solution_index_gfull_solvable_solution_backward = l) -> (((exists ff_h_gcrt_gfull_solvable_solution_backward_residue. ff_h_gcrt_gfull_solvable_solution_backward_residue + S (gcrt_solution_residue_gfull_solvable_solution_backward) = S ((S (gcrt_solution_index_gfull_solvable_solution_backward)) * s)) /\ exists ff_q_gcrt_gfull_solvable_solution_backward_residue. r = ff_q_gcrt_gfull_solvable_solution_backward_residue * S ((S (gcrt_solution_index_gfull_solvable_solution_backward)) * s) + (gcrt_solution_residue_gfull_solvable_solution_backward))) -> (((exists ff_h_gcrt_gfull_solvable_solution_backward_modulus. ff_h_gcrt_gfull_solvable_solution_backward_modulus + S (gcrt_solution_modulus_gfull_solvable_solution_backward) = S ((S (gcrt_solution_index_gfull_solvable_solution_backward)) * c)) /\ exists ff_q_gcrt_gfull_solvable_solution_backward_modulus. b = ff_q_gcrt_gfull_solvable_solution_backward_modulus * S ((S (gcrt_solution_index_gfull_solvable_solution_backward)) * c) + (gcrt_solution_modulus_gfull_solvable_solution_backward))) -> (exists hgcrt_mod_left_gcrt_gfull_solvable_solution_backward_congruence hgcrt_mod_right_gcrt_gfull_solvable_solution_backward_congruence. x + gcrt_solution_modulus_gfull_solvable_solution_backward * hgcrt_mod_left_gcrt_gfull_solvable_solution_backward_congruence = gcrt_solution_residue_gfull_solvable_solution_backward + gcrt_solution_modulus_gfull_solvable_solution_backward * hgcrt_mod_right_gcrt_gfull_solvable_solution_backward_congruence))) -> (forall gcomp_left_index_gfull_solvable_pairs_backward gcomp_right_index_gfull_solvable_pairs_backward gcomp_left_residue_gfull_solvable_pairs_backward gcomp_right_residue_gfull_solvable_pairs_backward gcomp_left_modulus_gfull_solvable_pairs_backward gcomp_right_modulus_gfull_solvable_pairs_backward gcomp_pair_gcd_gfull_solvable_pairs_backward. (exists ff_lt_gcrt_gfull_solvable_pairs_backward_left_bound. ff_lt_gcrt_gfull_solvable_pairs_backward_left_bound + S gcomp_left_index_gfull_solvable_pairs_backward = l) -> (exists ff_lt_gcrt_gfull_solvable_pairs_backward_right_bound. ff_lt_gcrt_gfull_solvable_pairs_backward_right_bound + S gcomp_right_index_gfull_solvable_pairs_backward = l) -> (((exists ff_h_gcrt_gfull_solvable_pairs_backward_left_residue. ff_h_gcrt_gfull_solvable_pairs_backward_left_residue + S (gcomp_left_residue_gfull_solvable_pairs_backward) = S ((S (gcomp_left_index_gfull_solvable_pairs_backward)) * s)) /\ exists ff_q_gcrt_gfull_solvable_pairs_backward_left_residue. r = ff_q_gcrt_gfull_solvable_pairs_backward_left_residue * S ((S (gcomp_left_index_gfull_solvable_pairs_backward)) * s) + (gcomp_left_residue_gfull_solvable_pairs_backward))) -> (((exists ff_h_gcrt_gfull_solvable_pairs_backward_right_residue. ff_h_gcrt_gfull_solvable_pairs_backward_right_residue + S (gcomp_right_residue_gfull_solvable_pairs_backward) = S ((S (gcomp_right_index_gfull_solvable_pairs_backward)) * s)) /\ exists ff_q_gcrt_gfull_solvable_pairs_backward_right_residue. r = ff_q_gcrt_gfull_solvable_pairs_backward_right_residue * S ((S (gcomp_right_index_gfull_solvable_pairs_backward)) * s) + (gcomp_right_residue_gfull_solvable_pairs_backward))) -> (((exists ff_h_gcrt_gfull_solvable_pairs_backward_left_modulus. ff_h_gcrt_gfull_solvable_pairs_backward_left_modulus + S (gcomp_left_modulus_gfull_solvable_pairs_backward) = S ((S (gcomp_left_index_gfull_solvable_pairs_backward)) * c)) /\ exists ff_q_gcrt_gfull_solvable_pairs_backward_left_modulus. b = ff_q_gcrt_gfull_solvable_pairs_backward_left_modulus * S ((S (gcomp_left_index_gfull_solvable_pairs_backward)) * c) + (gcomp_left_modulus_gfull_solvable_pairs_backward))) -> (((exists ff_h_gcrt_gfull_solvable_pairs_backward_right_modulus. ff_h_gcrt_gfull_solvable_pairs_backward_right_modulus + S (gcomp_right_modulus_gfull_solvable_pairs_backward) = S ((S (gcomp_right_index_gfull_solvable_pairs_backward)) * c)) /\ exists ff_q_gcrt_gfull_solvable_pairs_backward_right_modulus. b = ff_q_gcrt_gfull_solvable_pairs_backward_right_modulus * S ((S (gcomp_right_index_gfull_solvable_pairs_backward)) * c) + (gcomp_right_modulus_gfull_solvable_pairs_backward))) -> ((((exists hag_left_factor_gcomp_gfull_solvable_pairs_backward_gcd. gcomp_left_modulus_gfull_solvable_pairs_backward = gcomp_pair_gcd_gfull_solvable_pairs_backward * hag_left_factor_gcomp_gfull_solvable_pairs_backward_gcd) /\ (exists hag_right_factor_gcomp_gfull_solvable_pairs_backward_gcd. gcomp_right_modulus_gfull_solvable_pairs_backward = gcomp_pair_gcd_gfull_solvable_pairs_backward * hag_right_factor_gcomp_gfull_solvable_pairs_backward_gcd)) /\ forall hag_divisor_gcomp_gfull_solvable_pairs_backward_gcd. (exists hag_common_left_gcomp_gfull_solvable_pairs_backward_gcd. gcomp_left_modulus_gfull_solvable_pairs_backward = hag_divisor_gcomp_gfull_solvable_pairs_backward_gcd * hag_common_left_gcomp_gfull_solvable_pairs_backward_gcd) -> (exists hag_common_right_gcomp_gfull_solvable_pairs_backward_gcd. gcomp_right_modulus_gfull_solvable_pairs_backward = hag_divisor_gcomp_gfull_solvable_pairs_backward_gcd * hag_common_right_gcomp_gfull_solvable_pairs_backward_gcd) -> exists hag_greatest_factor_gcomp_gfull_solvable_pairs_backward_gcd. gcomp_pair_gcd_gfull_solvable_pairs_backward = hag_divisor_gcomp_gfull_solvable_pairs_backward_gcd * hag_greatest_factor_gcomp_gfull_solvable_pairs_backward_gcd)) -> (exists hgcrt_mod_left_gcrt_gfull_solvable_pairs_backward_result hgcrt_mod_right_gcrt_gfull_solvable_pairs_backward_result. gcomp_left_residue_gfull_solvable_pairs_backward + gcomp_pair_gcd_gfull_solvable_pairs_backward * hgcrt_mod_left_gcrt_gfull_solvable_pairs_backward_result = gcomp_right_residue_gfull_solvable_pairs_backward + gcomp_pair_gcd_gfull_solvable_pairs_backward * hgcrt_mod_right_gcrt_gfull_solvable_pairs_backward_result))))Constructive proof overview
Generated structural guide
Exact pairwise gcd compatibility is necessary and sufficient for solvability of every finite natural congruence list, including zero moduli.
The unchanged tactic script uses 2 declared prerequisites and contains 24 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_solution_implies_pairwise_compatible 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. 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 (1)
01Fix variables and assumptionsL1–5
02Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
split
03Fix variables and assumptionsL7–7
Work with arbitrary variables or the premises of the current implication.
- L7
intro hp
04Use earlier factsL8–14
Instantiate or apply named facts and discharge the corresponding proof obligations.
- 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
05Fix variables and assumptionsL15–15
Work with arbitrary variables or the premises of the current implication.
- L15
intro hs
06Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
cases hs
07Use earlier factsL17–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L17
specialize crt_prefix_solution_implies_pairwise_compatible r - L18
specialize crt_prefix_solution_implies_pairwise_compatible s - L19
specialize crt_prefix_solution_implies_pairwise_compatible b - L20
specialize crt_prefix_solution_implies_pairwise_compatible c - L21
specialize crt_prefix_solution_implies_pairwise_compatible l - L22
specialize crt_prefix_solution_implies_pairwise_compatible x - L23
apply crt_prefix_solution_implies_pairwise_compatible - L24
exact hs_witness
Original exact command ledger · 24 lines
- 0001
intro r - 0002
intro s - 0003
intro b - 0004
intro c - 0005
intro l - 0006
split - 0007
intro hp - 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
intro hs - 0016
cases hs - 0017
specialize crt_prefix_solution_implies_pairwise_compatible r - 0018
specialize crt_prefix_solution_implies_pairwise_compatible s - 0019
specialize crt_prefix_solution_implies_pairwise_compatible b - 0020
specialize crt_prefix_solution_implies_pairwise_compatible c - 0021
specialize crt_prefix_solution_implies_pairwise_compatible l - 0022
specialize crt_prefix_solution_implies_pairwise_compatible x - 0023
apply crt_prefix_solution_implies_pairwise_compatible - 0024
exact hs_witness