CD003E

finite_modular_dyson_strict_sizes

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

An actual boundary transform keeps both sets nonempty and strictly decreases the second exact cardinality.

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

Direct 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

127 script commands · 29 reading checkpoints · 5 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.

Named ingredients (7)
01Fix variables and assumptionsL1–10

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

  1. L1
    intro b
  2. L2
    intro c
  3. L3
    intro d
  4. L4
    intro e
  5. L5
    intro ub
  6. L6
    intro uc
  7. L7
    intro vb
  8. L8
    intro vc
  9. L9
    intro p
  10. L10
    intro t
02Fix variables and assumptionsL11–20

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

  1. L11
    intro h
  2. L12
    intro r
  3. L13
    intro K
  4. L14
    intro L
  5. L15
    intro l
  6. L16
    intro hU
  7. L17
    intro hV
  8. L18
    intro hB
  9. L19
    intro hdyson
  10. L20
    intro hzero
03Fix variables and assumptionsL21–22

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

  1. L21
    intro hstep
  2. L22
    intro hboundary
04Separate the logical casesL23–23

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L23
    cases hdyson
05Establish hsourceL24–24

Establish this local claim before using it. It is not an additional assumption.

  1. 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.

  1. L25
    cases hboundary
07Use earlier factsL26–26

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

  1. L26
    exact hboundary_left
08Establish hupperL27–36

Establish this local claim before using it. It is not an additional assumption.

  1. 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))))
  2. L28
    specialize finite_modular_dyson_upper_member b
  3. L29
    specialize finite_modular_dyson_upper_member c
  4. L30
    specialize finite_modular_dyson_upper_member d
  5. L31
    specialize finite_modular_dyson_upper_member e
  6. L32
    specialize finite_modular_dyson_upper_member ub
  7. L33
    specialize finite_modular_dyson_upper_member uc
  8. L34
    specialize finite_modular_dyson_upper_member p
  9. L35
    specialize finite_modular_dyson_upper_member t
  10. L36
    specialize finite_modular_dyson_upper_member t
09Use earlier factsL37–39

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

  1. L37
    apply finite_modular_dyson_upper_member
  2. L38
    exact hdyson_left
  3. L39
    exact hsource
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.

  1. 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))))
  2. L41
    specialize finite_modular_dyson_lower_zero_member b
  3. L42
    specialize finite_modular_dyson_lower_zero_member c
  4. L43
    specialize finite_modular_dyson_lower_zero_member d
  5. L44
    specialize finite_modular_dyson_lower_zero_member e
  6. L45
    specialize finite_modular_dyson_lower_zero_member vb
  7. L46
    specialize finite_modular_dyson_lower_zero_member vc
  8. L47
    specialize finite_modular_dyson_lower_zero_member p
  9. L48
    specialize finite_modular_dyson_lower_zero_member t
  10. L49
    apply finite_modular_dyson_lower_zero_member
11Use earlier factsL50–52

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

  1. L50
    exact hdyson_right
  2. L51
    exact hzero
  3. L52
    exact hsource
12Establish hhL53–53

Establish this local claim before using it. It is not an additional assumption.

  1. 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.

  1. L54
    cases hstep
14Use earlier factsL55–55

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

  1. L55
    exact hstep_left
15Establish hmissingL56–65

Establish this local claim before using it. It is not an additional assumption.

  1. 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)))
  2. L57
    intro hv
  3. L58
    specialize finite_modular_dyson_lower_boundary_nonmember b
  4. L59
    specialize finite_modular_dyson_lower_boundary_nonmember c
  5. L60
    specialize finite_modular_dyson_lower_boundary_nonmember d
  6. L61
    specialize finite_modular_dyson_lower_boundary_nonmember e
  7. L62
    specialize finite_modular_dyson_lower_boundary_nonmember vb
  8. L63
    specialize finite_modular_dyson_lower_boundary_nonmember vc
  9. L64
    specialize finite_modular_dyson_lower_boundary_nonmember p
  10. L65
    specialize finite_modular_dyson_lower_boundary_nonmember t
16Use earlier factsL66–72

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

  1. L66
    specialize finite_modular_dyson_lower_boundary_nonmember h
  2. L67
    specialize finite_modular_dyson_lower_boundary_nonmember r
  3. L68
    apply finite_modular_dyson_lower_boundary_nonmember
  4. L69
    exact hdyson_right
  5. L70
    exact hboundary
  6. L71
    exact hh
  7. L72
    exact hv
17Separate the logical casesL73–73

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L73
    split
18Fix variables and assumptionsL74–74

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

  1. L74
    intro hz
19Use earlier factsL75–83

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

  1. L75
    specialize finite_bit_member_count_nonzero ub
  2. L76
    specialize finite_bit_member_count_nonzero uc
  3. L77
    specialize finite_bit_member_count_nonzero p
  4. L78
    specialize finite_bit_member_count_nonzero K
  5. L79
    specialize finite_bit_member_count_nonzero t
  6. L80
    apply finite_bit_member_count_nonzero
  7. L81
    exact hU
  8. L82
    exact hupper
  9. L83
    exact hz
20Separate the logical casesL84–84

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L84
    split
21Fix variables and assumptionsL85–85

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

  1. L85
    intro hz
22Use earlier factsL86–95

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

  1. L86
    specialize finite_bit_member_count_nonzero vb
  2. L87
    specialize finite_bit_member_count_nonzero vc
  3. L88
    specialize finite_bit_member_count_nonzero p
  4. L89
    specialize finite_bit_member_count_nonzero L
  5. L90
    specialize finite_bit_member_count_nonzero 0
  6. L91
    apply finite_bit_member_count_nonzero
  7. L92
    exact hV
  8. L93
    exact hlower
  9. L94
    exact hz
  10. L95
    specialize finite_bit_count_proper_subset_lt vb
23Use earlier factsL96–105

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

  1. L96
    specialize finite_bit_count_proper_subset_lt vc
  2. L97
    specialize finite_bit_count_proper_subset_lt d
  3. L98
    specialize finite_bit_count_proper_subset_lt e
  4. L99
    specialize finite_bit_count_proper_subset_lt p
  5. L100
    specialize finite_bit_count_proper_subset_lt L
  6. L101
    specialize finite_bit_count_proper_subset_lt l
  7. L102
    specialize finite_bit_count_proper_subset_lt h
  8. L103
    apply finite_bit_count_proper_subset_lt
  9. L104
    exact hV
  10. L105
    exact hB
24Use earlier factsL106–115

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

  1. L106
    specialize finite_modular_dyson_lower_subset b
  2. L107
    specialize finite_modular_dyson_lower_subset c
  3. L108
    specialize finite_modular_dyson_lower_subset d
  4. L109
    specialize finite_modular_dyson_lower_subset e
  5. L110
    specialize finite_modular_dyson_lower_subset vb
  6. L111
    specialize finite_modular_dyson_lower_subset vc
  7. L112
    specialize finite_modular_dyson_lower_subset p
  8. L113
    specialize finite_modular_dyson_lower_subset t
  9. L114
    apply finite_modular_dyson_lower_subset
  10. L115
    exact hdyson_right
25Use earlier factsL116–121

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

  1. L116
    exact hh
  2. L117
    specialize finite_bit_nonmember_zero vb
  3. L118
    specialize finite_bit_nonmember_zero vc
  4. L119
    specialize finite_bit_nonmember_zero p
  5. L120
    specialize finite_bit_nonmember_zero h
  6. L121
    apply finite_bit_nonmember_zero
26Separate the logical casesL122–122

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L122
    cases hV
27Use earlier factsL123–125

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

  1. L123
    exact hV_right
  2. L124
    exact hh
  3. L125
    exact hmissing
28Separate the logical casesL126–126

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L126
    cases hstep
29Use earlier factsL127–127

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

  1. L127
    exact hstep_right

Library-wide reading audit

Original exact command ledger · 127 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro d
  4. 0004intro e
  5. 0005intro ub
  6. 0006intro uc
  7. 0007intro vb
  8. 0008intro vc
  9. 0009intro p
  10. 0010intro t
  11. 0011intro h
  12. 0012intro r
  13. 0013intro K
  14. 0014intro L
  15. 0015intro l
  16. 0016intro hU
  17. 0017intro hV
  18. 0018intro hB
  19. 0019intro hdyson
  20. 0020intro hzero
  21. 0021intro hstep
  22. 0022intro hboundary
  23. 0023cases hdyson
  24. 0024have 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))))
  25. 0025cases hboundary
  26. 0026exact hboundary_left
  27. 0027have 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))))
  28. 0028specialize finite_modular_dyson_upper_member b
  29. 0029specialize finite_modular_dyson_upper_member c
  30. 0030specialize finite_modular_dyson_upper_member d
  31. 0031specialize finite_modular_dyson_upper_member e
  32. 0032specialize finite_modular_dyson_upper_member ub
  33. 0033specialize finite_modular_dyson_upper_member uc
  34. 0034specialize finite_modular_dyson_upper_member p
  35. 0035specialize finite_modular_dyson_upper_member t
  36. 0036specialize finite_modular_dyson_upper_member t
  37. 0037apply finite_modular_dyson_upper_member
  38. 0038exact hdyson_left
  39. 0039exact hsource
  40. 0040have 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))))
  41. 0041specialize finite_modular_dyson_lower_zero_member b
  42. 0042specialize finite_modular_dyson_lower_zero_member c
  43. 0043specialize finite_modular_dyson_lower_zero_member d
  44. 0044specialize finite_modular_dyson_lower_zero_member e
  45. 0045specialize finite_modular_dyson_lower_zero_member vb
  46. 0046specialize finite_modular_dyson_lower_zero_member vc
  47. 0047specialize finite_modular_dyson_lower_zero_member p
  48. 0048specialize finite_modular_dyson_lower_zero_member t
  49. 0049apply finite_modular_dyson_lower_zero_member
  50. 0050exact hdyson_right
  51. 0051exact hzero
  52. 0052exact hsource
  53. 0053have hh : exists fms_gap_lt. fms_gap_lt + S (h) = (p)
  54. 0054cases hstep
  55. 0055exact hstep_left
  56. 0056have 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)))
  57. 0057intro hv
  58. 0058specialize finite_modular_dyson_lower_boundary_nonmember b
  59. 0059specialize finite_modular_dyson_lower_boundary_nonmember c
  60. 0060specialize finite_modular_dyson_lower_boundary_nonmember d
  61. 0061specialize finite_modular_dyson_lower_boundary_nonmember e
  62. 0062specialize finite_modular_dyson_lower_boundary_nonmember vb
  63. 0063specialize finite_modular_dyson_lower_boundary_nonmember vc
  64. 0064specialize finite_modular_dyson_lower_boundary_nonmember p
  65. 0065specialize finite_modular_dyson_lower_boundary_nonmember t
  66. 0066specialize finite_modular_dyson_lower_boundary_nonmember h
  67. 0067specialize finite_modular_dyson_lower_boundary_nonmember r
  68. 0068apply finite_modular_dyson_lower_boundary_nonmember
  69. 0069exact hdyson_right
  70. 0070exact hboundary
  71. 0071exact hh
  72. 0072exact hv
  73. 0073split
  74. 0074intro hz
  75. 0075specialize finite_bit_member_count_nonzero ub
  76. 0076specialize finite_bit_member_count_nonzero uc
  77. 0077specialize finite_bit_member_count_nonzero p
  78. 0078specialize finite_bit_member_count_nonzero K
  79. 0079specialize finite_bit_member_count_nonzero t
  80. 0080apply finite_bit_member_count_nonzero
  81. 0081exact hU
  82. 0082exact hupper
  83. 0083exact hz
  84. 0084split
  85. 0085intro hz
  86. 0086specialize finite_bit_member_count_nonzero vb
  87. 0087specialize finite_bit_member_count_nonzero vc
  88. 0088specialize finite_bit_member_count_nonzero p
  89. 0089specialize finite_bit_member_count_nonzero L
  90. 0090specialize finite_bit_member_count_nonzero 0
  91. 0091apply finite_bit_member_count_nonzero
  92. 0092exact hV
  93. 0093exact hlower
  94. 0094exact hz
  95. 0095specialize finite_bit_count_proper_subset_lt vb
  96. 0096specialize finite_bit_count_proper_subset_lt vc
  97. 0097specialize finite_bit_count_proper_subset_lt d
  98. 0098specialize finite_bit_count_proper_subset_lt e
  99. 0099specialize finite_bit_count_proper_subset_lt p
  100. 0100specialize finite_bit_count_proper_subset_lt L
  101. 0101specialize finite_bit_count_proper_subset_lt l
  102. 0102specialize finite_bit_count_proper_subset_lt h
  103. 0103apply finite_bit_count_proper_subset_lt
  104. 0104exact hV
  105. 0105exact hB
  106. 0106specialize finite_modular_dyson_lower_subset b
  107. 0107specialize finite_modular_dyson_lower_subset c
  108. 0108specialize finite_modular_dyson_lower_subset d
  109. 0109specialize finite_modular_dyson_lower_subset e
  110. 0110specialize finite_modular_dyson_lower_subset vb
  111. 0111specialize finite_modular_dyson_lower_subset vc
  112. 0112specialize finite_modular_dyson_lower_subset p
  113. 0113specialize finite_modular_dyson_lower_subset t
  114. 0114apply finite_modular_dyson_lower_subset
  115. 0115exact hdyson_right
  116. 0116exact hh
  117. 0117specialize finite_bit_nonmember_zero vb
  118. 0118specialize finite_bit_nonmember_zero vc
  119. 0119specialize finite_bit_nonmember_zero p
  120. 0120specialize finite_bit_nonmember_zero h
  121. 0121apply finite_bit_nonmember_zero
  122. 0122cases hV
  123. 0123exact hV_right
  124. 0124exact hh
  125. 0125exact hmissing
  126. 0126cases hstep
  127. 0127exact hstep_right