CR0006

crt_prefix_solution_drop_last

A solution of a successor list remains a solution of the predecessor prefix.

Alpha v34 checked-use · first admitted v24 · independently kernel and Lean verified; not Stable

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.

Historical partial components only: this chapter proves canonical solutions for finite positive pairwise-coprime systems and exact LCM solution classes. G011 is now closed in the separate Alpha-v27 generalized-crt branch for arbitrary pairwise-compatible systems, including noncoprime moduli. Full G011 proof · Alpha v27

Exact theorem in conservative defined notation

∀ r. ∀ s. ∀ b. ∀ c. ∀ l. ∀ x. CRTPrefixSolution(r,s,b,c,S l,x)CRTPrefixSolution(r,s,b,c,l,x)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

le_succ · checked external prerequisite
Original expanded first-order statement
forall r s b c l x. (forall gcrt_solution_index_solution_drop_source gcrt_solution_residue_solution_drop_source gcrt_solution_modulus_solution_drop_source. (exists ff_lt_gcrt_solution_drop_source_bound. ff_lt_gcrt_solution_drop_source_bound + S gcrt_solution_index_solution_drop_source = S l) -> (((exists ff_h_gcrt_solution_drop_source_residue. ff_h_gcrt_solution_drop_source_residue + S (gcrt_solution_residue_solution_drop_source) = S ((S (gcrt_solution_index_solution_drop_source)) * s)) /\ exists ff_q_gcrt_solution_drop_source_residue. r = ff_q_gcrt_solution_drop_source_residue * S ((S (gcrt_solution_index_solution_drop_source)) * s) + (gcrt_solution_residue_solution_drop_source))) -> (((exists ff_h_gcrt_solution_drop_source_modulus. ff_h_gcrt_solution_drop_source_modulus + S (gcrt_solution_modulus_solution_drop_source) = S ((S (gcrt_solution_index_solution_drop_source)) * c)) /\ exists ff_q_gcrt_solution_drop_source_modulus. b = ff_q_gcrt_solution_drop_source_modulus * S ((S (gcrt_solution_index_solution_drop_source)) * c) + (gcrt_solution_modulus_solution_drop_source))) -> (exists hgcrt_mod_left_gcrt_solution_drop_source_congruence hgcrt_mod_right_gcrt_solution_drop_source_congruence. x + gcrt_solution_modulus_solution_drop_source * hgcrt_mod_left_gcrt_solution_drop_source_congruence = gcrt_solution_residue_solution_drop_source + gcrt_solution_modulus_solution_drop_source * hgcrt_mod_right_gcrt_solution_drop_source_congruence)) -> (forall gcrt_solution_index_solution_drop_result gcrt_solution_residue_solution_drop_result gcrt_solution_modulus_solution_drop_result. (exists ff_lt_gcrt_solution_drop_result_bound. ff_lt_gcrt_solution_drop_result_bound + S gcrt_solution_index_solution_drop_result = l) -> (((exists ff_h_gcrt_solution_drop_result_residue. ff_h_gcrt_solution_drop_result_residue + S (gcrt_solution_residue_solution_drop_result) = S ((S (gcrt_solution_index_solution_drop_result)) * s)) /\ exists ff_q_gcrt_solution_drop_result_residue. r = ff_q_gcrt_solution_drop_result_residue * S ((S (gcrt_solution_index_solution_drop_result)) * s) + (gcrt_solution_residue_solution_drop_result))) -> (((exists ff_h_gcrt_solution_drop_result_modulus. ff_h_gcrt_solution_drop_result_modulus + S (gcrt_solution_modulus_solution_drop_result) = S ((S (gcrt_solution_index_solution_drop_result)) * c)) /\ exists ff_q_gcrt_solution_drop_result_modulus. b = ff_q_gcrt_solution_drop_result_modulus * S ((S (gcrt_solution_index_solution_drop_result)) * c) + (gcrt_solution_modulus_solution_drop_result))) -> (exists hgcrt_mod_left_gcrt_solution_drop_result_congruence hgcrt_mod_right_gcrt_solution_drop_result_congruence. x + gcrt_solution_modulus_solution_drop_result * hgcrt_mod_left_gcrt_solution_drop_result_congruence = gcrt_solution_residue_solution_drop_result + gcrt_solution_modulus_solution_drop_result * hgcrt_mod_right_gcrt_solution_drop_result_congruence))

Complete unchanged native tactic proof

All 23 lines are the exact independently kernel-checked original script.

Read the argument

Proof checkpoints

23 script commands · 3 reading checkpoints · 0 local claims

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

01Fix variables and assumptionsL1–10

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro r
  2. L2
    intro s
  3. L3
    intro b
  4. L4
    intro c
  5. L5
    intro l
  6. L6
    intro x
  7. L7
    intro hsolution
  8. L8
    intro i
  9. L9
    intro a
  10. L10
    intro m
02Fix variables and assumptionsL11–13

Work with arbitrary variables or the premises of the current implication.

  1. L11
    intro hi
  2. L12
    intro ha
  3. L13
    intro hm
03Use earlier factsL14–23

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L14
    specialize hsolution i
  2. L15
    specialize hsolution a
  3. L16
    specialize hsolution m
  4. L17
    apply hsolution
  5. L18
    specialize le_succ (S i)
  6. L19
    specialize le_succ l
  7. L20
    apply le_succ
  8. L21
    exact hi
  9. L22
    exact ha
  10. L23
    exact hm

Library-wide reading audit

Original defined command ledger · 23 lines
  1. 0001intro r
  2. 0002intro s
  3. 0003intro b
  4. 0004intro c
  5. 0005intro l
  6. 0006intro x
  7. 0007intro hsolution
  8. 0008intro i
  9. 0009intro a
  10. 0010intro m
  11. 0011intro hi
  12. 0012intro ha
  13. 0013intro hm
  14. 0014specialize hsolution i
  15. 0015specialize hsolution a
  16. 0016specialize hsolution m
  17. 0017apply hsolution
  18. 0018specialize le_succ (S i)
  19. 0019specialize le_succ l
  20. 0020apply le_succ
  21. 0021exact hi
  22. 0022exact ha
  23. 0023exact hm