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 p d a n r. ~(p=0) -> (forall ff_i_fms_bits. (exists ff_lt_fms_bits_bound. ff_lt_fms_bits_bound + S ff_i_fms_bits = (p)) -> exists ff_bit_fms_bits. ((((exists ff_h_fms_bits_decoded. ff_h_fms_bits_decoded + S (ff_bit_fms_bits) = S ((S (ff_i_fms_bits)) * (c))) /\ exists ff_q_fms_bits_decoded. (b) = ff_q_fms_bits_decoded * S ((S (ff_i_fms_bits)) * (c)) + (ff_bit_fms_bits))) /\ (ff_bit_fms_bits = 0 \/ ff_bit_fms_bits = 1))) -> (((exists fms_gap_member. fms_gap_member + S (a) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (a)) * c)) /\ exists fs_q_fms_member. b = fs_q_fms_member * S ((S (a)) * c) + (1))))) -> (exists fms_gap_lt. fms_gap_lt + S (r) = (p)) -> (exists fms_u_mod fms_v_mod. (a+n*d) + (p) * fms_u_mod = (r) + (p) * fms_v_mod) -> (((exists fs_h_cd_orbit_inside. fs_h_cd_orbit_inside + S (1) = S ((S (r)) * c)) /\ exists fs_q_cd_orbit_inside. b = fs_q_cd_orbit_inside * S ((S (r)) * c) + (1))) \/ (exists cd_source_boundary cd_target_boundary. ((((exists fms_gap_cd_boundary_source. fms_gap_cd_boundary_source + S (cd_source_boundary) = (p)) /\ (((exists fs_h_fms_cd_boundary_source. fs_h_fms_cd_boundary_source + S (1) = S ((S (cd_source_boundary)) * c)) /\ exists fs_q_fms_cd_boundary_source. b = fs_q_fms_cd_boundary_source * S ((S (cd_source_boundary)) * c) + (1))))) /\ ((exists fms_gap_cd_boundary_target. fms_gap_cd_boundary_target + S (cd_target_boundary) = (p)) /\ ((exists fms_u_cd_boundary_shift fms_v_cd_boundary_shift. (cd_source_boundary+d) + (p) * fms_u_cd_boundary_shift = (cd_target_boundary) + (p) * fms_v_cd_boundary_shift) /\ ~(((exists fs_h_cd_boundary_outside. fs_h_cd_boundary_outside + S (1) = S ((S (cd_target_boundary)) * c)) /\ exists fs_q_cd_boundary_outside. b = fs_q_cd_boundary_outside * S ((S (cd_target_boundary)) * c) + (1)))))))Constructive proof overview
Generated structural guide
Finite orbit induction either proves membership at the reached residue or constructs an actual first-exit edge.
The unchanged tactic script uses 10 declared prerequisites and contains 108 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
mul_zero_left Stable theorem; checked-use authorized mod_eq_bounded_unique Stable theorem; checked-use authorized CD0024 finite_modular_residue_exists CD0002 finite_bit_membership_decidable mod_eq_add Stable theorem; checked-use authorized mod_eq_refl Stable theorem; checked-use authorized mod_eq_symm Stable theorem; checked-use authorized mod_eq_trans Stable theorem; checked-use authorized mul_succ_left Stable theorem; checked-use authorized add_assoc 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–5
02Induction on nL6–12
03Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
cases hstart
04Establish hzeroL14–16
05Establish heL17–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq bounded unique.
06Separate the logical casesL25–25
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L25
left
07Calculate and transport equalitiesL26–27
08Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact hstart_right
09Fix variables and assumptionsL29–34
10Establish hprevL35–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular residue exists.
11Separate the logical casesL40–41
12Establish hcaseL42–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
13Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
cases hcase
14Establish hdecL51–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite bit membership decidable.
- L51
have hdec : (((exists fs_h_cd_orbit_decision. fs_h_cd_orbit_decision + S (1) = S ((S (r)) * c)) /\ exists fs_q_cd_orbit_decision. b = fs_q_cd_orbit_decision * S ((S (r)) * c) + (1))) \/ ~(((exists fs_h_cd_orbit_decision. fs_h_cd_orbit_decision + S (1) = S ((S (r)) * c)) /\ exists fs_q_cd_orbit_decision. b = fs_q_cd_orbit_decision * S ((S (r)) * c) + (1))) - L52
specialize finite_bit_membership_decidable b - L53
specialize finite_bit_membership_decidable c - L54
specialize finite_bit_membership_decidable p - L55
specialize finite_bit_membership_decidable r - L56
apply finite_bit_membership_decidable - L57
exact hbits - L58
exact hr
15Separate the logical casesL59–60
16Use earlier factsL61–61
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L61
exact hdec_left
17Separate the logical casesL62–62
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L62
right
18Construct an explicit witnessL63–64
19Separate the logical casesL65–66
20Use earlier factsL67–68
21Separate the logical casesL69–69
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L69
split
22Use earlier factsL70–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
exact hr
23Separate the logical casesL71–71
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L71
split
24Establish haddL72–81
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq add.
- L72
have hadd : exists fms_u_mod fms_v_mod. ((a+n*d)+d) + (p) * fms_u_mod = (x+d) + (p) * fms_v_mod - L73
specialize mod_eq_add p - L74
specialize mod_eq_add a+n*d - L75
specialize mod_eq_add x - L76
specialize mod_eq_add d - L77
specialize mod_eq_add d - L78
apply mod_eq_add - L79
exact hprev_witness_right - L80
specialize mod_eq_refl p - L81
specialize mod_eq_refl d
25Use earlier factsL82–91
Instantiate or apply named facts and discharge the corresponding proof obligations.
26Use earlier factsL92–92
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L92
exact hadd
27Establish heL93–93
Establish this local claim before using it. It is not an additional assumption.
- L93
have he : a+(S n)*d=(a+n*d)+d
28Establish hsL94–103
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul succ left.
29Calculate and transport equalitiesL104–104
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L104
rewrite <- he
30Use earlier factsL105–106
31Separate the logical casesL107–107
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L107
right
32Use earlier factsL108–108
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L108
exact hcase_right
Original exact command ledger · 108 lines
- 0001
intro b - 0002
intro c - 0003
intro p - 0004
intro d - 0005
intro a - 0006
induction n - 0007
intro r - 0008
intro hp - 0009
intro hbits - 0010
intro hstart - 0011
intro hr - 0012
intro hmod - 0013
cases hstart - 0014
have hzero : a+0*d=a - 0015
simp [mul_zero_left] - 0016
rewrite hzero at hmod - 0017
have he : a=r - 0018
specialize mod_eq_bounded_unique p - 0019
specialize mod_eq_bounded_unique a - 0020
specialize mod_eq_bounded_unique r - 0021
apply mod_eq_bounded_unique - 0022
exact hstart_left - 0023
exact hr - 0024
exact hmod - 0025
left - 0026
rewrite he at hstart_right - 0027
rewrite he at hstart_right - 0028
exact hstart_right - 0029
intro r - 0030
intro hp - 0031
intro hbits - 0032
intro hstart - 0033
intro hr - 0034
intro hmod - 0035
have hprev : exists v. (exists fms_gap_lt. fms_gap_lt + S (v) = (p)) /\ (exists fms_u_mod fms_v_mod. (a+n*d) + (p) * fms_u_mod = (v) + (p) * fms_v_mod) - 0036
specialize finite_modular_residue_exists p - 0037
specialize finite_modular_residue_exists a+n*d - 0038
apply finite_modular_residue_exists - 0039
exact hp - 0040
cases hprev - 0041
cases hprev_witness - 0042
have hcase : (((exists fs_h_cd_orbit_previous. fs_h_cd_orbit_previous + S (1) = S ((S (x)) * c)) /\ exists fs_q_cd_orbit_previous. b = fs_q_cd_orbit_previous * S ((S (x)) * c) + (1))) \/ (exists cd_source_boundary cd_target_boundary. ((((exists fms_gap_cd_boundary_source. fms_gap_cd_boundary_source + S (cd_source_boundary) = (p)) /\ (((exists fs_h_fms_cd_boundary_source. fs_h_fms_cd_boundary_source + S (1) = S ((S (cd_source_boundary)) * c)) /\ exists fs_q_fms_cd_boundary_source. b = fs_q_fms_cd_boundary_source * S ((S (cd_source_boundary)) * c) + (1))))) /\ ((exists fms_gap_cd_boundary_target. fms_gap_cd_boundary_target + S (cd_target_boundary) = (p)) /\ ((exists fms_u_cd_boundary_shift fms_v_cd_boundary_shift. (cd_source_boundary+d) + (p) * fms_u_cd_boundary_shift = (cd_target_boundary) + (p) * fms_v_cd_boundary_shift) /\ ~(((exists fs_h_cd_boundary_outside. fs_h_cd_boundary_outside + S (1) = S ((S (cd_target_boundary)) * c)) /\ exists fs_q_cd_boundary_outside. b = fs_q_cd_boundary_outside * S ((S (cd_target_boundary)) * c) + (1))))))) - 0043
specialize IH x - 0044
apply IH - 0045
exact hp - 0046
exact hbits - 0047
exact hstart - 0048
exact hprev_witness_left - 0049
exact hprev_witness_right - 0050
cases hcase - 0051
have hdec : (((exists fs_h_cd_orbit_decision. fs_h_cd_orbit_decision + S (1) = S ((S (r)) * c)) /\ exists fs_q_cd_orbit_decision. b = fs_q_cd_orbit_decision * S ((S (r)) * c) + (1))) \/ ~(((exists fs_h_cd_orbit_decision. fs_h_cd_orbit_decision + S (1) = S ((S (r)) * c)) /\ exists fs_q_cd_orbit_decision. b = fs_q_cd_orbit_decision * S ((S (r)) * c) + (1))) - 0052
specialize finite_bit_membership_decidable b - 0053
specialize finite_bit_membership_decidable c - 0054
specialize finite_bit_membership_decidable p - 0055
specialize finite_bit_membership_decidable r - 0056
apply finite_bit_membership_decidable - 0057
exact hbits - 0058
exact hr - 0059
cases hdec - 0060
left - 0061
exact hdec_left - 0062
right - 0063
exists x - 0064
exists r - 0065
split - 0066
split - 0067
exact hprev_witness_left - 0068
exact hcase_left - 0069
split - 0070
exact hr - 0071
split - 0072
have hadd : exists fms_u_mod fms_v_mod. ((a+n*d)+d) + (p) * fms_u_mod = (x+d) + (p) * fms_v_mod - 0073
specialize mod_eq_add p - 0074
specialize mod_eq_add a+n*d - 0075
specialize mod_eq_add x - 0076
specialize mod_eq_add d - 0077
specialize mod_eq_add d - 0078
apply mod_eq_add - 0079
exact hprev_witness_right - 0080
specialize mod_eq_refl p - 0081
specialize mod_eq_refl d - 0082
apply mod_eq_refl - 0083
specialize mod_eq_trans p - 0084
specialize mod_eq_trans x+d - 0085
specialize mod_eq_trans (a+n*d)+d - 0086
specialize mod_eq_trans r - 0087
apply mod_eq_trans - 0088
specialize mod_eq_symm p - 0089
specialize mod_eq_symm (a+n*d)+d - 0090
specialize mod_eq_symm x+d - 0091
apply mod_eq_symm - 0092
exact hadd - 0093
have he : a+(S n)*d=(a+n*d)+d - 0094
have hs : (S n)*d=n*d+d - 0095
specialize mul_succ_left n - 0096
specialize mul_succ_left d - 0097
apply mul_succ_left - 0098
rewrite hs - 0099
symm - 0100
specialize add_assoc a - 0101
specialize add_assoc n*d - 0102
specialize add_assoc d - 0103
apply add_assoc - 0104
rewrite <- he - 0105
exact hmod - 0106
exact hdec_right - 0107
right - 0108
exact hcase_right