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 d e ub uc vb vc p t h r K L l. (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((K)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((K)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (uc))) /\ exists ff_q_fms_count_summand. (ub) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (uc)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (uc))) /\ exists ff_q_fms_count_decoded. (ub) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (uc)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) -> (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((L)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((L)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (vc))) /\ exists ff_q_fms_count_summand. (vb) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (vc)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (vc))) /\ exists ff_q_fms_count_decoded. (vb) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (vc)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) -> (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((l)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((l)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (e))) /\ exists ff_q_fms_count_summand. (d) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (e)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (e))) /\ exists ff_q_fms_count_decoded. (d) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (e)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) -> (((forall cd_output_dyson_upper. (exists fms_gap_cd_dyson_upper_bound. fms_gap_cd_dyson_upper_bound + S (cd_output_dyson_upper) = (p)) -> ((((((exists fs_h_cd_dyson_upper_result. fs_h_cd_dyson_upper_result + S (1) = S ((S (cd_output_dyson_upper)) * uc)) /\ exists fs_q_cd_dyson_upper_result. ub = fs_q_cd_dyson_upper_result * S ((S (cd_output_dyson_upper)) * uc) + (1))) -> ((((exists fs_h_cd_dyson_upper_old. fs_h_cd_dyson_upper_old + S (1) = S ((S (cd_output_dyson_upper)) * c)) /\ exists fs_q_cd_dyson_upper_old. b = fs_q_cd_dyson_upper_old * S ((S (cd_output_dyson_upper)) * c) + (1))) \/ (exists cd_source_dyson_upper. (((exists fms_gap_cd_dyson_upper_member. fms_gap_cd_dyson_upper_member + S (cd_source_dyson_upper) = (p)) /\ (((exists fs_h_fms_cd_dyson_upper_member. fs_h_fms_cd_dyson_upper_member + S (1) = S ((S (cd_source_dyson_upper)) * e)) /\ exists fs_q_fms_cd_dyson_upper_member. d = fs_q_fms_cd_dyson_upper_member * S ((S (cd_source_dyson_upper)) * e) + (1))))) /\ (exists fms_u_cd_dyson_upper_mod fms_v_cd_dyson_upper_mod. (cd_source_dyson_upper+t) + (p) * fms_u_cd_dyson_upper_mod = (cd_output_dyson_upper) + (p) * fms_v_cd_dyson_upper_mod)))) /\ (((((exists fs_h_cd_dyson_upper_old. fs_h_cd_dyson_upper_old + S (1) = S ((S (cd_output_dyson_upper)) * c)) /\ exists fs_q_cd_dyson_upper_old. b = fs_q_cd_dyson_upper_old * S ((S (cd_output_dyson_upper)) * c) + (1))) \/ (exists cd_source_dyson_upper. (((exists fms_gap_cd_dyson_upper_member. fms_gap_cd_dyson_upper_member + S (cd_source_dyson_upper) = (p)) /\ (((exists fs_h_fms_cd_dyson_upper_member. fs_h_fms_cd_dyson_upper_member + S (1) = S ((S (cd_source_dyson_upper)) * e)) /\ exists fs_q_fms_cd_dyson_upper_member. d = fs_q_fms_cd_dyson_upper_member * S ((S (cd_source_dyson_upper)) * e) + (1))))) /\ (exists fms_u_cd_dyson_upper_mod fms_v_cd_dyson_upper_mod. (cd_source_dyson_upper+t) + (p) * fms_u_cd_dyson_upper_mod = (cd_output_dyson_upper) + (p) * fms_v_cd_dyson_upper_mod))) -> (((exists fs_h_cd_dyson_upper_result. fs_h_cd_dyson_upper_result + S (1) = S ((S (cd_output_dyson_upper)) * uc)) /\ exists fs_q_cd_dyson_upper_result. ub = fs_q_cd_dyson_upper_result * S ((S (cd_output_dyson_upper)) * uc) + (1))))))) /\ (forall cd_output_dyson_lower. (exists fms_gap_cd_dyson_lower_bound. fms_gap_cd_dyson_lower_bound + S (cd_output_dyson_lower) = (p)) -> ((((((exists fs_h_cd_dyson_lower_result. fs_h_cd_dyson_lower_result + S (1) = S ((S (cd_output_dyson_lower)) * vc)) /\ exists fs_q_cd_dyson_lower_result. vb = fs_q_cd_dyson_lower_result * S ((S (cd_output_dyson_lower)) * vc) + (1))) -> ((((exists fs_h_cd_dyson_lower_old. fs_h_cd_dyson_lower_old + S (1) = S ((S (cd_output_dyson_lower)) * e)) /\ exists fs_q_cd_dyson_lower_old. d = fs_q_cd_dyson_lower_old * S ((S (cd_output_dyson_lower)) * e) + (1))) /\ (exists cd_source_dyson_lower. (((exists fms_gap_cd_dyson_lower_member. fms_gap_cd_dyson_lower_member + S (cd_source_dyson_lower) = (p)) /\ (((exists fs_h_fms_cd_dyson_lower_member. fs_h_fms_cd_dyson_lower_member + S (1) = S ((S (cd_source_dyson_lower)) * c)) /\ exists fs_q_fms_cd_dyson_lower_member. b = fs_q_fms_cd_dyson_lower_member * S ((S (cd_source_dyson_lower)) * c) + (1))))) /\ (exists fms_u_cd_dyson_lower_mod fms_v_cd_dyson_lower_mod. (cd_output_dyson_lower+t) + (p) * fms_u_cd_dyson_lower_mod = (cd_source_dyson_lower) + (p) * fms_v_cd_dyson_lower_mod)))) /\ (((((exists fs_h_cd_dyson_lower_old. fs_h_cd_dyson_lower_old + S (1) = S ((S (cd_output_dyson_lower)) * e)) /\ exists fs_q_cd_dyson_lower_old. d = fs_q_cd_dyson_lower_old * S ((S (cd_output_dyson_lower)) * e) + (1))) /\ (exists cd_source_dyson_lower. (((exists fms_gap_cd_dyson_lower_member. fms_gap_cd_dyson_lower_member + S (cd_source_dyson_lower) = (p)) /\ (((exists fs_h_fms_cd_dyson_lower_member. fs_h_fms_cd_dyson_lower_member + S (1) = S ((S (cd_source_dyson_lower)) * c)) /\ exists fs_q_fms_cd_dyson_lower_member. b = fs_q_fms_cd_dyson_lower_member * S ((S (cd_source_dyson_lower)) * c) + (1))))) /\ (exists fms_u_cd_dyson_lower_mod fms_v_cd_dyson_lower_mod. (cd_output_dyson_lower+t) + (p) * fms_u_cd_dyson_lower_mod = (cd_source_dyson_lower) + (p) * fms_v_cd_dyson_lower_mod))) -> (((exists fs_h_cd_dyson_lower_result. fs_h_cd_dyson_lower_result + S (1) = S ((S (cd_output_dyson_lower)) * vc)) /\ exists fs_q_cd_dyson_lower_result. vb = fs_q_cd_dyson_lower_result * S ((S (cd_output_dyson_lower)) * vc) + (1))))))))) -> (((exists fms_gap_member. fms_gap_member + S (0) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (0)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (0)) * e) + (1))))) -> (((exists fms_gap_member. fms_gap_member + S (h) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (h)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (h)) * e) + (1))))) -> ((((exists fms_gap_cd_boundary_source. fms_gap_cd_boundary_source + S (t) = (p)) /\ (((exists fs_h_fms_cd_boundary_source. fs_h_fms_cd_boundary_source + S (1) = S ((S (t)) * c)) /\ exists fs_q_fms_cd_boundary_source. b = fs_q_fms_cd_boundary_source * S ((S (t)) * c) + (1))))) /\ ((exists fms_gap_cd_boundary_target. fms_gap_cd_boundary_target + S (r) = (p)) /\ ((exists fms_u_cd_boundary_shift fms_v_cd_boundary_shift. (t+h) + (p) * fms_u_cd_boundary_shift = (r) + (p) * fms_v_cd_boundary_shift) /\ ~(((exists fs_h_cd_boundary_outside. fs_h_cd_boundary_outside + S (1) = S ((S (r)) * c)) /\ exists fs_q_cd_boundary_outside. b = fs_q_cd_boundary_outside * S ((S (r)) * c) + (1)))))) -> ~(K=0) /\ (~(L=0) /\ (exists fms_gap_lt. fms_gap_lt + S (L) = (l)))Constructive proof overview
Generated structural guide
An actual boundary transform keeps both sets nonempty and strictly decreases the second exact cardinality.
The unchanged tactic script uses 7 declared prerequisites and contains 127 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
CD0039 finite_modular_dyson_upper_member CD003B finite_modular_dyson_lower_zero_member CD000A finite_bit_member_count_nonzero CD003A finite_modular_dyson_lower_subset CD003C finite_modular_dyson_lower_boundary_nonmember CD0019 finite_bit_nonmember_zero CD000C finite_bit_count_proper_subset_ltDirect 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 (7)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–22
04Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
cases hdyson
05Establish hsourceL24–24
Establish this local claim before using it. It is not an additional assumption.
- L24
have hsource : ((exists fms_gap_member. fms_gap_member + S (t) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (t)) * c)) /\ exists fs_q_fms_member. b = fs_q_fms_member * S ((S (t)) * c) + (1))))
06Separate the logical casesL25–25
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L25
cases hboundary
07Use earlier factsL26–26
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L26
exact hboundary_left
08Establish hupperL27–36
Establish this local claim before using it. It is not an additional assumption.
- L27
have hupper : ((exists fms_gap_member. fms_gap_member + S (t) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (t)) * uc)) /\ exists fs_q_fms_member. ub = fs_q_fms_member * S ((S (t)) * uc) + (1)))) - L28
specialize finite_modular_dyson_upper_member b - L29
specialize finite_modular_dyson_upper_member c - L30
specialize finite_modular_dyson_upper_member d - L31
specialize finite_modular_dyson_upper_member e - L32
specialize finite_modular_dyson_upper_member ub - L33
specialize finite_modular_dyson_upper_member uc - L34
specialize finite_modular_dyson_upper_member p - L35
specialize finite_modular_dyson_upper_member t - L36
specialize finite_modular_dyson_upper_member t
09Use earlier factsL37–39
10Establish hlowerL40–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular dyson lower zero member.
- L40
have hlower : ((exists fms_gap_member. fms_gap_member + S (0) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (0)) * vc)) /\ exists fs_q_fms_member. vb = fs_q_fms_member * S ((S (0)) * vc) + (1)))) - L41
specialize finite_modular_dyson_lower_zero_member b - L42
specialize finite_modular_dyson_lower_zero_member c - L43
specialize finite_modular_dyson_lower_zero_member d - L44
specialize finite_modular_dyson_lower_zero_member e - L45
specialize finite_modular_dyson_lower_zero_member vb - L46
specialize finite_modular_dyson_lower_zero_member vc - L47
specialize finite_modular_dyson_lower_zero_member p - L48
specialize finite_modular_dyson_lower_zero_member t - L49
apply finite_modular_dyson_lower_zero_member
11Use earlier factsL50–52
12Establish hhL53–53
Establish this local claim before using it. It is not an additional assumption.
- L53
have hh : exists fms_gap_lt. fms_gap_lt + S (h) = (p)
13Separate the logical casesL54–54
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L54
cases hstep
14Use earlier factsL55–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L55
exact hstep_left
15Establish hmissingL56–65
Establish this local claim before using it. It is not an additional assumption.
- L56
have hmissing : ~(((exists fs_h_cd_strict_missing. fs_h_cd_strict_missing + S (1) = S ((S (h)) * vc)) /\ exists fs_q_cd_strict_missing. vb = fs_q_cd_strict_missing * S ((S (h)) * vc) + (1))) - L57
intro hv - L58
specialize finite_modular_dyson_lower_boundary_nonmember b - L59
specialize finite_modular_dyson_lower_boundary_nonmember c - L60
specialize finite_modular_dyson_lower_boundary_nonmember d - L61
specialize finite_modular_dyson_lower_boundary_nonmember e - L62
specialize finite_modular_dyson_lower_boundary_nonmember vb - L63
specialize finite_modular_dyson_lower_boundary_nonmember vc - L64
specialize finite_modular_dyson_lower_boundary_nonmember p - L65
specialize finite_modular_dyson_lower_boundary_nonmember t
16Use earlier factsL66–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
17Separate the logical casesL73–73
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L73
split
18Fix variables and assumptionsL74–74
Work with arbitrary variables or the premises of the current implication.
- L74
intro hz
19Use earlier factsL75–83
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L75
specialize finite_bit_member_count_nonzero ub - L76
specialize finite_bit_member_count_nonzero uc - L77
specialize finite_bit_member_count_nonzero p - L78
specialize finite_bit_member_count_nonzero K - L79
specialize finite_bit_member_count_nonzero t - L80
apply finite_bit_member_count_nonzero - L81
exact hU - L82
exact hupper - L83
exact hz
20Separate the logical casesL84–84
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L84
split
21Fix variables and assumptionsL85–85
Work with arbitrary variables or the premises of the current implication.
- L85
intro hz
22Use earlier factsL86–95
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L86
specialize finite_bit_member_count_nonzero vb - L87
specialize finite_bit_member_count_nonzero vc - L88
specialize finite_bit_member_count_nonzero p - L89
specialize finite_bit_member_count_nonzero L - L90
specialize finite_bit_member_count_nonzero 0 - L91
apply finite_bit_member_count_nonzero - L92
exact hV - L93
exact hlower - L94
exact hz - L95
specialize finite_bit_count_proper_subset_lt vb
23Use earlier factsL96–105
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L96
specialize finite_bit_count_proper_subset_lt vc - L97
specialize finite_bit_count_proper_subset_lt d - L98
specialize finite_bit_count_proper_subset_lt e - L99
specialize finite_bit_count_proper_subset_lt p - L100
specialize finite_bit_count_proper_subset_lt L - L101
specialize finite_bit_count_proper_subset_lt l - L102
specialize finite_bit_count_proper_subset_lt h - L103
apply finite_bit_count_proper_subset_lt - L104
exact hV - L105
exact hB
24Use earlier factsL106–115
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L106
specialize finite_modular_dyson_lower_subset b - L107
specialize finite_modular_dyson_lower_subset c - L108
specialize finite_modular_dyson_lower_subset d - L109
specialize finite_modular_dyson_lower_subset e - L110
specialize finite_modular_dyson_lower_subset vb - L111
specialize finite_modular_dyson_lower_subset vc - L112
specialize finite_modular_dyson_lower_subset p - L113
specialize finite_modular_dyson_lower_subset t - L114
apply finite_modular_dyson_lower_subset - L115
exact hdyson_right
25Use earlier factsL116–121
Instantiate or apply named facts and discharge the corresponding proof obligations.
26Separate the logical casesL122–122
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L122
cases hV
27Use earlier factsL123–125
28Separate the logical casesL126–126
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L126
cases hstep
29Use earlier factsL127–127
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L127
exact hstep_right
Original exact command ledger · 127 lines
- 0001
intro b - 0002
intro c - 0003
intro d - 0004
intro e - 0005
intro ub - 0006
intro uc - 0007
intro vb - 0008
intro vc - 0009
intro p - 0010
intro t - 0011
intro h - 0012
intro r - 0013
intro K - 0014
intro L - 0015
intro l - 0016
intro hU - 0017
intro hV - 0018
intro hB - 0019
intro hdyson - 0020
intro hzero - 0021
intro hstep - 0022
intro hboundary - 0023
cases hdyson - 0024
have hsource : ((exists fms_gap_member. fms_gap_member + S (t) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (t)) * c)) /\ exists fs_q_fms_member. b = fs_q_fms_member * S ((S (t)) * c) + (1)))) - 0025
cases hboundary - 0026
exact hboundary_left - 0027
have hupper : ((exists fms_gap_member. fms_gap_member + S (t) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (t)) * uc)) /\ exists fs_q_fms_member. ub = fs_q_fms_member * S ((S (t)) * uc) + (1)))) - 0028
specialize finite_modular_dyson_upper_member b - 0029
specialize finite_modular_dyson_upper_member c - 0030
specialize finite_modular_dyson_upper_member d - 0031
specialize finite_modular_dyson_upper_member e - 0032
specialize finite_modular_dyson_upper_member ub - 0033
specialize finite_modular_dyson_upper_member uc - 0034
specialize finite_modular_dyson_upper_member p - 0035
specialize finite_modular_dyson_upper_member t - 0036
specialize finite_modular_dyson_upper_member t - 0037
apply finite_modular_dyson_upper_member - 0038
exact hdyson_left - 0039
exact hsource - 0040
have hlower : ((exists fms_gap_member. fms_gap_member + S (0) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (0)) * vc)) /\ exists fs_q_fms_member. vb = fs_q_fms_member * S ((S (0)) * vc) + (1)))) - 0041
specialize finite_modular_dyson_lower_zero_member b - 0042
specialize finite_modular_dyson_lower_zero_member c - 0043
specialize finite_modular_dyson_lower_zero_member d - 0044
specialize finite_modular_dyson_lower_zero_member e - 0045
specialize finite_modular_dyson_lower_zero_member vb - 0046
specialize finite_modular_dyson_lower_zero_member vc - 0047
specialize finite_modular_dyson_lower_zero_member p - 0048
specialize finite_modular_dyson_lower_zero_member t - 0049
apply finite_modular_dyson_lower_zero_member - 0050
exact hdyson_right - 0051
exact hzero - 0052
exact hsource - 0053
have hh : exists fms_gap_lt. fms_gap_lt + S (h) = (p) - 0054
cases hstep - 0055
exact hstep_left - 0056
have hmissing : ~(((exists fs_h_cd_strict_missing. fs_h_cd_strict_missing + S (1) = S ((S (h)) * vc)) /\ exists fs_q_cd_strict_missing. vb = fs_q_cd_strict_missing * S ((S (h)) * vc) + (1))) - 0057
intro hv - 0058
specialize finite_modular_dyson_lower_boundary_nonmember b - 0059
specialize finite_modular_dyson_lower_boundary_nonmember c - 0060
specialize finite_modular_dyson_lower_boundary_nonmember d - 0061
specialize finite_modular_dyson_lower_boundary_nonmember e - 0062
specialize finite_modular_dyson_lower_boundary_nonmember vb - 0063
specialize finite_modular_dyson_lower_boundary_nonmember vc - 0064
specialize finite_modular_dyson_lower_boundary_nonmember p - 0065
specialize finite_modular_dyson_lower_boundary_nonmember t - 0066
specialize finite_modular_dyson_lower_boundary_nonmember h - 0067
specialize finite_modular_dyson_lower_boundary_nonmember r - 0068
apply finite_modular_dyson_lower_boundary_nonmember - 0069
exact hdyson_right - 0070
exact hboundary - 0071
exact hh - 0072
exact hv - 0073
split - 0074
intro hz - 0075
specialize finite_bit_member_count_nonzero ub - 0076
specialize finite_bit_member_count_nonzero uc - 0077
specialize finite_bit_member_count_nonzero p - 0078
specialize finite_bit_member_count_nonzero K - 0079
specialize finite_bit_member_count_nonzero t - 0080
apply finite_bit_member_count_nonzero - 0081
exact hU - 0082
exact hupper - 0083
exact hz - 0084
split - 0085
intro hz - 0086
specialize finite_bit_member_count_nonzero vb - 0087
specialize finite_bit_member_count_nonzero vc - 0088
specialize finite_bit_member_count_nonzero p - 0089
specialize finite_bit_member_count_nonzero L - 0090
specialize finite_bit_member_count_nonzero 0 - 0091
apply finite_bit_member_count_nonzero - 0092
exact hV - 0093
exact hlower - 0094
exact hz - 0095
specialize finite_bit_count_proper_subset_lt vb - 0096
specialize finite_bit_count_proper_subset_lt vc - 0097
specialize finite_bit_count_proper_subset_lt d - 0098
specialize finite_bit_count_proper_subset_lt e - 0099
specialize finite_bit_count_proper_subset_lt p - 0100
specialize finite_bit_count_proper_subset_lt L - 0101
specialize finite_bit_count_proper_subset_lt l - 0102
specialize finite_bit_count_proper_subset_lt h - 0103
apply finite_bit_count_proper_subset_lt - 0104
exact hV - 0105
exact hB - 0106
specialize finite_modular_dyson_lower_subset b - 0107
specialize finite_modular_dyson_lower_subset c - 0108
specialize finite_modular_dyson_lower_subset d - 0109
specialize finite_modular_dyson_lower_subset e - 0110
specialize finite_modular_dyson_lower_subset vb - 0111
specialize finite_modular_dyson_lower_subset vc - 0112
specialize finite_modular_dyson_lower_subset p - 0113
specialize finite_modular_dyson_lower_subset t - 0114
apply finite_modular_dyson_lower_subset - 0115
exact hdyson_right - 0116
exact hh - 0117
specialize finite_bit_nonmember_zero vb - 0118
specialize finite_bit_nonmember_zero vc - 0119
specialize finite_bit_nonmember_zero p - 0120
specialize finite_bit_nonmember_zero h - 0121
apply finite_bit_nonmember_zero - 0122
cases hV - 0123
exact hV_right - 0124
exact hh - 0125
exact hmissing - 0126
cases hstep - 0127
exact hstep_right