BT00WU · Bertrand theorem

bertrand_h_root_37_from_total

Alpha v34 checked-use theorem · independently kernel and Lean verified; not Stable

The RFC-v1 H envelope at the fixed root 37.

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.

Statement with defined notation

∀ e. ∀ h. ∀ u. (∀ x. ∀ y. ∃ z. Pow(x,y,z)) → CeilDivSix(37 · 37,e)Pow(37 + 1,2 · 37 + 2,h)Pow(4,e,u)Le(h,u)

Every purple notation token opens its conservative definition. Expanding the displayed statement recovers the exact first-order Peano-arithmetic formula checked by the unchanged kernel.

Definitions used by this theorem

In the theorem statement

5 occurrences

In local proof propositions

17 occurrences

Exact expanded native-PA statement
forall e h u. (forall bpt_a_hj32_h_root_37 bpt_e_hj32_h_root_37. exists bpt_x_hj32_h_root_37. (exists ff_b_bpt_value_hj32_h_root_37 ff_c_bpt_value_hj32_h_root_37. ((forall ff_i_bpt_value_hj32_h_root_37_repeat. (exists ff_lt_bpt_value_hj32_h_root_37_repeat_bound. ff_lt_bpt_value_hj32_h_root_37_repeat_bound + S ff_i_bpt_value_hj32_h_root_37_repeat = bpt_e_hj32_h_root_37) -> (((exists ff_h_bpt_value_hj32_h_root_37_repeat_decoded. ff_h_bpt_value_hj32_h_root_37_repeat_decoded + S (bpt_a_hj32_h_root_37) = S ((S (ff_i_bpt_value_hj32_h_root_37_repeat)) * ff_c_bpt_value_hj32_h_root_37)) /\ exists ff_q_bpt_value_hj32_h_root_37_repeat_decoded. ff_b_bpt_value_hj32_h_root_37 = ff_q_bpt_value_hj32_h_root_37_repeat_decoded * S ((S (ff_i_bpt_value_hj32_h_root_37_repeat)) * ff_c_bpt_value_hj32_h_root_37) + (bpt_a_hj32_h_root_37)))) /\ (exists ff_u_bpt_value_hj32_h_root_37_product ff_v_bpt_value_hj32_h_root_37_product. ((((exists ff_h_bpt_value_hj32_h_root_37_product_start. ff_h_bpt_value_hj32_h_root_37_product_start + S (1) = S ((S (0)) * ff_v_bpt_value_hj32_h_root_37_product)) /\ exists ff_q_bpt_value_hj32_h_root_37_product_start. ff_u_bpt_value_hj32_h_root_37_product = ff_q_bpt_value_hj32_h_root_37_product_start * S ((S (0)) * ff_v_bpt_value_hj32_h_root_37_product) + (1))) /\ ((((exists ff_h_bpt_value_hj32_h_root_37_product_terminal. ff_h_bpt_value_hj32_h_root_37_product_terminal + S (bpt_x_hj32_h_root_37) = S ((S (bpt_e_hj32_h_root_37)) * ff_v_bpt_value_hj32_h_root_37_product)) /\ exists ff_q_bpt_value_hj32_h_root_37_product_terminal. ff_u_bpt_value_hj32_h_root_37_product = ff_q_bpt_value_hj32_h_root_37_product_terminal * S ((S (bpt_e_hj32_h_root_37)) * ff_v_bpt_value_hj32_h_root_37_product) + (bpt_x_hj32_h_root_37))) /\ forall ff_i_bpt_value_hj32_h_root_37_product. (exists ff_lt_bpt_value_hj32_h_root_37_product_bound. ff_lt_bpt_value_hj32_h_root_37_product_bound + S ff_i_bpt_value_hj32_h_root_37_product = bpt_e_hj32_h_root_37) -> exists ff_p_bpt_value_hj32_h_root_37_product ff_r_bpt_value_hj32_h_root_37_product ff_s_bpt_value_hj32_h_root_37_product. ((((exists ff_h_bpt_value_hj32_h_root_37_product_factor. ff_h_bpt_value_hj32_h_root_37_product_factor + S (ff_p_bpt_value_hj32_h_root_37_product) = S ((S (ff_i_bpt_value_hj32_h_root_37_product)) * ff_c_bpt_value_hj32_h_root_37)) /\ exists ff_q_bpt_value_hj32_h_root_37_product_factor. ff_b_bpt_value_hj32_h_root_37 = ff_q_bpt_value_hj32_h_root_37_product_factor * S ((S (ff_i_bpt_value_hj32_h_root_37_product)) * ff_c_bpt_value_hj32_h_root_37) + (ff_p_bpt_value_hj32_h_root_37_product))) /\ ((((exists ff_h_bpt_value_hj32_h_root_37_product_partial. ff_h_bpt_value_hj32_h_root_37_product_partial + S (ff_r_bpt_value_hj32_h_root_37_product) = S ((S (ff_i_bpt_value_hj32_h_root_37_product)) * ff_v_bpt_value_hj32_h_root_37_product)) /\ exists ff_q_bpt_value_hj32_h_root_37_product_partial. ff_u_bpt_value_hj32_h_root_37_product = ff_q_bpt_value_hj32_h_root_37_product_partial * S ((S (ff_i_bpt_value_hj32_h_root_37_product)) * ff_v_bpt_value_hj32_h_root_37_product) + (ff_r_bpt_value_hj32_h_root_37_product))) /\ ((((exists ff_h_bpt_value_hj32_h_root_37_product_successor. ff_h_bpt_value_hj32_h_root_37_product_successor + S (ff_s_bpt_value_hj32_h_root_37_product) = S ((S (S ff_i_bpt_value_hj32_h_root_37_product)) * ff_v_bpt_value_hj32_h_root_37_product)) /\ exists ff_q_bpt_value_hj32_h_root_37_product_successor. ff_u_bpt_value_hj32_h_root_37_product = ff_q_bpt_value_hj32_h_root_37_product_successor * S ((S (S ff_i_bpt_value_hj32_h_root_37_product)) * ff_v_bpt_value_hj32_h_root_37_product) + (ff_s_bpt_value_hj32_h_root_37_product))) /\ ff_s_bpt_value_hj32_h_root_37_product = ff_r_bpt_value_hj32_h_root_37_product * ff_p_bpt_value_hj32_h_root_37_product))))))))) -> (((exists bcs_lower_gap_hj32_h_root_37_ceiling. bcs_lower_gap_hj32_h_root_37_ceiling + (37 * 37) = 6 * (e)) /\ exists bcs_upper_gap_hj32_h_root_37_ceiling. bcs_upper_gap_hj32_h_root_37_ceiling + S (6 * (e)) = (37 * 37) + 6)) -> (exists pa_b_hj32_h_root_37_h pa_c_hj32_h_root_37_h. ((forall pa_i_hj32_h_root_37_h_repeat. (exists pa_lt_hj32_h_root_37_h_repeat_bound. pa_lt_hj32_h_root_37_h_repeat_bound + S pa_i_hj32_h_root_37_h_repeat = 2 * 37 + 2) -> (((exists pa_h_hj32_h_root_37_h_repeat_decoded. pa_h_hj32_h_root_37_h_repeat_decoded + S (37 + 1) = S ((S (pa_i_hj32_h_root_37_h_repeat)) * pa_c_hj32_h_root_37_h)) /\ exists pa_q_hj32_h_root_37_h_repeat_decoded. pa_b_hj32_h_root_37_h = pa_q_hj32_h_root_37_h_repeat_decoded * S ((S (pa_i_hj32_h_root_37_h_repeat)) * pa_c_hj32_h_root_37_h) + (37 + 1)))) /\ (exists pa_u_hj32_h_root_37_h_product pa_v_hj32_h_root_37_h_product. ((((exists pa_h_hj32_h_root_37_h_product_start. pa_h_hj32_h_root_37_h_product_start + S (1) = S ((S (0)) * pa_v_hj32_h_root_37_h_product)) /\ exists pa_q_hj32_h_root_37_h_product_start. pa_u_hj32_h_root_37_h_product = pa_q_hj32_h_root_37_h_product_start * S ((S (0)) * pa_v_hj32_h_root_37_h_product) + (1))) /\ ((((exists pa_h_hj32_h_root_37_h_product_terminal. pa_h_hj32_h_root_37_h_product_terminal + S (h) = S ((S (2 * 37 + 2)) * pa_v_hj32_h_root_37_h_product)) /\ exists pa_q_hj32_h_root_37_h_product_terminal. pa_u_hj32_h_root_37_h_product = pa_q_hj32_h_root_37_h_product_terminal * S ((S (2 * 37 + 2)) * pa_v_hj32_h_root_37_h_product) + (h))) /\ forall pa_i_hj32_h_root_37_h_product. (exists pa_lt_hj32_h_root_37_h_product_bound. pa_lt_hj32_h_root_37_h_product_bound + S pa_i_hj32_h_root_37_h_product = 2 * 37 + 2) -> exists pa_p_hj32_h_root_37_h_product pa_r_hj32_h_root_37_h_product pa_s_hj32_h_root_37_h_product. ((((exists pa_h_hj32_h_root_37_h_product_factor. pa_h_hj32_h_root_37_h_product_factor + S (pa_p_hj32_h_root_37_h_product) = S ((S (pa_i_hj32_h_root_37_h_product)) * pa_c_hj32_h_root_37_h)) /\ exists pa_q_hj32_h_root_37_h_product_factor. pa_b_hj32_h_root_37_h = pa_q_hj32_h_root_37_h_product_factor * S ((S (pa_i_hj32_h_root_37_h_product)) * pa_c_hj32_h_root_37_h) + (pa_p_hj32_h_root_37_h_product))) /\ ((((exists pa_h_hj32_h_root_37_h_product_partial. pa_h_hj32_h_root_37_h_product_partial + S (pa_r_hj32_h_root_37_h_product) = S ((S (pa_i_hj32_h_root_37_h_product)) * pa_v_hj32_h_root_37_h_product)) /\ exists pa_q_hj32_h_root_37_h_product_partial. pa_u_hj32_h_root_37_h_product = pa_q_hj32_h_root_37_h_product_partial * S ((S (pa_i_hj32_h_root_37_h_product)) * pa_v_hj32_h_root_37_h_product) + (pa_r_hj32_h_root_37_h_product))) /\ ((((exists pa_h_hj32_h_root_37_h_product_successor. pa_h_hj32_h_root_37_h_product_successor + S (pa_s_hj32_h_root_37_h_product) = S ((S (S pa_i_hj32_h_root_37_h_product)) * pa_v_hj32_h_root_37_h_product)) /\ exists pa_q_hj32_h_root_37_h_product_successor. pa_u_hj32_h_root_37_h_product = pa_q_hj32_h_root_37_h_product_successor * S ((S (S pa_i_hj32_h_root_37_h_product)) * pa_v_hj32_h_root_37_h_product) + (pa_s_hj32_h_root_37_h_product))) /\ pa_s_hj32_h_root_37_h_product = pa_r_hj32_h_root_37_h_product * pa_p_hj32_h_root_37_h_product)))))))) -> (exists pa_b_hj32_h_root_37_u pa_c_hj32_h_root_37_u. ((forall pa_i_hj32_h_root_37_u_repeat. (exists pa_lt_hj32_h_root_37_u_repeat_bound. pa_lt_hj32_h_root_37_u_repeat_bound + S pa_i_hj32_h_root_37_u_repeat = e) -> (((exists pa_h_hj32_h_root_37_u_repeat_decoded. pa_h_hj32_h_root_37_u_repeat_decoded + S (4) = S ((S (pa_i_hj32_h_root_37_u_repeat)) * pa_c_hj32_h_root_37_u)) /\ exists pa_q_hj32_h_root_37_u_repeat_decoded. pa_b_hj32_h_root_37_u = pa_q_hj32_h_root_37_u_repeat_decoded * S ((S (pa_i_hj32_h_root_37_u_repeat)) * pa_c_hj32_h_root_37_u) + (4)))) /\ (exists pa_u_hj32_h_root_37_u_product pa_v_hj32_h_root_37_u_product. ((((exists pa_h_hj32_h_root_37_u_product_start. pa_h_hj32_h_root_37_u_product_start + S (1) = S ((S (0)) * pa_v_hj32_h_root_37_u_product)) /\ exists pa_q_hj32_h_root_37_u_product_start. pa_u_hj32_h_root_37_u_product = pa_q_hj32_h_root_37_u_product_start * S ((S (0)) * pa_v_hj32_h_root_37_u_product) + (1))) /\ ((((exists pa_h_hj32_h_root_37_u_product_terminal. pa_h_hj32_h_root_37_u_product_terminal + S (u) = S ((S (e)) * pa_v_hj32_h_root_37_u_product)) /\ exists pa_q_hj32_h_root_37_u_product_terminal. pa_u_hj32_h_root_37_u_product = pa_q_hj32_h_root_37_u_product_terminal * S ((S (e)) * pa_v_hj32_h_root_37_u_product) + (u))) /\ forall pa_i_hj32_h_root_37_u_product. (exists pa_lt_hj32_h_root_37_u_product_bound. pa_lt_hj32_h_root_37_u_product_bound + S pa_i_hj32_h_root_37_u_product = e) -> exists pa_p_hj32_h_root_37_u_product pa_r_hj32_h_root_37_u_product pa_s_hj32_h_root_37_u_product. ((((exists pa_h_hj32_h_root_37_u_product_factor. pa_h_hj32_h_root_37_u_product_factor + S (pa_p_hj32_h_root_37_u_product) = S ((S (pa_i_hj32_h_root_37_u_product)) * pa_c_hj32_h_root_37_u)) /\ exists pa_q_hj32_h_root_37_u_product_factor. pa_b_hj32_h_root_37_u = pa_q_hj32_h_root_37_u_product_factor * S ((S (pa_i_hj32_h_root_37_u_product)) * pa_c_hj32_h_root_37_u) + (pa_p_hj32_h_root_37_u_product))) /\ ((((exists pa_h_hj32_h_root_37_u_product_partial. pa_h_hj32_h_root_37_u_product_partial + S (pa_r_hj32_h_root_37_u_product) = S ((S (pa_i_hj32_h_root_37_u_product)) * pa_v_hj32_h_root_37_u_product)) /\ exists pa_q_hj32_h_root_37_u_product_partial. pa_u_hj32_h_root_37_u_product = pa_q_hj32_h_root_37_u_product_partial * S ((S (pa_i_hj32_h_root_37_u_product)) * pa_v_hj32_h_root_37_u_product) + (pa_r_hj32_h_root_37_u_product))) /\ ((((exists pa_h_hj32_h_root_37_u_product_successor. pa_h_hj32_h_root_37_u_product_successor + S (pa_s_hj32_h_root_37_u_product) = S ((S (S pa_i_hj32_h_root_37_u_product)) * pa_v_hj32_h_root_37_u_product)) /\ exists pa_q_hj32_h_root_37_u_product_successor. pa_u_hj32_h_root_37_u_product = pa_q_hj32_h_root_37_u_product_successor * S ((S (S pa_i_hj32_h_root_37_u_product)) * pa_v_hj32_h_root_37_u_product) + (pa_s_hj32_h_root_37_u_product))) /\ pa_s_hj32_h_root_37_u_product = pa_r_hj32_h_root_37_u_product * pa_p_hj32_h_root_37_u_product)))))))) -> (exists bqb_le_gap_hj32_h_root_37_result. bqb_le_gap_hj32_h_root_37_result + (h) = (u))

Proof neighborhood

Direct theorem prerequisites

Direct theorem dependents

Definition-aware tactic body

Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic script.

Read the argument

Proof checkpoints

167 script commands · 42 reading checkpoints · 24 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.

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

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

  1. L1
    intro e
  2. L2
    intro h
  3. L3
    intro u
  4. L4
    intro htotal
  5. L5
    intro hceiling
  6. L6
    intro hh
  7. L7
    intro hu
02Establish hh_routeL8–8

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

  1. L8
    have hh_route : Pow(38,2 · 38,h)Definitions: Pow(38,2 · 38,h)Original native command in the exact edition
03Establish hh_baseL9–10

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

  1. L9
    have hh_base : 37 + 1 = 38
  2. L10
    norm_num
04Establish hh_exponentL11–19

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

  1. L11
    have hh_exponent : 2 * 37 + 2 = 2 * 38
  2. L12
    norm_num
  3. L13
    rewrite <- hh_exponent
  4. L14
    rewrite <- hh_exponent
  5. L15
    rewrite <- hh_exponent
  6. L16
    rewrite <- hh_exponent
  7. L17
    rewrite <- hh_base
  8. L18
    rewrite <- hh_base
  9. L19
    exact hh
05Establish h37t_p44L20–23

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

  1. L20
    have h37t_p44 : ∃ hj32_local_value_h37t_p44. Pow(44,2 · 38,hj32_local_value_h37t_p44)Definitions: Pow(44,2 · 38,hj32_local_value_h37t_p44)Original native command in the exact edition
  2. L21
    specialize htotal 44
  3. L22
    specialize htotal 2 * 38
  4. L23
    exact htotal
06Separate the logical casesL24–24

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

  1. L24
    cases h37t_p44
07Establish h37t_baseL25–25

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

  1. L25
    have h37t_base : Lt(37,44)Definitions: Lt(37,44)Original native command in the exact edition
08Construct an explicit witnessL26–26

Supply the displayed value, then prove that it has the required property.

  1. L26
    exists 6
09Calculate and transport equalitiesL27–27

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L27
    norm_num
10Establish h37t_to_44L28–37

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow base monotone.

  1. L28
    have h37t_to_44 : Le(h,x)Definitions: Le(h,x)Original native command in the exact edition
  2. L29
    specialize pow_base_monotone 38
  3. L30
    specialize pow_base_monotone 44
  4. L31
    specialize pow_base_monotone 2 * 38
  5. L32
    specialize pow_base_monotone h
  6. L33
    specialize pow_base_monotone x
  7. L34
    apply pow_base_monotone
  8. L35
    exact h37t_base
  9. L36
    exact hh_route
  10. L37
    exact h37t_p44_witness
11Establish h37t_p4_expL38–41

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

  1. L38
    have h37t_p4_exp : ∃ hj32_local_value_h37t_p4_exp. Pow(4,2 · 38,hj32_local_value_h37t_p4_exp)Definitions: Pow(4,2 · 38,hj32_local_value_h37t_p4_exp)Original native command in the exact edition
  2. L39
    specialize htotal 4
  3. L40
    specialize htotal 2 * 38
  4. L41
    exact htotal
12Separate the logical casesL42–42

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

  1. L42
    cases h37t_p4_exp
13Establish h37t_p11_expL43–46

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

  1. L43
    have h37t_p11_exp : ∃ hj32_local_value_h37t_p11_exp. Pow(11,2 · 38,hj32_local_value_h37t_p11_exp)Definitions: Pow(11,2 · 38,hj32_local_value_h37t_p11_exp)Original native command in the exact edition
  2. L44
    specialize htotal 11
  3. L45
    specialize htotal 2 * 38
  4. L46
    exact htotal
14Separate the logical casesL47–47

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

  1. L47
    cases h37t_p11_exp
15Establish h37t_p44_product_graphL48–48

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

  1. L48
    have h37t_p44_product_graph : Pow(4 · 11,2 · 38,x)Definitions: Pow(4 · 11,2 · 38,x)Original native command in the exact edition
16Establish h37t_p44_product_baseL49–53

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

  1. L49
    have h37t_p44_product_base : 4 * 11 = 44
  2. L50
    norm_num
  3. L51
    rewrite h37t_p44_product_base
  4. L52
    rewrite h37t_p44_product_base
  5. L53
    exact h37t_p44_witness
17Establish h37t_p44_productL54–63

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow mul base.

  1. L54
    have h37t_p44_product : x = x1 * x2
  2. L55
    specialize pow_mul_base 4
  3. L56
    specialize pow_mul_base 11
  4. L57
    specialize pow_mul_base 2 * 38
  5. L58
    specialize pow_mul_base x1
  6. L59
    specialize pow_mul_base x2
  7. L60
    specialize pow_mul_base x
  8. L61
    apply pow_mul_base
  9. L62
    exact h37t_p4_exp_witness
  10. L63
    exact h37t_p11_exp_witness
18Use earlier factsL64–64

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

  1. L64
    exact h37t_p44_product_graph
19Establish h37t_p4_tailL65–68

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

  1. L65
    have h37t_p4_tail : ∃ hj32_local_value_h37t_p4_tail. Pow(4,7 · 19,hj32_local_value_h37t_p4_tail)Definitions: Pow(4,7 · 19,hj32_local_value_h37t_p4_tail)Original native command in the exact edition
  2. L66
    specialize htotal 4
  3. L67
    specialize htotal 7 * 19
  4. L68
    exact htotal
20Separate the logical casesL69–69

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

  1. L69
    cases h37t_p4_tail
21Establish h37t_parityL70–70

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

  1. L70
    have h37t_parity : 7 * 38 = 2 * (7 * 19)
22Establish h37t_rootL71–80

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul assoc.

  1. L71
    have h37t_root : 38 = 2 * 19
  2. L72
    norm_num
  3. L73
    rewrite h37t_root
  4. L74
    trans (7 * 2) * 19
  5. L75
    symm
  6. L76
    specialize mul_assoc 7
  7. L77
    specialize mul_assoc 2
  8. L78
    specialize mul_assoc 19
  9. L79
    apply mul_assoc
  10. L80
    trans (2 * 7) * 19
23Calculate and transport equalitiesL81–81

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L81
    congr
24Use earlier factsL82–84

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

  1. L82
    specialize mul_comm 7
  2. L83
    specialize mul_comm 2
  3. L84
    apply mul_comm
25Calculate and transport equalitiesL85–85

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L85
    refl
26Use earlier factsL86–89

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

  1. L86
    specialize mul_assoc 2
  2. L87
    specialize mul_assoc 7
  3. L88
    specialize mul_assoc 19
  4. L89
    apply mul_assoc
27Establish h37t_eleven_boundL90–99

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow eleven double block le pow four even from total.

  1. L90
    have h37t_eleven_bound : Le(x2,x3)Definitions: Le(x2,x3)Original native command in the exact edition
  2. L91
    specialize pow_eleven_double_block_le_pow_four_even_from_total 38
  3. L92
    specialize pow_eleven_double_block_le_pow_four_even_from_total (7 * 19)
  4. L93
    specialize pow_eleven_double_block_le_pow_four_even_from_total x2
  5. L94
    specialize pow_eleven_double_block_le_pow_four_even_from_total x3
  6. L95
    apply pow_eleven_double_block_le_pow_four_even_from_total
  7. L96
    exact htotal
  8. L97
    exact h37t_parity
  9. L98
    exact h37t_p11_exp_witness
  10. L99
    exact h37t_p4_tail_witness
28Establish h37t_four_reflL100–102

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

  1. L100
    have h37t_four_refl : Le(x1,x1)Definitions: Le(x1,x1)Original native command in the exact edition
  2. L101
    specialize le_refl x1
  3. L102
    exact le_refl
29Establish h37t_product_boundL103–110

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul.

  1. L103
    have h37t_product_bound : Le(x1 · x2,x1 · x3)Definitions: Le(x1 · x2,x1 · x3)Original native command in the exact edition
  2. L104
    specialize mul_le_mul x1
  3. L105
    specialize mul_le_mul x1
  4. L106
    specialize mul_le_mul x2
  5. L107
    specialize mul_le_mul x3
  6. L108
    apply mul_le_mul
  7. L109
    exact h37t_four_refl
  8. L110
    exact h37t_eleven_bound
30Establish h37t_p4_budgetL111–114

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

  1. L111
    have h37t_p4_budget : ∃ hj32_local_value_h37t_p4_budget. Pow(4,2 · 38 + 7 · 19,hj32_local_value_h37t_p4_budget)Definitions: Pow(4,2 · 38 + 7 · 19,hj32_local_value_h37t_p4_budget)Original native command in the exact edition
  2. L112
    specialize htotal 4
  3. L113
    specialize htotal 2 * 38 + 7 * 19
  4. L114
    exact htotal
31Separate the logical casesL115–115

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

  1. L115
    cases h37t_p4_budget
32Establish h37t_budget_productL116–125

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow add.

  1. L116
    have h37t_budget_product : x4 = x1 * x3
  2. L117
    specialize pow_add 4
  3. L118
    specialize pow_add 2 * 38
  4. L119
    specialize pow_add 7 * 19
  5. L120
    specialize pow_add 2 * 38 + 7 * 19
  6. L121
    specialize pow_add x1
  7. L122
    specialize pow_add x3
  8. L123
    specialize pow_add x4
  9. L124
    apply pow_add
  10. L125
    refl
33Use earlier factsL126–128

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

  1. L126
    exact h37t_p4_exp_witness
  2. L127
    exact h37t_p4_tail_witness
  3. L128
    exact h37t_p4_budget_witness
34Calculate and transport equalitiesL129–130

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L129
    rewrite <- h37t_p44_product at h37t_product_bound
  2. L130
    rewrite <- h37t_budget_product at h37t_product_bound
35Establish h37t_to_budgetL131–137

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.

  1. L131
    have h37t_to_budget : Le(h,x4)Definitions: Le(h,x4)Original native command in the exact edition
  2. L132
    specialize le_trans h
  3. L133
    specialize le_trans x
  4. L134
    specialize le_trans x4
  5. L135
    apply le_trans
  6. L136
    exact h37t_to_44
  7. L137
    exact h37t_product_bound
36Establish hscaledL138–139

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply bertrand scaled budget root 37.

  1. L138
    have hscaled : Le(6 · (2 · 38 + 7 · 19),37 · 37)Definitions: Le(6 · (2 · 38 + 7 · 19),37 · 37)Original native command in the exact edition
  2. L139
    apply bertrand_scaled_budget_root_37
37Establish hbudget_exponentL140–146

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply ceil div six budget of scaled le.

  1. L140
    have hbudget_exponent : Le(2 · 38 + 7 · 19,e)Definitions: Le(2 · 38 + 7 · 19,e)Original native command in the exact edition
  2. L141
    specialize ceil_div_six_budget_of_scaled_le (37 * 37)
  3. L142
    specialize ceil_div_six_budget_of_scaled_le (2 * 38 + 7 * 19)
  4. L143
    specialize ceil_div_six_budget_of_scaled_le e
  5. L144
    apply ceil_div_six_budget_of_scaled_le
  6. L145
    exact hceiling
  7. L146
    exact hscaled
38Establish h37_budget_growthL147–154

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow exponent monotone from total.

  1. L147
    have h37_budget_growth : Le(x4,u)Definitions: Le(x4,u)Original native command in the exact edition
  2. L148
    specialize pow_exponent_monotone_from_total 4
  3. L149
    specialize pow_exponent_monotone_from_total 2 * 38 + 7 * 19
  4. L150
    specialize pow_exponent_monotone_from_total e
  5. L151
    specialize pow_exponent_monotone_from_total x4
  6. L152
    specialize pow_exponent_monotone_from_total u
  7. L153
    apply pow_exponent_monotone_from_total
  8. L154
    exact htotal
39Construct an explicit witnessL155–155

Supply the displayed value, then prove that it has the required property.

  1. L155
    exists 3
40Calculate and transport equalitiesL156–156

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L156
    norm_num
41Use earlier factsL157–159

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

  1. L157
    exact hbudget_exponent
  2. L158
    exact h37t_p4_budget_witness
  3. L159
    exact hu
42Establish h37_resultL160–167

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.

  1. L160
    have h37_result : Le(h,u)Definitions: Le(h,u)Original native command in the exact edition
  2. L161
    specialize le_trans h
  3. L162
    specialize le_trans x4
  4. L163
    specialize le_trans u
  5. L164
    apply le_trans
  6. L165
    exact h37t_to_budget
  7. L166
    exact h37_budget_growth
  8. L167
    exact h37_result

Library-wide reading audit

Original defined command ledger · 167 lines
  1. 0001intro e
  2. 0002intro h
  3. 0003intro u
  4. 0004intro htotal
  5. 0005intro hceiling
  6. 0006intro hh
  7. 0007intro hu
  8. 0008have hh_route : Pow(38,2 · 38,h)
    Exact native replay linehave hh_route : exists pa_b_hj32_h_37_route pa_c_hj32_h_37_route. ((forall pa_i_hj32_h_37_route_repeat. (exists pa_lt_hj32_h_37_route_repeat_bound. pa_lt_hj32_h_37_route_repeat_bound + S pa_i_hj32_h_37_route_repeat = 2 * 38) -> (((exists pa_h_hj32_h_37_route_repeat_decoded. pa_h_hj32_h_37_route_repeat_decoded + S (38) = S ((S (pa_i_hj32_h_37_route_repeat)) * pa_c_hj32_h_37_route)) /\ exists pa_q_hj32_h_37_route_repeat_decoded. pa_b_hj32_h_37_route = pa_q_hj32_h_37_route_repeat_decoded * S ((S (pa_i_hj32_h_37_route_repeat)) * pa_c_hj32_h_37_route) + (38)))) /\ (exists pa_u_hj32_h_37_route_product pa_v_hj32_h_37_route_product. ((((exists pa_h_hj32_h_37_route_product_start. pa_h_hj32_h_37_route_product_start + S (1) = S ((S (0)) * pa_v_hj32_h_37_route_product)) /\ exists pa_q_hj32_h_37_route_product_start. pa_u_hj32_h_37_route_product = pa_q_hj32_h_37_route_product_start * S ((S (0)) * pa_v_hj32_h_37_route_product) + (1))) /\ ((((exists pa_h_hj32_h_37_route_product_terminal. pa_h_hj32_h_37_route_product_terminal + S (h) = S ((S (2 * 38)) * pa_v_hj32_h_37_route_product)) /\ exists pa_q_hj32_h_37_route_product_terminal. pa_u_hj32_h_37_route_product = pa_q_hj32_h_37_route_product_terminal * S ((S (2 * 38)) * pa_v_hj32_h_37_route_product) + (h))) /\ forall pa_i_hj32_h_37_route_product. (exists pa_lt_hj32_h_37_route_product_bound. pa_lt_hj32_h_37_route_product_bound + S pa_i_hj32_h_37_route_product = 2 * 38) -> exists pa_p_hj32_h_37_route_product pa_r_hj32_h_37_route_product pa_s_hj32_h_37_route_product. ((((exists pa_h_hj32_h_37_route_product_factor. pa_h_hj32_h_37_route_product_factor + S (pa_p_hj32_h_37_route_product) = S ((S (pa_i_hj32_h_37_route_product)) * pa_c_hj32_h_37_route)) /\ exists pa_q_hj32_h_37_route_product_factor. pa_b_hj32_h_37_route = pa_q_hj32_h_37_route_product_factor * S ((S (pa_i_hj32_h_37_route_product)) * pa_c_hj32_h_37_route) + (pa_p_hj32_h_37_route_product))) /\ ((((exists pa_h_hj32_h_37_route_product_partial. pa_h_hj32_h_37_route_product_partial + S (pa_r_hj32_h_37_route_product) = S ((S (pa_i_hj32_h_37_route_product)) * pa_v_hj32_h_37_route_product)) /\ exists pa_q_hj32_h_37_route_product_partial. pa_u_hj32_h_37_route_product = pa_q_hj32_h_37_route_product_partial * S ((S (pa_i_hj32_h_37_route_product)) * pa_v_hj32_h_37_route_product) + (pa_r_hj32_h_37_route_product))) /\ ((((exists pa_h_hj32_h_37_route_product_successor. pa_h_hj32_h_37_route_product_successor + S (pa_s_hj32_h_37_route_product) = S ((S (S pa_i_hj32_h_37_route_product)) * pa_v_hj32_h_37_route_product)) /\ exists pa_q_hj32_h_37_route_product_successor. pa_u_hj32_h_37_route_product = pa_q_hj32_h_37_route_product_successor * S ((S (S pa_i_hj32_h_37_route_product)) * pa_v_hj32_h_37_route_product) + (pa_s_hj32_h_37_route_product))) /\ pa_s_hj32_h_37_route_product = pa_r_hj32_h_37_route_product * pa_p_hj32_h_37_route_product)))))))
  9. 0009have hh_base : 37 + 1 = 38
  10. 0010norm_num
  11. 0011have hh_exponent : 2 * 37 + 2 = 2 * 38
  12. 0012norm_num
  13. 0013rewrite <- hh_exponent
  14. 0014rewrite <- hh_exponent
  15. 0015rewrite <- hh_exponent
  16. 0016rewrite <- hh_exponent
  17. 0017rewrite <- hh_base
  18. 0018rewrite <- hh_base
  19. 0019exact hh
  20. 0020have h37t_p44 : ∃ hj32_local_value_h37t_p44. Pow(44,2 · 38,hj32_local_value_h37t_p44)
    Exact native replay linehave h37t_p44 : exists hj32_local_value_h37t_p44. (exists pa_b_hj32_local_total_h37t_p44 pa_c_hj32_local_total_h37t_p44. ((forall pa_i_hj32_local_total_h37t_p44_repeat. (exists pa_lt_hj32_local_total_h37t_p44_repeat_bound. pa_lt_hj32_local_total_h37t_p44_repeat_bound + S pa_i_hj32_local_total_h37t_p44_repeat = 2 * 38) -> (((exists pa_h_hj32_local_total_h37t_p44_repeat_decoded. pa_h_hj32_local_total_h37t_p44_repeat_decoded + S (44) = S ((S (pa_i_hj32_local_total_h37t_p44_repeat)) * pa_c_hj32_local_total_h37t_p44)) /\ exists pa_q_hj32_local_total_h37t_p44_repeat_decoded. pa_b_hj32_local_total_h37t_p44 = pa_q_hj32_local_total_h37t_p44_repeat_decoded * S ((S (pa_i_hj32_local_total_h37t_p44_repeat)) * pa_c_hj32_local_total_h37t_p44) + (44)))) /\ (exists pa_u_hj32_local_total_h37t_p44_product pa_v_hj32_local_total_h37t_p44_product. ((((exists pa_h_hj32_local_total_h37t_p44_product_start. pa_h_hj32_local_total_h37t_p44_product_start + S (1) = S ((S (0)) * pa_v_hj32_local_total_h37t_p44_product)) /\ exists pa_q_hj32_local_total_h37t_p44_product_start. pa_u_hj32_local_total_h37t_p44_product = pa_q_hj32_local_total_h37t_p44_product_start * S ((S (0)) * pa_v_hj32_local_total_h37t_p44_product) + (1))) /\ ((((exists pa_h_hj32_local_total_h37t_p44_product_terminal. pa_h_hj32_local_total_h37t_p44_product_terminal + S (hj32_local_value_h37t_p44) = S ((S (2 * 38)) * pa_v_hj32_local_total_h37t_p44_product)) /\ exists pa_q_hj32_local_total_h37t_p44_product_terminal. pa_u_hj32_local_total_h37t_p44_product = pa_q_hj32_local_total_h37t_p44_product_terminal * S ((S (2 * 38)) * pa_v_hj32_local_total_h37t_p44_product) + (hj32_local_value_h37t_p44))) /\ forall pa_i_hj32_local_total_h37t_p44_product. (exists pa_lt_hj32_local_total_h37t_p44_product_bound. pa_lt_hj32_local_total_h37t_p44_product_bound + S pa_i_hj32_local_total_h37t_p44_product = 2 * 38) -> exists pa_p_hj32_local_total_h37t_p44_product pa_r_hj32_local_total_h37t_p44_product pa_s_hj32_local_total_h37t_p44_product. ((((exists pa_h_hj32_local_total_h37t_p44_product_factor. pa_h_hj32_local_total_h37t_p44_product_factor + S (pa_p_hj32_local_total_h37t_p44_product) = S ((S (pa_i_hj32_local_total_h37t_p44_product)) * pa_c_hj32_local_total_h37t_p44)) /\ exists pa_q_hj32_local_total_h37t_p44_product_factor. pa_b_hj32_local_total_h37t_p44 = pa_q_hj32_local_total_h37t_p44_product_factor * S ((S (pa_i_hj32_local_total_h37t_p44_product)) * pa_c_hj32_local_total_h37t_p44) + (pa_p_hj32_local_total_h37t_p44_product))) /\ ((((exists pa_h_hj32_local_total_h37t_p44_product_partial. pa_h_hj32_local_total_h37t_p44_product_partial + S (pa_r_hj32_local_total_h37t_p44_product) = S ((S (pa_i_hj32_local_total_h37t_p44_product)) * pa_v_hj32_local_total_h37t_p44_product)) /\ exists pa_q_hj32_local_total_h37t_p44_product_partial. pa_u_hj32_local_total_h37t_p44_product = pa_q_hj32_local_total_h37t_p44_product_partial * S ((S (pa_i_hj32_local_total_h37t_p44_product)) * pa_v_hj32_local_total_h37t_p44_product) + (pa_r_hj32_local_total_h37t_p44_product))) /\ ((((exists pa_h_hj32_local_total_h37t_p44_product_successor. pa_h_hj32_local_total_h37t_p44_product_successor + S (pa_s_hj32_local_total_h37t_p44_product) = S ((S (S pa_i_hj32_local_total_h37t_p44_product)) * pa_v_hj32_local_total_h37t_p44_product)) /\ exists pa_q_hj32_local_total_h37t_p44_product_successor. pa_u_hj32_local_total_h37t_p44_product = pa_q_hj32_local_total_h37t_p44_product_successor * S ((S (S pa_i_hj32_local_total_h37t_p44_product)) * pa_v_hj32_local_total_h37t_p44_product) + (pa_s_hj32_local_total_h37t_p44_product))) /\ pa_s_hj32_local_total_h37t_p44_product = pa_r_hj32_local_total_h37t_p44_product * pa_p_hj32_local_total_h37t_p44_product))))))))
  21. 0021specialize htotal 44
  22. 0022specialize htotal 2 * 38
  23. 0023exact htotal
  24. 0024cases h37t_p44
  25. 0025have h37t_base : Lt(37,44)
    Exact native replay linehave h37t_base : exists bqb_le_gap_hj32_h37t_base. bqb_le_gap_hj32_h37t_base + (38) = (44)
  26. 0026exists 6
  27. 0027norm_num
  28. 0028have h37t_to_44 : Le(h,x)
    Exact native replay linehave h37t_to_44 : exists bqb_le_gap_hj32_local_base_bound_h37t_to_44. bqb_le_gap_hj32_local_base_bound_h37t_to_44 + (h) = (x)
  29. 0029specialize pow_base_monotone 38
  30. 0030specialize pow_base_monotone 44
  31. 0031specialize pow_base_monotone 2 * 38
  32. 0032specialize pow_base_monotone h
  33. 0033specialize pow_base_monotone x
  34. 0034apply pow_base_monotone
  35. 0035exact h37t_base
  36. 0036exact hh_route
  37. 0037exact h37t_p44_witness
  38. 0038have h37t_p4_exp : ∃ hj32_local_value_h37t_p4_exp. Pow(4,2 · 38,hj32_local_value_h37t_p4_exp)
    Exact native replay linehave h37t_p4_exp : exists hj32_local_value_h37t_p4_exp. (exists pa_b_hj32_local_total_h37t_p4_exp pa_c_hj32_local_total_h37t_p4_exp. ((forall pa_i_hj32_local_total_h37t_p4_exp_repeat. (exists pa_lt_hj32_local_total_h37t_p4_exp_repeat_bound. pa_lt_hj32_local_total_h37t_p4_exp_repeat_bound + S pa_i_hj32_local_total_h37t_p4_exp_repeat = 2 * 38) -> (((exists pa_h_hj32_local_total_h37t_p4_exp_repeat_decoded. pa_h_hj32_local_total_h37t_p4_exp_repeat_decoded + S (4) = S ((S (pa_i_hj32_local_total_h37t_p4_exp_repeat)) * pa_c_hj32_local_total_h37t_p4_exp)) /\ exists pa_q_hj32_local_total_h37t_p4_exp_repeat_decoded. pa_b_hj32_local_total_h37t_p4_exp = pa_q_hj32_local_total_h37t_p4_exp_repeat_decoded * S ((S (pa_i_hj32_local_total_h37t_p4_exp_repeat)) * pa_c_hj32_local_total_h37t_p4_exp) + (4)))) /\ (exists pa_u_hj32_local_total_h37t_p4_exp_product pa_v_hj32_local_total_h37t_p4_exp_product. ((((exists pa_h_hj32_local_total_h37t_p4_exp_product_start. pa_h_hj32_local_total_h37t_p4_exp_product_start + S (1) = S ((S (0)) * pa_v_hj32_local_total_h37t_p4_exp_product)) /\ exists pa_q_hj32_local_total_h37t_p4_exp_product_start. pa_u_hj32_local_total_h37t_p4_exp_product = pa_q_hj32_local_total_h37t_p4_exp_product_start * S ((S (0)) * pa_v_hj32_local_total_h37t_p4_exp_product) + (1))) /\ ((((exists pa_h_hj32_local_total_h37t_p4_exp_product_terminal. pa_h_hj32_local_total_h37t_p4_exp_product_terminal + S (hj32_local_value_h37t_p4_exp) = S ((S (2 * 38)) * pa_v_hj32_local_total_h37t_p4_exp_product)) /\ exists pa_q_hj32_local_total_h37t_p4_exp_product_terminal. pa_u_hj32_local_total_h37t_p4_exp_product = pa_q_hj32_local_total_h37t_p4_exp_product_terminal * S ((S (2 * 38)) * pa_v_hj32_local_total_h37t_p4_exp_product) + (hj32_local_value_h37t_p4_exp))) /\ forall pa_i_hj32_local_total_h37t_p4_exp_product. (exists pa_lt_hj32_local_total_h37t_p4_exp_product_bound. pa_lt_hj32_local_total_h37t_p4_exp_product_bound + S pa_i_hj32_local_total_h37t_p4_exp_product = 2 * 38) -> exists pa_p_hj32_local_total_h37t_p4_exp_product pa_r_hj32_local_total_h37t_p4_exp_product pa_s_hj32_local_total_h37t_p4_exp_product. ((((exists pa_h_hj32_local_total_h37t_p4_exp_product_factor. pa_h_hj32_local_total_h37t_p4_exp_product_factor + S (pa_p_hj32_local_total_h37t_p4_exp_product) = S ((S (pa_i_hj32_local_total_h37t_p4_exp_product)) * pa_c_hj32_local_total_h37t_p4_exp)) /\ exists pa_q_hj32_local_total_h37t_p4_exp_product_factor. pa_b_hj32_local_total_h37t_p4_exp = pa_q_hj32_local_total_h37t_p4_exp_product_factor * S ((S (pa_i_hj32_local_total_h37t_p4_exp_product)) * pa_c_hj32_local_total_h37t_p4_exp) + (pa_p_hj32_local_total_h37t_p4_exp_product))) /\ ((((exists pa_h_hj32_local_total_h37t_p4_exp_product_partial. pa_h_hj32_local_total_h37t_p4_exp_product_partial + S (pa_r_hj32_local_total_h37t_p4_exp_product) = S ((S (pa_i_hj32_local_total_h37t_p4_exp_product)) * pa_v_hj32_local_total_h37t_p4_exp_product)) /\ exists pa_q_hj32_local_total_h37t_p4_exp_product_partial. pa_u_hj32_local_total_h37t_p4_exp_product = pa_q_hj32_local_total_h37t_p4_exp_product_partial * S ((S (pa_i_hj32_local_total_h37t_p4_exp_product)) * pa_v_hj32_local_total_h37t_p4_exp_product) + (pa_r_hj32_local_total_h37t_p4_exp_product))) /\ ((((exists pa_h_hj32_local_total_h37t_p4_exp_product_successor. pa_h_hj32_local_total_h37t_p4_exp_product_successor + S (pa_s_hj32_local_total_h37t_p4_exp_product) = S ((S (S pa_i_hj32_local_total_h37t_p4_exp_product)) * pa_v_hj32_local_total_h37t_p4_exp_product)) /\ exists pa_q_hj32_local_total_h37t_p4_exp_product_successor. pa_u_hj32_local_total_h37t_p4_exp_product = pa_q_hj32_local_total_h37t_p4_exp_product_successor * S ((S (S pa_i_hj32_local_total_h37t_p4_exp_product)) * pa_v_hj32_local_total_h37t_p4_exp_product) + (pa_s_hj32_local_total_h37t_p4_exp_product))) /\ pa_s_hj32_local_total_h37t_p4_exp_product = pa_r_hj32_local_total_h37t_p4_exp_product * pa_p_hj32_local_total_h37t_p4_exp_product))))))))
  39. 0039specialize htotal 4
  40. 0040specialize htotal 2 * 38
  41. 0041exact htotal
  42. 0042cases h37t_p4_exp
  43. 0043have h37t_p11_exp : ∃ hj32_local_value_h37t_p11_exp. Pow(11,2 · 38,hj32_local_value_h37t_p11_exp)
    Exact native replay linehave h37t_p11_exp : exists hj32_local_value_h37t_p11_exp. (exists pa_b_hj32_local_total_h37t_p11_exp pa_c_hj32_local_total_h37t_p11_exp. ((forall pa_i_hj32_local_total_h37t_p11_exp_repeat. (exists pa_lt_hj32_local_total_h37t_p11_exp_repeat_bound. pa_lt_hj32_local_total_h37t_p11_exp_repeat_bound + S pa_i_hj32_local_total_h37t_p11_exp_repeat = 2 * 38) -> (((exists pa_h_hj32_local_total_h37t_p11_exp_repeat_decoded. pa_h_hj32_local_total_h37t_p11_exp_repeat_decoded + S (11) = S ((S (pa_i_hj32_local_total_h37t_p11_exp_repeat)) * pa_c_hj32_local_total_h37t_p11_exp)) /\ exists pa_q_hj32_local_total_h37t_p11_exp_repeat_decoded. pa_b_hj32_local_total_h37t_p11_exp = pa_q_hj32_local_total_h37t_p11_exp_repeat_decoded * S ((S (pa_i_hj32_local_total_h37t_p11_exp_repeat)) * pa_c_hj32_local_total_h37t_p11_exp) + (11)))) /\ (exists pa_u_hj32_local_total_h37t_p11_exp_product pa_v_hj32_local_total_h37t_p11_exp_product. ((((exists pa_h_hj32_local_total_h37t_p11_exp_product_start. pa_h_hj32_local_total_h37t_p11_exp_product_start + S (1) = S ((S (0)) * pa_v_hj32_local_total_h37t_p11_exp_product)) /\ exists pa_q_hj32_local_total_h37t_p11_exp_product_start. pa_u_hj32_local_total_h37t_p11_exp_product = pa_q_hj32_local_total_h37t_p11_exp_product_start * S ((S (0)) * pa_v_hj32_local_total_h37t_p11_exp_product) + (1))) /\ ((((exists pa_h_hj32_local_total_h37t_p11_exp_product_terminal. pa_h_hj32_local_total_h37t_p11_exp_product_terminal + S (hj32_local_value_h37t_p11_exp) = S ((S (2 * 38)) * pa_v_hj32_local_total_h37t_p11_exp_product)) /\ exists pa_q_hj32_local_total_h37t_p11_exp_product_terminal. pa_u_hj32_local_total_h37t_p11_exp_product = pa_q_hj32_local_total_h37t_p11_exp_product_terminal * S ((S (2 * 38)) * pa_v_hj32_local_total_h37t_p11_exp_product) + (hj32_local_value_h37t_p11_exp))) /\ forall pa_i_hj32_local_total_h37t_p11_exp_product. (exists pa_lt_hj32_local_total_h37t_p11_exp_product_bound. pa_lt_hj32_local_total_h37t_p11_exp_product_bound + S pa_i_hj32_local_total_h37t_p11_exp_product = 2 * 38) -> exists pa_p_hj32_local_total_h37t_p11_exp_product pa_r_hj32_local_total_h37t_p11_exp_product pa_s_hj32_local_total_h37t_p11_exp_product. ((((exists pa_h_hj32_local_total_h37t_p11_exp_product_factor. pa_h_hj32_local_total_h37t_p11_exp_product_factor + S (pa_p_hj32_local_total_h37t_p11_exp_product) = S ((S (pa_i_hj32_local_total_h37t_p11_exp_product)) * pa_c_hj32_local_total_h37t_p11_exp)) /\ exists pa_q_hj32_local_total_h37t_p11_exp_product_factor. pa_b_hj32_local_total_h37t_p11_exp = pa_q_hj32_local_total_h37t_p11_exp_product_factor * S ((S (pa_i_hj32_local_total_h37t_p11_exp_product)) * pa_c_hj32_local_total_h37t_p11_exp) + (pa_p_hj32_local_total_h37t_p11_exp_product))) /\ ((((exists pa_h_hj32_local_total_h37t_p11_exp_product_partial. pa_h_hj32_local_total_h37t_p11_exp_product_partial + S (pa_r_hj32_local_total_h37t_p11_exp_product) = S ((S (pa_i_hj32_local_total_h37t_p11_exp_product)) * pa_v_hj32_local_total_h37t_p11_exp_product)) /\ exists pa_q_hj32_local_total_h37t_p11_exp_product_partial. pa_u_hj32_local_total_h37t_p11_exp_product = pa_q_hj32_local_total_h37t_p11_exp_product_partial * S ((S (pa_i_hj32_local_total_h37t_p11_exp_product)) * pa_v_hj32_local_total_h37t_p11_exp_product) + (pa_r_hj32_local_total_h37t_p11_exp_product))) /\ ((((exists pa_h_hj32_local_total_h37t_p11_exp_product_successor. pa_h_hj32_local_total_h37t_p11_exp_product_successor + S (pa_s_hj32_local_total_h37t_p11_exp_product) = S ((S (S pa_i_hj32_local_total_h37t_p11_exp_product)) * pa_v_hj32_local_total_h37t_p11_exp_product)) /\ exists pa_q_hj32_local_total_h37t_p11_exp_product_successor. pa_u_hj32_local_total_h37t_p11_exp_product = pa_q_hj32_local_total_h37t_p11_exp_product_successor * S ((S (S pa_i_hj32_local_total_h37t_p11_exp_product)) * pa_v_hj32_local_total_h37t_p11_exp_product) + (pa_s_hj32_local_total_h37t_p11_exp_product))) /\ pa_s_hj32_local_total_h37t_p11_exp_product = pa_r_hj32_local_total_h37t_p11_exp_product * pa_p_hj32_local_total_h37t_p11_exp_product))))))))
  44. 0044specialize htotal 11
  45. 0045specialize htotal 2 * 38
  46. 0046exact htotal
  47. 0047cases h37t_p11_exp
  48. 0048have h37t_p44_product_graph : Pow(4 · 11,2 · 38,x)
    Exact native replay linehave h37t_p44_product_graph : exists pa_b_hj32_local_product_h37t_p44_product pa_c_hj32_local_product_h37t_p44_product. ((forall pa_i_hj32_local_product_h37t_p44_product_repeat. (exists pa_lt_hj32_local_product_h37t_p44_product_repeat_bound. pa_lt_hj32_local_product_h37t_p44_product_repeat_bound + S pa_i_hj32_local_product_h37t_p44_product_repeat = 2 * 38) -> (((exists pa_h_hj32_local_product_h37t_p44_product_repeat_decoded. pa_h_hj32_local_product_h37t_p44_product_repeat_decoded + S (4 * 11) = S ((S (pa_i_hj32_local_product_h37t_p44_product_repeat)) * pa_c_hj32_local_product_h37t_p44_product)) /\ exists pa_q_hj32_local_product_h37t_p44_product_repeat_decoded. pa_b_hj32_local_product_h37t_p44_product = pa_q_hj32_local_product_h37t_p44_product_repeat_decoded * S ((S (pa_i_hj32_local_product_h37t_p44_product_repeat)) * pa_c_hj32_local_product_h37t_p44_product) + (4 * 11)))) /\ (exists pa_u_hj32_local_product_h37t_p44_product_product pa_v_hj32_local_product_h37t_p44_product_product. ((((exists pa_h_hj32_local_product_h37t_p44_product_product_start. pa_h_hj32_local_product_h37t_p44_product_product_start + S (1) = S ((S (0)) * pa_v_hj32_local_product_h37t_p44_product_product)) /\ exists pa_q_hj32_local_product_h37t_p44_product_product_start. pa_u_hj32_local_product_h37t_p44_product_product = pa_q_hj32_local_product_h37t_p44_product_product_start * S ((S (0)) * pa_v_hj32_local_product_h37t_p44_product_product) + (1))) /\ ((((exists pa_h_hj32_local_product_h37t_p44_product_product_terminal. pa_h_hj32_local_product_h37t_p44_product_product_terminal + S (x) = S ((S (2 * 38)) * pa_v_hj32_local_product_h37t_p44_product_product)) /\ exists pa_q_hj32_local_product_h37t_p44_product_product_terminal. pa_u_hj32_local_product_h37t_p44_product_product = pa_q_hj32_local_product_h37t_p44_product_product_terminal * S ((S (2 * 38)) * pa_v_hj32_local_product_h37t_p44_product_product) + (x))) /\ forall pa_i_hj32_local_product_h37t_p44_product_product. (exists pa_lt_hj32_local_product_h37t_p44_product_product_bound. pa_lt_hj32_local_product_h37t_p44_product_product_bound + S pa_i_hj32_local_product_h37t_p44_product_product = 2 * 38) -> exists pa_p_hj32_local_product_h37t_p44_product_product pa_r_hj32_local_product_h37t_p44_product_product pa_s_hj32_local_product_h37t_p44_product_product. ((((exists pa_h_hj32_local_product_h37t_p44_product_product_factor. pa_h_hj32_local_product_h37t_p44_product_product_factor + S (pa_p_hj32_local_product_h37t_p44_product_product) = S ((S (pa_i_hj32_local_product_h37t_p44_product_product)) * pa_c_hj32_local_product_h37t_p44_product)) /\ exists pa_q_hj32_local_product_h37t_p44_product_product_factor. pa_b_hj32_local_product_h37t_p44_product = pa_q_hj32_local_product_h37t_p44_product_product_factor * S ((S (pa_i_hj32_local_product_h37t_p44_product_product)) * pa_c_hj32_local_product_h37t_p44_product) + (pa_p_hj32_local_product_h37t_p44_product_product))) /\ ((((exists pa_h_hj32_local_product_h37t_p44_product_product_partial. pa_h_hj32_local_product_h37t_p44_product_product_partial + S (pa_r_hj32_local_product_h37t_p44_product_product) = S ((S (pa_i_hj32_local_product_h37t_p44_product_product)) * pa_v_hj32_local_product_h37t_p44_product_product)) /\ exists pa_q_hj32_local_product_h37t_p44_product_product_partial. pa_u_hj32_local_product_h37t_p44_product_product = pa_q_hj32_local_product_h37t_p44_product_product_partial * S ((S (pa_i_hj32_local_product_h37t_p44_product_product)) * pa_v_hj32_local_product_h37t_p44_product_product) + (pa_r_hj32_local_product_h37t_p44_product_product))) /\ ((((exists pa_h_hj32_local_product_h37t_p44_product_product_successor. pa_h_hj32_local_product_h37t_p44_product_product_successor + S (pa_s_hj32_local_product_h37t_p44_product_product) = S ((S (S pa_i_hj32_local_product_h37t_p44_product_product)) * pa_v_hj32_local_product_h37t_p44_product_product)) /\ exists pa_q_hj32_local_product_h37t_p44_product_product_successor. pa_u_hj32_local_product_h37t_p44_product_product = pa_q_hj32_local_product_h37t_p44_product_product_successor * S ((S (S pa_i_hj32_local_product_h37t_p44_product_product)) * pa_v_hj32_local_product_h37t_p44_product_product) + (pa_s_hj32_local_product_h37t_p44_product_product))) /\ pa_s_hj32_local_product_h37t_p44_product_product = pa_r_hj32_local_product_h37t_p44_product_product * pa_p_hj32_local_product_h37t_p44_product_product)))))))
  49. 0049have h37t_p44_product_base : 4 * 11 = 44
  50. 0050norm_num
  51. 0051rewrite h37t_p44_product_base
  52. 0052rewrite h37t_p44_product_base
  53. 0053exact h37t_p44_witness
  54. 0054have h37t_p44_product : x = x1 * x2
  55. 0055specialize pow_mul_base 4
  56. 0056specialize pow_mul_base 11
  57. 0057specialize pow_mul_base 2 * 38
  58. 0058specialize pow_mul_base x1
  59. 0059specialize pow_mul_base x2
  60. 0060specialize pow_mul_base x
  61. 0061apply pow_mul_base
  62. 0062exact h37t_p4_exp_witness
  63. 0063exact h37t_p11_exp_witness
  64. 0064exact h37t_p44_product_graph
  65. 0065have h37t_p4_tail : ∃ hj32_local_value_h37t_p4_tail. Pow(4,7 · 19,hj32_local_value_h37t_p4_tail)
    Exact native replay linehave h37t_p4_tail : exists hj32_local_value_h37t_p4_tail. (exists pa_b_hj32_local_total_h37t_p4_tail pa_c_hj32_local_total_h37t_p4_tail. ((forall pa_i_hj32_local_total_h37t_p4_tail_repeat. (exists pa_lt_hj32_local_total_h37t_p4_tail_repeat_bound. pa_lt_hj32_local_total_h37t_p4_tail_repeat_bound + S pa_i_hj32_local_total_h37t_p4_tail_repeat = 7 * 19) -> (((exists pa_h_hj32_local_total_h37t_p4_tail_repeat_decoded. pa_h_hj32_local_total_h37t_p4_tail_repeat_decoded + S (4) = S ((S (pa_i_hj32_local_total_h37t_p4_tail_repeat)) * pa_c_hj32_local_total_h37t_p4_tail)) /\ exists pa_q_hj32_local_total_h37t_p4_tail_repeat_decoded. pa_b_hj32_local_total_h37t_p4_tail = pa_q_hj32_local_total_h37t_p4_tail_repeat_decoded * S ((S (pa_i_hj32_local_total_h37t_p4_tail_repeat)) * pa_c_hj32_local_total_h37t_p4_tail) + (4)))) /\ (exists pa_u_hj32_local_total_h37t_p4_tail_product pa_v_hj32_local_total_h37t_p4_tail_product. ((((exists pa_h_hj32_local_total_h37t_p4_tail_product_start. pa_h_hj32_local_total_h37t_p4_tail_product_start + S (1) = S ((S (0)) * pa_v_hj32_local_total_h37t_p4_tail_product)) /\ exists pa_q_hj32_local_total_h37t_p4_tail_product_start. pa_u_hj32_local_total_h37t_p4_tail_product = pa_q_hj32_local_total_h37t_p4_tail_product_start * S ((S (0)) * pa_v_hj32_local_total_h37t_p4_tail_product) + (1))) /\ ((((exists pa_h_hj32_local_total_h37t_p4_tail_product_terminal. pa_h_hj32_local_total_h37t_p4_tail_product_terminal + S (hj32_local_value_h37t_p4_tail) = S ((S (7 * 19)) * pa_v_hj32_local_total_h37t_p4_tail_product)) /\ exists pa_q_hj32_local_total_h37t_p4_tail_product_terminal. pa_u_hj32_local_total_h37t_p4_tail_product = pa_q_hj32_local_total_h37t_p4_tail_product_terminal * S ((S (7 * 19)) * pa_v_hj32_local_total_h37t_p4_tail_product) + (hj32_local_value_h37t_p4_tail))) /\ forall pa_i_hj32_local_total_h37t_p4_tail_product. (exists pa_lt_hj32_local_total_h37t_p4_tail_product_bound. pa_lt_hj32_local_total_h37t_p4_tail_product_bound + S pa_i_hj32_local_total_h37t_p4_tail_product = 7 * 19) -> exists pa_p_hj32_local_total_h37t_p4_tail_product pa_r_hj32_local_total_h37t_p4_tail_product pa_s_hj32_local_total_h37t_p4_tail_product. ((((exists pa_h_hj32_local_total_h37t_p4_tail_product_factor. pa_h_hj32_local_total_h37t_p4_tail_product_factor + S (pa_p_hj32_local_total_h37t_p4_tail_product) = S ((S (pa_i_hj32_local_total_h37t_p4_tail_product)) * pa_c_hj32_local_total_h37t_p4_tail)) /\ exists pa_q_hj32_local_total_h37t_p4_tail_product_factor. pa_b_hj32_local_total_h37t_p4_tail = pa_q_hj32_local_total_h37t_p4_tail_product_factor * S ((S (pa_i_hj32_local_total_h37t_p4_tail_product)) * pa_c_hj32_local_total_h37t_p4_tail) + (pa_p_hj32_local_total_h37t_p4_tail_product))) /\ ((((exists pa_h_hj32_local_total_h37t_p4_tail_product_partial. pa_h_hj32_local_total_h37t_p4_tail_product_partial + S (pa_r_hj32_local_total_h37t_p4_tail_product) = S ((S (pa_i_hj32_local_total_h37t_p4_tail_product)) * pa_v_hj32_local_total_h37t_p4_tail_product)) /\ exists pa_q_hj32_local_total_h37t_p4_tail_product_partial. pa_u_hj32_local_total_h37t_p4_tail_product = pa_q_hj32_local_total_h37t_p4_tail_product_partial * S ((S (pa_i_hj32_local_total_h37t_p4_tail_product)) * pa_v_hj32_local_total_h37t_p4_tail_product) + (pa_r_hj32_local_total_h37t_p4_tail_product))) /\ ((((exists pa_h_hj32_local_total_h37t_p4_tail_product_successor. pa_h_hj32_local_total_h37t_p4_tail_product_successor + S (pa_s_hj32_local_total_h37t_p4_tail_product) = S ((S (S pa_i_hj32_local_total_h37t_p4_tail_product)) * pa_v_hj32_local_total_h37t_p4_tail_product)) /\ exists pa_q_hj32_local_total_h37t_p4_tail_product_successor. pa_u_hj32_local_total_h37t_p4_tail_product = pa_q_hj32_local_total_h37t_p4_tail_product_successor * S ((S (S pa_i_hj32_local_total_h37t_p4_tail_product)) * pa_v_hj32_local_total_h37t_p4_tail_product) + (pa_s_hj32_local_total_h37t_p4_tail_product))) /\ pa_s_hj32_local_total_h37t_p4_tail_product = pa_r_hj32_local_total_h37t_p4_tail_product * pa_p_hj32_local_total_h37t_p4_tail_product))))))))
  66. 0066specialize htotal 4
  67. 0067specialize htotal 7 * 19
  68. 0068exact htotal
  69. 0069cases h37t_p4_tail
  70. 0070have h37t_parity : 7 * 38 = 2 * (7 * 19)
  71. 0071have h37t_root : 38 = 2 * 19
  72. 0072norm_num
  73. 0073rewrite h37t_root
  74. 0074trans (7 * 2) * 19
  75. 0075symm
  76. 0076specialize mul_assoc 7
  77. 0077specialize mul_assoc 2
  78. 0078specialize mul_assoc 19
  79. 0079apply mul_assoc
  80. 0080trans (2 * 7) * 19
  81. 0081congr
  82. 0082specialize mul_comm 7
  83. 0083specialize mul_comm 2
  84. 0084apply mul_comm
  85. 0085refl
  86. 0086specialize mul_assoc 2
  87. 0087specialize mul_assoc 7
  88. 0088specialize mul_assoc 19
  89. 0089apply mul_assoc
  90. 0090have h37t_eleven_bound : Le(x2,x3)
    Exact native replay linehave h37t_eleven_bound : exists bqb_le_gap_hj32_h37t_eleven_bound. bqb_le_gap_hj32_h37t_eleven_bound + (x2) = (x3)
  91. 0091specialize pow_eleven_double_block_le_pow_four_even_from_total 38
  92. 0092specialize pow_eleven_double_block_le_pow_four_even_from_total (7 * 19)
  93. 0093specialize pow_eleven_double_block_le_pow_four_even_from_total x2
  94. 0094specialize pow_eleven_double_block_le_pow_four_even_from_total x3
  95. 0095apply pow_eleven_double_block_le_pow_four_even_from_total
  96. 0096exact htotal
  97. 0097exact h37t_parity
  98. 0098exact h37t_p11_exp_witness
  99. 0099exact h37t_p4_tail_witness
  100. 0100have h37t_four_refl : Le(x1,x1)
    Exact native replay linehave h37t_four_refl : exists bqb_le_gap_hj32_h37t_four_refl. bqb_le_gap_hj32_h37t_four_refl + (x1) = (x1)
  101. 0101specialize le_refl x1
  102. 0102exact le_refl
  103. 0103have h37t_product_bound : Le(x1 · x2,x1 · x3)
    Exact native replay linehave h37t_product_bound : exists bqb_le_gap_hj32_local_product_bound_h37t_product_bound. bqb_le_gap_hj32_local_product_bound_h37t_product_bound + (x1 * x2) = (x1 * x3)
  104. 0104specialize mul_le_mul x1
  105. 0105specialize mul_le_mul x1
  106. 0106specialize mul_le_mul x2
  107. 0107specialize mul_le_mul x3
  108. 0108apply mul_le_mul
  109. 0109exact h37t_four_refl
  110. 0110exact h37t_eleven_bound
  111. 0111have h37t_p4_budget : ∃ hj32_local_value_h37t_p4_budget. Pow(4,2 · 38 + 7 · 19,hj32_local_value_h37t_p4_budget)
    Exact native replay linehave h37t_p4_budget : exists hj32_local_value_h37t_p4_budget. (exists pa_b_hj32_local_total_h37t_p4_budget pa_c_hj32_local_total_h37t_p4_budget. ((forall pa_i_hj32_local_total_h37t_p4_budget_repeat. (exists pa_lt_hj32_local_total_h37t_p4_budget_repeat_bound. pa_lt_hj32_local_total_h37t_p4_budget_repeat_bound + S pa_i_hj32_local_total_h37t_p4_budget_repeat = 2 * 38 + 7 * 19) -> (((exists pa_h_hj32_local_total_h37t_p4_budget_repeat_decoded. pa_h_hj32_local_total_h37t_p4_budget_repeat_decoded + S (4) = S ((S (pa_i_hj32_local_total_h37t_p4_budget_repeat)) * pa_c_hj32_local_total_h37t_p4_budget)) /\ exists pa_q_hj32_local_total_h37t_p4_budget_repeat_decoded. pa_b_hj32_local_total_h37t_p4_budget = pa_q_hj32_local_total_h37t_p4_budget_repeat_decoded * S ((S (pa_i_hj32_local_total_h37t_p4_budget_repeat)) * pa_c_hj32_local_total_h37t_p4_budget) + (4)))) /\ (exists pa_u_hj32_local_total_h37t_p4_budget_product pa_v_hj32_local_total_h37t_p4_budget_product. ((((exists pa_h_hj32_local_total_h37t_p4_budget_product_start. pa_h_hj32_local_total_h37t_p4_budget_product_start + S (1) = S ((S (0)) * pa_v_hj32_local_total_h37t_p4_budget_product)) /\ exists pa_q_hj32_local_total_h37t_p4_budget_product_start. pa_u_hj32_local_total_h37t_p4_budget_product = pa_q_hj32_local_total_h37t_p4_budget_product_start * S ((S (0)) * pa_v_hj32_local_total_h37t_p4_budget_product) + (1))) /\ ((((exists pa_h_hj32_local_total_h37t_p4_budget_product_terminal. pa_h_hj32_local_total_h37t_p4_budget_product_terminal + S (hj32_local_value_h37t_p4_budget) = S ((S (2 * 38 + 7 * 19)) * pa_v_hj32_local_total_h37t_p4_budget_product)) /\ exists pa_q_hj32_local_total_h37t_p4_budget_product_terminal. pa_u_hj32_local_total_h37t_p4_budget_product = pa_q_hj32_local_total_h37t_p4_budget_product_terminal * S ((S (2 * 38 + 7 * 19)) * pa_v_hj32_local_total_h37t_p4_budget_product) + (hj32_local_value_h37t_p4_budget))) /\ forall pa_i_hj32_local_total_h37t_p4_budget_product. (exists pa_lt_hj32_local_total_h37t_p4_budget_product_bound. pa_lt_hj32_local_total_h37t_p4_budget_product_bound + S pa_i_hj32_local_total_h37t_p4_budget_product = 2 * 38 + 7 * 19) -> exists pa_p_hj32_local_total_h37t_p4_budget_product pa_r_hj32_local_total_h37t_p4_budget_product pa_s_hj32_local_total_h37t_p4_budget_product. ((((exists pa_h_hj32_local_total_h37t_p4_budget_product_factor. pa_h_hj32_local_total_h37t_p4_budget_product_factor + S (pa_p_hj32_local_total_h37t_p4_budget_product) = S ((S (pa_i_hj32_local_total_h37t_p4_budget_product)) * pa_c_hj32_local_total_h37t_p4_budget)) /\ exists pa_q_hj32_local_total_h37t_p4_budget_product_factor. pa_b_hj32_local_total_h37t_p4_budget = pa_q_hj32_local_total_h37t_p4_budget_product_factor * S ((S (pa_i_hj32_local_total_h37t_p4_budget_product)) * pa_c_hj32_local_total_h37t_p4_budget) + (pa_p_hj32_local_total_h37t_p4_budget_product))) /\ ((((exists pa_h_hj32_local_total_h37t_p4_budget_product_partial. pa_h_hj32_local_total_h37t_p4_budget_product_partial + S (pa_r_hj32_local_total_h37t_p4_budget_product) = S ((S (pa_i_hj32_local_total_h37t_p4_budget_product)) * pa_v_hj32_local_total_h37t_p4_budget_product)) /\ exists pa_q_hj32_local_total_h37t_p4_budget_product_partial. pa_u_hj32_local_total_h37t_p4_budget_product = pa_q_hj32_local_total_h37t_p4_budget_product_partial * S ((S (pa_i_hj32_local_total_h37t_p4_budget_product)) * pa_v_hj32_local_total_h37t_p4_budget_product) + (pa_r_hj32_local_total_h37t_p4_budget_product))) /\ ((((exists pa_h_hj32_local_total_h37t_p4_budget_product_successor. pa_h_hj32_local_total_h37t_p4_budget_product_successor + S (pa_s_hj32_local_total_h37t_p4_budget_product) = S ((S (S pa_i_hj32_local_total_h37t_p4_budget_product)) * pa_v_hj32_local_total_h37t_p4_budget_product)) /\ exists pa_q_hj32_local_total_h37t_p4_budget_product_successor. pa_u_hj32_local_total_h37t_p4_budget_product = pa_q_hj32_local_total_h37t_p4_budget_product_successor * S ((S (S pa_i_hj32_local_total_h37t_p4_budget_product)) * pa_v_hj32_local_total_h37t_p4_budget_product) + (pa_s_hj32_local_total_h37t_p4_budget_product))) /\ pa_s_hj32_local_total_h37t_p4_budget_product = pa_r_hj32_local_total_h37t_p4_budget_product * pa_p_hj32_local_total_h37t_p4_budget_product))))))))
  112. 0112specialize htotal 4
  113. 0113specialize htotal 2 * 38 + 7 * 19
  114. 0114exact htotal
  115. 0115cases h37t_p4_budget
  116. 0116have h37t_budget_product : x4 = x1 * x3
  117. 0117specialize pow_add 4
  118. 0118specialize pow_add 2 * 38
  119. 0119specialize pow_add 7 * 19
  120. 0120specialize pow_add 2 * 38 + 7 * 19
  121. 0121specialize pow_add x1
  122. 0122specialize pow_add x3
  123. 0123specialize pow_add x4
  124. 0124apply pow_add
  125. 0125refl
  126. 0126exact h37t_p4_exp_witness
  127. 0127exact h37t_p4_tail_witness
  128. 0128exact h37t_p4_budget_witness
  129. 0129rewrite <- h37t_p44_product at h37t_product_bound
  130. 0130rewrite <- h37t_budget_product at h37t_product_bound
  131. 0131have h37t_to_budget : Le(h,x4)
    Exact native replay linehave h37t_to_budget : exists bqb_le_gap_hj32_local_trans_bound_h37t_to_budget. bqb_le_gap_hj32_local_trans_bound_h37t_to_budget + (h) = (x4)
  132. 0132specialize le_trans h
  133. 0133specialize le_trans x
  134. 0134specialize le_trans x4
  135. 0135apply le_trans
  136. 0136exact h37t_to_44
  137. 0137exact h37t_product_bound
  138. 0138have hscaled : Le(6 · (2 · 38 + 7 · 19),37 · 37)
    Exact native replay linehave hscaled : exists bqb_le_gap_hj32_scaled_budget_root_37. bqb_le_gap_hj32_scaled_budget_root_37 + (6 * (2 * 38 + 7 * 19)) = (37 * 37)
  139. 0139apply bertrand_scaled_budget_root_37
  140. 0140have hbudget_exponent : Le(2 · 38 + 7 · 19,e)
    Exact native replay linehave hbudget_exponent : exists bqb_le_gap_hj32_h_37_budget_exponent. bqb_le_gap_hj32_h_37_budget_exponent + (2 * 38 + 7 * 19) = (e)
  141. 0141specialize ceil_div_six_budget_of_scaled_le (37 * 37)
  142. 0142specialize ceil_div_six_budget_of_scaled_le (2 * 38 + 7 * 19)
  143. 0143specialize ceil_div_six_budget_of_scaled_le e
  144. 0144apply ceil_div_six_budget_of_scaled_le
  145. 0145exact hceiling
  146. 0146exact hscaled
  147. 0147have h37_budget_growth : Le(x4,u)
    Exact native replay linehave h37_budget_growth : exists bqb_le_gap_hj32_local_exponent_bound_h37_budget_growth. bqb_le_gap_hj32_local_exponent_bound_h37_budget_growth + (x4) = (u)
  148. 0148specialize pow_exponent_monotone_from_total 4
  149. 0149specialize pow_exponent_monotone_from_total 2 * 38 + 7 * 19
  150. 0150specialize pow_exponent_monotone_from_total e
  151. 0151specialize pow_exponent_monotone_from_total x4
  152. 0152specialize pow_exponent_monotone_from_total u
  153. 0153apply pow_exponent_monotone_from_total
  154. 0154exact htotal
  155. 0155exists 3
  156. 0156norm_num
  157. 0157exact hbudget_exponent
  158. 0158exact h37t_p4_budget_witness
  159. 0159exact hu
  160. 0160have h37_result : Le(h,u)
    Exact native replay linehave h37_result : exists bqb_le_gap_hj32_local_trans_bound_h37_result. bqb_le_gap_hj32_local_trans_bound_h37_result + (h) = (u)
  161. 0161specialize le_trans h
  162. 0162specialize le_trans x4
  163. 0163specialize le_trans u
  164. 0164apply le_trans
  165. 0165exact h37t_to_budget
  166. 0166exact h37_budget_growth
  167. 0167exact h37_result