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
∀ s. ∀ j. ∀ g. ∀ jn. ∀ gn. (∀ x. ∀ y. ∃ z. Pow(x,y,z)) → Pow(s + 7,12,j) → Pow(4,s + 5,g) → Le(j,g) → Pow(s + 13,12,jn) → Pow(4,s + 11,gn) → Le(jn,gn)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
7 occurrences
In local proof propositions
8 occurrences
Exact expanded native-PA statement
forall s j g jn gn. (forall bpt_a_hjt_j bpt_e_hjt_j. exists bpt_x_hjt_j. (exists ff_b_bpt_value_hjt_j ff_c_bpt_value_hjt_j. ((forall ff_i_bpt_value_hjt_j_repeat. (exists ff_lt_bpt_value_hjt_j_repeat_bound. ff_lt_bpt_value_hjt_j_repeat_bound + S ff_i_bpt_value_hjt_j_repeat = bpt_e_hjt_j) -> (((exists ff_h_bpt_value_hjt_j_repeat_decoded. ff_h_bpt_value_hjt_j_repeat_decoded + S (bpt_a_hjt_j) = S ((S (ff_i_bpt_value_hjt_j_repeat)) * ff_c_bpt_value_hjt_j)) /\ exists ff_q_bpt_value_hjt_j_repeat_decoded. ff_b_bpt_value_hjt_j = ff_q_bpt_value_hjt_j_repeat_decoded * S ((S (ff_i_bpt_value_hjt_j_repeat)) * ff_c_bpt_value_hjt_j) + (bpt_a_hjt_j)))) /\ (exists ff_u_bpt_value_hjt_j_product ff_v_bpt_value_hjt_j_product. ((((exists ff_h_bpt_value_hjt_j_product_start. ff_h_bpt_value_hjt_j_product_start + S (1) = S ((S (0)) * ff_v_bpt_value_hjt_j_product)) /\ exists ff_q_bpt_value_hjt_j_product_start. ff_u_bpt_value_hjt_j_product = ff_q_bpt_value_hjt_j_product_start * S ((S (0)) * ff_v_bpt_value_hjt_j_product) + (1))) /\ ((((exists ff_h_bpt_value_hjt_j_product_terminal. ff_h_bpt_value_hjt_j_product_terminal + S (bpt_x_hjt_j) = S ((S (bpt_e_hjt_j)) * ff_v_bpt_value_hjt_j_product)) /\ exists ff_q_bpt_value_hjt_j_product_terminal. ff_u_bpt_value_hjt_j_product = ff_q_bpt_value_hjt_j_product_terminal * S ((S (bpt_e_hjt_j)) * ff_v_bpt_value_hjt_j_product) + (bpt_x_hjt_j))) /\ forall ff_i_bpt_value_hjt_j_product. (exists ff_lt_bpt_value_hjt_j_product_bound. ff_lt_bpt_value_hjt_j_product_bound + S ff_i_bpt_value_hjt_j_product = bpt_e_hjt_j) -> exists ff_p_bpt_value_hjt_j_product ff_r_bpt_value_hjt_j_product ff_s_bpt_value_hjt_j_product. ((((exists ff_h_bpt_value_hjt_j_product_factor. ff_h_bpt_value_hjt_j_product_factor + S (ff_p_bpt_value_hjt_j_product) = S ((S (ff_i_bpt_value_hjt_j_product)) * ff_c_bpt_value_hjt_j)) /\ exists ff_q_bpt_value_hjt_j_product_factor. ff_b_bpt_value_hjt_j = ff_q_bpt_value_hjt_j_product_factor * S ((S (ff_i_bpt_value_hjt_j_product)) * ff_c_bpt_value_hjt_j) + (ff_p_bpt_value_hjt_j_product))) /\ ((((exists ff_h_bpt_value_hjt_j_product_partial. ff_h_bpt_value_hjt_j_product_partial + S (ff_r_bpt_value_hjt_j_product) = S ((S (ff_i_bpt_value_hjt_j_product)) * ff_v_bpt_value_hjt_j_product)) /\ exists ff_q_bpt_value_hjt_j_product_partial. ff_u_bpt_value_hjt_j_product = ff_q_bpt_value_hjt_j_product_partial * S ((S (ff_i_bpt_value_hjt_j_product)) * ff_v_bpt_value_hjt_j_product) + (ff_r_bpt_value_hjt_j_product))) /\ ((((exists ff_h_bpt_value_hjt_j_product_successor. ff_h_bpt_value_hjt_j_product_successor + S (ff_s_bpt_value_hjt_j_product) = S ((S (S ff_i_bpt_value_hjt_j_product)) * ff_v_bpt_value_hjt_j_product)) /\ exists ff_q_bpt_value_hjt_j_product_successor. ff_u_bpt_value_hjt_j_product = ff_q_bpt_value_hjt_j_product_successor * S ((S (S ff_i_bpt_value_hjt_j_product)) * ff_v_bpt_value_hjt_j_product) + (ff_s_bpt_value_hjt_j_product))) /\ ff_s_bpt_value_hjt_j_product = ff_r_bpt_value_hjt_j_product * ff_p_bpt_value_hjt_j_product))))))))) -> (exists pa_b_hjt_j_now pa_c_hjt_j_now. ((forall pa_i_hjt_j_now_repeat. (exists pa_lt_hjt_j_now_repeat_bound. pa_lt_hjt_j_now_repeat_bound + S pa_i_hjt_j_now_repeat = 12) -> (((exists pa_h_hjt_j_now_repeat_decoded. pa_h_hjt_j_now_repeat_decoded + S (s + 7) = S ((S (pa_i_hjt_j_now_repeat)) * pa_c_hjt_j_now)) /\ exists pa_q_hjt_j_now_repeat_decoded. pa_b_hjt_j_now = pa_q_hjt_j_now_repeat_decoded * S ((S (pa_i_hjt_j_now_repeat)) * pa_c_hjt_j_now) + (s + 7)))) /\ (exists pa_u_hjt_j_now_product pa_v_hjt_j_now_product. ((((exists pa_h_hjt_j_now_product_start. pa_h_hjt_j_now_product_start + S (1) = S ((S (0)) * pa_v_hjt_j_now_product)) /\ exists pa_q_hjt_j_now_product_start. pa_u_hjt_j_now_product = pa_q_hjt_j_now_product_start * S ((S (0)) * pa_v_hjt_j_now_product) + (1))) /\ ((((exists pa_h_hjt_j_now_product_terminal. pa_h_hjt_j_now_product_terminal + S (j) = S ((S (12)) * pa_v_hjt_j_now_product)) /\ exists pa_q_hjt_j_now_product_terminal. pa_u_hjt_j_now_product = pa_q_hjt_j_now_product_terminal * S ((S (12)) * pa_v_hjt_j_now_product) + (j))) /\ forall pa_i_hjt_j_now_product. (exists pa_lt_hjt_j_now_product_bound. pa_lt_hjt_j_now_product_bound + S pa_i_hjt_j_now_product = 12) -> exists pa_p_hjt_j_now_product pa_r_hjt_j_now_product pa_s_hjt_j_now_product. ((((exists pa_h_hjt_j_now_product_factor. pa_h_hjt_j_now_product_factor + S (pa_p_hjt_j_now_product) = S ((S (pa_i_hjt_j_now_product)) * pa_c_hjt_j_now)) /\ exists pa_q_hjt_j_now_product_factor. pa_b_hjt_j_now = pa_q_hjt_j_now_product_factor * S ((S (pa_i_hjt_j_now_product)) * pa_c_hjt_j_now) + (pa_p_hjt_j_now_product))) /\ ((((exists pa_h_hjt_j_now_product_partial. pa_h_hjt_j_now_product_partial + S (pa_r_hjt_j_now_product) = S ((S (pa_i_hjt_j_now_product)) * pa_v_hjt_j_now_product)) /\ exists pa_q_hjt_j_now_product_partial. pa_u_hjt_j_now_product = pa_q_hjt_j_now_product_partial * S ((S (pa_i_hjt_j_now_product)) * pa_v_hjt_j_now_product) + (pa_r_hjt_j_now_product))) /\ ((((exists pa_h_hjt_j_now_product_successor. pa_h_hjt_j_now_product_successor + S (pa_s_hjt_j_now_product) = S ((S (S pa_i_hjt_j_now_product)) * pa_v_hjt_j_now_product)) /\ exists pa_q_hjt_j_now_product_successor. pa_u_hjt_j_now_product = pa_q_hjt_j_now_product_successor * S ((S (S pa_i_hjt_j_now_product)) * pa_v_hjt_j_now_product) + (pa_s_hjt_j_now_product))) /\ pa_s_hjt_j_now_product = pa_r_hjt_j_now_product * pa_p_hjt_j_now_product)))))))) -> (exists pa_b_hjt_j_now_bound pa_c_hjt_j_now_bound. ((forall pa_i_hjt_j_now_bound_repeat. (exists pa_lt_hjt_j_now_bound_repeat_bound. pa_lt_hjt_j_now_bound_repeat_bound + S pa_i_hjt_j_now_bound_repeat = s + 5) -> (((exists pa_h_hjt_j_now_bound_repeat_decoded. pa_h_hjt_j_now_bound_repeat_decoded + S (4) = S ((S (pa_i_hjt_j_now_bound_repeat)) * pa_c_hjt_j_now_bound)) /\ exists pa_q_hjt_j_now_bound_repeat_decoded. pa_b_hjt_j_now_bound = pa_q_hjt_j_now_bound_repeat_decoded * S ((S (pa_i_hjt_j_now_bound_repeat)) * pa_c_hjt_j_now_bound) + (4)))) /\ (exists pa_u_hjt_j_now_bound_product pa_v_hjt_j_now_bound_product. ((((exists pa_h_hjt_j_now_bound_product_start. pa_h_hjt_j_now_bound_product_start + S (1) = S ((S (0)) * pa_v_hjt_j_now_bound_product)) /\ exists pa_q_hjt_j_now_bound_product_start. pa_u_hjt_j_now_bound_product = pa_q_hjt_j_now_bound_product_start * S ((S (0)) * pa_v_hjt_j_now_bound_product) + (1))) /\ ((((exists pa_h_hjt_j_now_bound_product_terminal. pa_h_hjt_j_now_bound_product_terminal + S (g) = S ((S (s + 5)) * pa_v_hjt_j_now_bound_product)) /\ exists pa_q_hjt_j_now_bound_product_terminal. pa_u_hjt_j_now_bound_product = pa_q_hjt_j_now_bound_product_terminal * S ((S (s + 5)) * pa_v_hjt_j_now_bound_product) + (g))) /\ forall pa_i_hjt_j_now_bound_product. (exists pa_lt_hjt_j_now_bound_product_bound. pa_lt_hjt_j_now_bound_product_bound + S pa_i_hjt_j_now_bound_product = s + 5) -> exists pa_p_hjt_j_now_bound_product pa_r_hjt_j_now_bound_product pa_s_hjt_j_now_bound_product. ((((exists pa_h_hjt_j_now_bound_product_factor. pa_h_hjt_j_now_bound_product_factor + S (pa_p_hjt_j_now_bound_product) = S ((S (pa_i_hjt_j_now_bound_product)) * pa_c_hjt_j_now_bound)) /\ exists pa_q_hjt_j_now_bound_product_factor. pa_b_hjt_j_now_bound = pa_q_hjt_j_now_bound_product_factor * S ((S (pa_i_hjt_j_now_bound_product)) * pa_c_hjt_j_now_bound) + (pa_p_hjt_j_now_bound_product))) /\ ((((exists pa_h_hjt_j_now_bound_product_partial. pa_h_hjt_j_now_bound_product_partial + S (pa_r_hjt_j_now_bound_product) = S ((S (pa_i_hjt_j_now_bound_product)) * pa_v_hjt_j_now_bound_product)) /\ exists pa_q_hjt_j_now_bound_product_partial. pa_u_hjt_j_now_bound_product = pa_q_hjt_j_now_bound_product_partial * S ((S (pa_i_hjt_j_now_bound_product)) * pa_v_hjt_j_now_bound_product) + (pa_r_hjt_j_now_bound_product))) /\ ((((exists pa_h_hjt_j_now_bound_product_successor. pa_h_hjt_j_now_bound_product_successor + S (pa_s_hjt_j_now_bound_product) = S ((S (S pa_i_hjt_j_now_bound_product)) * pa_v_hjt_j_now_bound_product)) /\ exists pa_q_hjt_j_now_bound_product_successor. pa_u_hjt_j_now_bound_product = pa_q_hjt_j_now_bound_product_successor * S ((S (S pa_i_hjt_j_now_bound_product)) * pa_v_hjt_j_now_bound_product) + (pa_s_hjt_j_now_bound_product))) /\ pa_s_hjt_j_now_bound_product = pa_r_hjt_j_now_bound_product * pa_p_hjt_j_now_bound_product)))))))) -> (exists bqb_le_gap_hjt_j_now_result. bqb_le_gap_hjt_j_now_result + (j) = (g)) -> (exists pa_b_hjt_j_next pa_c_hjt_j_next. ((forall pa_i_hjt_j_next_repeat. (exists pa_lt_hjt_j_next_repeat_bound. pa_lt_hjt_j_next_repeat_bound + S pa_i_hjt_j_next_repeat = 12) -> (((exists pa_h_hjt_j_next_repeat_decoded. pa_h_hjt_j_next_repeat_decoded + S (s + 13) = S ((S (pa_i_hjt_j_next_repeat)) * pa_c_hjt_j_next)) /\ exists pa_q_hjt_j_next_repeat_decoded. pa_b_hjt_j_next = pa_q_hjt_j_next_repeat_decoded * S ((S (pa_i_hjt_j_next_repeat)) * pa_c_hjt_j_next) + (s + 13)))) /\ (exists pa_u_hjt_j_next_product pa_v_hjt_j_next_product. ((((exists pa_h_hjt_j_next_product_start. pa_h_hjt_j_next_product_start + S (1) = S ((S (0)) * pa_v_hjt_j_next_product)) /\ exists pa_q_hjt_j_next_product_start. pa_u_hjt_j_next_product = pa_q_hjt_j_next_product_start * S ((S (0)) * pa_v_hjt_j_next_product) + (1))) /\ ((((exists pa_h_hjt_j_next_product_terminal. pa_h_hjt_j_next_product_terminal + S (jn) = S ((S (12)) * pa_v_hjt_j_next_product)) /\ exists pa_q_hjt_j_next_product_terminal. pa_u_hjt_j_next_product = pa_q_hjt_j_next_product_terminal * S ((S (12)) * pa_v_hjt_j_next_product) + (jn))) /\ forall pa_i_hjt_j_next_product. (exists pa_lt_hjt_j_next_product_bound. pa_lt_hjt_j_next_product_bound + S pa_i_hjt_j_next_product = 12) -> exists pa_p_hjt_j_next_product pa_r_hjt_j_next_product pa_s_hjt_j_next_product. ((((exists pa_h_hjt_j_next_product_factor. pa_h_hjt_j_next_product_factor + S (pa_p_hjt_j_next_product) = S ((S (pa_i_hjt_j_next_product)) * pa_c_hjt_j_next)) /\ exists pa_q_hjt_j_next_product_factor. pa_b_hjt_j_next = pa_q_hjt_j_next_product_factor * S ((S (pa_i_hjt_j_next_product)) * pa_c_hjt_j_next) + (pa_p_hjt_j_next_product))) /\ ((((exists pa_h_hjt_j_next_product_partial. pa_h_hjt_j_next_product_partial + S (pa_r_hjt_j_next_product) = S ((S (pa_i_hjt_j_next_product)) * pa_v_hjt_j_next_product)) /\ exists pa_q_hjt_j_next_product_partial. pa_u_hjt_j_next_product = pa_q_hjt_j_next_product_partial * S ((S (pa_i_hjt_j_next_product)) * pa_v_hjt_j_next_product) + (pa_r_hjt_j_next_product))) /\ ((((exists pa_h_hjt_j_next_product_successor. pa_h_hjt_j_next_product_successor + S (pa_s_hjt_j_next_product) = S ((S (S pa_i_hjt_j_next_product)) * pa_v_hjt_j_next_product)) /\ exists pa_q_hjt_j_next_product_successor. pa_u_hjt_j_next_product = pa_q_hjt_j_next_product_successor * S ((S (S pa_i_hjt_j_next_product)) * pa_v_hjt_j_next_product) + (pa_s_hjt_j_next_product))) /\ pa_s_hjt_j_next_product = pa_r_hjt_j_next_product * pa_p_hjt_j_next_product)))))))) -> (exists pa_b_hjt_j_next_bound pa_c_hjt_j_next_bound. ((forall pa_i_hjt_j_next_bound_repeat. (exists pa_lt_hjt_j_next_bound_repeat_bound. pa_lt_hjt_j_next_bound_repeat_bound + S pa_i_hjt_j_next_bound_repeat = s + 11) -> (((exists pa_h_hjt_j_next_bound_repeat_decoded. pa_h_hjt_j_next_bound_repeat_decoded + S (4) = S ((S (pa_i_hjt_j_next_bound_repeat)) * pa_c_hjt_j_next_bound)) /\ exists pa_q_hjt_j_next_bound_repeat_decoded. pa_b_hjt_j_next_bound = pa_q_hjt_j_next_bound_repeat_decoded * S ((S (pa_i_hjt_j_next_bound_repeat)) * pa_c_hjt_j_next_bound) + (4)))) /\ (exists pa_u_hjt_j_next_bound_product pa_v_hjt_j_next_bound_product. ((((exists pa_h_hjt_j_next_bound_product_start. pa_h_hjt_j_next_bound_product_start + S (1) = S ((S (0)) * pa_v_hjt_j_next_bound_product)) /\ exists pa_q_hjt_j_next_bound_product_start. pa_u_hjt_j_next_bound_product = pa_q_hjt_j_next_bound_product_start * S ((S (0)) * pa_v_hjt_j_next_bound_product) + (1))) /\ ((((exists pa_h_hjt_j_next_bound_product_terminal. pa_h_hjt_j_next_bound_product_terminal + S (gn) = S ((S (s + 11)) * pa_v_hjt_j_next_bound_product)) /\ exists pa_q_hjt_j_next_bound_product_terminal. pa_u_hjt_j_next_bound_product = pa_q_hjt_j_next_bound_product_terminal * S ((S (s + 11)) * pa_v_hjt_j_next_bound_product) + (gn))) /\ forall pa_i_hjt_j_next_bound_product. (exists pa_lt_hjt_j_next_bound_product_bound. pa_lt_hjt_j_next_bound_product_bound + S pa_i_hjt_j_next_bound_product = s + 11) -> exists pa_p_hjt_j_next_bound_product pa_r_hjt_j_next_bound_product pa_s_hjt_j_next_bound_product. ((((exists pa_h_hjt_j_next_bound_product_factor. pa_h_hjt_j_next_bound_product_factor + S (pa_p_hjt_j_next_bound_product) = S ((S (pa_i_hjt_j_next_bound_product)) * pa_c_hjt_j_next_bound)) /\ exists pa_q_hjt_j_next_bound_product_factor. pa_b_hjt_j_next_bound = pa_q_hjt_j_next_bound_product_factor * S ((S (pa_i_hjt_j_next_bound_product)) * pa_c_hjt_j_next_bound) + (pa_p_hjt_j_next_bound_product))) /\ ((((exists pa_h_hjt_j_next_bound_product_partial. pa_h_hjt_j_next_bound_product_partial + S (pa_r_hjt_j_next_bound_product) = S ((S (pa_i_hjt_j_next_bound_product)) * pa_v_hjt_j_next_bound_product)) /\ exists pa_q_hjt_j_next_bound_product_partial. pa_u_hjt_j_next_bound_product = pa_q_hjt_j_next_bound_product_partial * S ((S (pa_i_hjt_j_next_bound_product)) * pa_v_hjt_j_next_bound_product) + (pa_r_hjt_j_next_bound_product))) /\ ((((exists pa_h_hjt_j_next_bound_product_successor. pa_h_hjt_j_next_bound_product_successor + S (pa_s_hjt_j_next_bound_product) = S ((S (S pa_i_hjt_j_next_bound_product)) * pa_v_hjt_j_next_bound_product)) /\ exists pa_q_hjt_j_next_bound_product_successor. pa_u_hjt_j_next_bound_product = pa_q_hjt_j_next_bound_product_successor * S ((S (S pa_i_hjt_j_next_bound_product)) * pa_v_hjt_j_next_bound_product) + (pa_s_hjt_j_next_bound_product))) /\ pa_s_hjt_j_next_bound_product = pa_r_hjt_j_next_bound_product * pa_p_hjt_j_next_bound_product)))))))) -> (exists bqb_le_gap_hjt_j_next_result. bqb_le_gap_hjt_j_next_result + (jn) = (gn))Proof neighborhood
Direct theorem prerequisites
BT00QU two_mul_eq_add_self BT00PY pow_base_monotone BT00QV pow_mul_base BT00SO pow_two_seed_bundle_from_total BT00SM pow_mul_exp_from_total BT009X pow_add BT00PV mul_le_mul BT000E le_refl BT000F le_trans BT0003 add_assoc BT0002 add_commDirect 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
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 (10)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hgn
03Establish hbaseL12–12
Establish this local claim before using it. It is not an additional assumption.
- L12
have hbase : Le(s + 13,2 · (s + 7))Definitions: Le(s + 13,2 · (s + 7))Original native command in the exact edition
04Construct an explicit witnessL13–13
Supply the displayed value, then prove that it has the required property.
- L13
exists S s
05Calculate and transport equalitiesL14–14
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L14
simp [two_mul_eq_add_self, add_assoc, add_comm]
06Establish hdoubleL15–18
Establish this local claim before using it. It is not an additional assumption.
- L15
have hdouble : ∃ jd. Pow(2 · (s + 7),12,jd)Definitions: Pow(2 · (s + 7),12,jd)Original native command in the exact edition - L16
specialize htotal (2 * (s + 7)) - L17
specialize htotal 12 - L18
exact htotal
07Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
cases hdouble
08Establish hjdoubleL20–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow base monotone.
09Establish htwoL30–33
Establish this local claim before using it. It is not an additional assumption.
10Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
cases htwo
11Establish hfourL35–38
Establish this local claim before using it. It is not an additional assumption.
12Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
cases hfour
13Establish hseedsL40–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow two seed bundle from total.
- L40
have hseeds : Pow(2,2,4) ∧ Pow(2,7,128)Definitions: Pow(2,2,4)Pow(2,7,128)Original native command in the exact edition - L41
apply pow_two_seed_bundle_from_total - L42
exact htotal
14Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
cases hseeds
15Establish htwo_fourL44–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow mul exp from total.
- L44
have htwo_four : x1 = x2 - L45
specialize pow_mul_exp_from_total 2 - L46
specialize pow_mul_exp_from_total 2 - L47
specialize pow_mul_exp_from_total 6 - L48
specialize pow_mul_exp_from_total 12 - L49
specialize pow_mul_exp_from_total 4 - L50
specialize pow_mul_exp_from_total x2 - L51
specialize pow_mul_exp_from_total x1 - L52
symm - L53
apply pow_mul_exp_from_total
16Use earlier factsL54–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L54
exact htotal
17Calculate and transport equalitiesL55–55
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L55
norm_num
18Use earlier factsL56–58
19Establish hdouble_factorL59–68
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow mul base.
20Use earlier factsL69–69
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L69
exact hdouble_witness
21Establish hsumL70–79
22Use earlier factsL80–80
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L80
apply add_comm
23Calculate and transport equalitiesL81–81
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L81
refl
24Use earlier factsL82–82
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
apply add_assoc
25Establish hbound_factorL83–92
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow add.
26Use earlier factsL93–95
27Establish hproductsL96–105
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul.
- L96
have hproducts : Le(x1 · j,x2 · g)Definitions: Le(x1 · j,x2 · g)Original native command in the exact edition - L97
rewrite htwo_four - L98
specialize mul_le_mul x2 - L99
specialize mul_le_mul x2 - L100
specialize mul_le_mul j - L101
specialize mul_le_mul g - L102
apply mul_le_mul - L103
specialize le_refl x2 - L104
exact le_refl - L105
exact hjg
28Use earlier factsL106–110
29Calculate and transport equalitiesL111–112
30Use earlier factsL113–113
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L113
exact hproducts
Original defined command ledger · 113 lines
- 0001
intro s - 0002
intro j - 0003
intro g - 0004
intro jn - 0005
intro gn - 0006
intro htotal - 0007
intro hj - 0008
intro hg - 0009
intro hjg - 0010
intro hjn - 0011
intro hgn - 0012
have hbase : Le(s + 13,2 · (s + 7))Exact native replay line
have hbase : exists bqb_le_gap_hjt_j_base. bqb_le_gap_hjt_j_base + (s + 13) = (2 * (s + 7)) - 0013
exists S s - 0014
simp [two_mul_eq_add_self, add_assoc, add_comm] - 0015
have hdouble : ∃ jd. Pow(2 · (s + 7),12,jd)Exact native replay line
have hdouble : exists jd. (exists pa_b_hjt_j_double pa_c_hjt_j_double. ((forall pa_i_hjt_j_double_repeat. (exists pa_lt_hjt_j_double_repeat_bound. pa_lt_hjt_j_double_repeat_bound + S pa_i_hjt_j_double_repeat = 12) -> (((exists pa_h_hjt_j_double_repeat_decoded. pa_h_hjt_j_double_repeat_decoded + S (2 * (s + 7)) = S ((S (pa_i_hjt_j_double_repeat)) * pa_c_hjt_j_double)) /\ exists pa_q_hjt_j_double_repeat_decoded. pa_b_hjt_j_double = pa_q_hjt_j_double_repeat_decoded * S ((S (pa_i_hjt_j_double_repeat)) * pa_c_hjt_j_double) + (2 * (s + 7))))) /\ (exists pa_u_hjt_j_double_product pa_v_hjt_j_double_product. ((((exists pa_h_hjt_j_double_product_start. pa_h_hjt_j_double_product_start + S (1) = S ((S (0)) * pa_v_hjt_j_double_product)) /\ exists pa_q_hjt_j_double_product_start. pa_u_hjt_j_double_product = pa_q_hjt_j_double_product_start * S ((S (0)) * pa_v_hjt_j_double_product) + (1))) /\ ((((exists pa_h_hjt_j_double_product_terminal. pa_h_hjt_j_double_product_terminal + S (jd) = S ((S (12)) * pa_v_hjt_j_double_product)) /\ exists pa_q_hjt_j_double_product_terminal. pa_u_hjt_j_double_product = pa_q_hjt_j_double_product_terminal * S ((S (12)) * pa_v_hjt_j_double_product) + (jd))) /\ forall pa_i_hjt_j_double_product. (exists pa_lt_hjt_j_double_product_bound. pa_lt_hjt_j_double_product_bound + S pa_i_hjt_j_double_product = 12) -> exists pa_p_hjt_j_double_product pa_r_hjt_j_double_product pa_s_hjt_j_double_product. ((((exists pa_h_hjt_j_double_product_factor. pa_h_hjt_j_double_product_factor + S (pa_p_hjt_j_double_product) = S ((S (pa_i_hjt_j_double_product)) * pa_c_hjt_j_double)) /\ exists pa_q_hjt_j_double_product_factor. pa_b_hjt_j_double = pa_q_hjt_j_double_product_factor * S ((S (pa_i_hjt_j_double_product)) * pa_c_hjt_j_double) + (pa_p_hjt_j_double_product))) /\ ((((exists pa_h_hjt_j_double_product_partial. pa_h_hjt_j_double_product_partial + S (pa_r_hjt_j_double_product) = S ((S (pa_i_hjt_j_double_product)) * pa_v_hjt_j_double_product)) /\ exists pa_q_hjt_j_double_product_partial. pa_u_hjt_j_double_product = pa_q_hjt_j_double_product_partial * S ((S (pa_i_hjt_j_double_product)) * pa_v_hjt_j_double_product) + (pa_r_hjt_j_double_product))) /\ ((((exists pa_h_hjt_j_double_product_successor. pa_h_hjt_j_double_product_successor + S (pa_s_hjt_j_double_product) = S ((S (S pa_i_hjt_j_double_product)) * pa_v_hjt_j_double_product)) /\ exists pa_q_hjt_j_double_product_successor. pa_u_hjt_j_double_product = pa_q_hjt_j_double_product_successor * S ((S (S pa_i_hjt_j_double_product)) * pa_v_hjt_j_double_product) + (pa_s_hjt_j_double_product))) /\ pa_s_hjt_j_double_product = pa_r_hjt_j_double_product * pa_p_hjt_j_double_product)))))))) - 0016
specialize htotal (2 * (s + 7)) - 0017
specialize htotal 12 - 0018
exact htotal - 0019
cases hdouble - 0020
have hjdouble : Le(jn,x)Exact native replay line
have hjdouble : exists bqb_le_gap_hjt_j_next_double. bqb_le_gap_hjt_j_next_double + (jn) = (x) - 0021
specialize pow_base_monotone (s + 13) - 0022
specialize pow_base_monotone (2 * (s + 7)) - 0023
specialize pow_base_monotone 12 - 0024
specialize pow_base_monotone jn - 0025
specialize pow_base_monotone x - 0026
apply pow_base_monotone - 0027
exact hbase - 0028
exact hjn - 0029
exact hdouble_witness - 0030
have htwo : ∃ jt. Pow(2,12,jt)Exact native replay line
have htwo : exists jt. (exists pa_b_hjt_j_two_factor pa_c_hjt_j_two_factor. ((forall pa_i_hjt_j_two_factor_repeat. (exists pa_lt_hjt_j_two_factor_repeat_bound. pa_lt_hjt_j_two_factor_repeat_bound + S pa_i_hjt_j_two_factor_repeat = 12) -> (((exists pa_h_hjt_j_two_factor_repeat_decoded. pa_h_hjt_j_two_factor_repeat_decoded + S (2) = S ((S (pa_i_hjt_j_two_factor_repeat)) * pa_c_hjt_j_two_factor)) /\ exists pa_q_hjt_j_two_factor_repeat_decoded. pa_b_hjt_j_two_factor = pa_q_hjt_j_two_factor_repeat_decoded * S ((S (pa_i_hjt_j_two_factor_repeat)) * pa_c_hjt_j_two_factor) + (2)))) /\ (exists pa_u_hjt_j_two_factor_product pa_v_hjt_j_two_factor_product. ((((exists pa_h_hjt_j_two_factor_product_start. pa_h_hjt_j_two_factor_product_start + S (1) = S ((S (0)) * pa_v_hjt_j_two_factor_product)) /\ exists pa_q_hjt_j_two_factor_product_start. pa_u_hjt_j_two_factor_product = pa_q_hjt_j_two_factor_product_start * S ((S (0)) * pa_v_hjt_j_two_factor_product) + (1))) /\ ((((exists pa_h_hjt_j_two_factor_product_terminal. pa_h_hjt_j_two_factor_product_terminal + S (jt) = S ((S (12)) * pa_v_hjt_j_two_factor_product)) /\ exists pa_q_hjt_j_two_factor_product_terminal. pa_u_hjt_j_two_factor_product = pa_q_hjt_j_two_factor_product_terminal * S ((S (12)) * pa_v_hjt_j_two_factor_product) + (jt))) /\ forall pa_i_hjt_j_two_factor_product. (exists pa_lt_hjt_j_two_factor_product_bound. pa_lt_hjt_j_two_factor_product_bound + S pa_i_hjt_j_two_factor_product = 12) -> exists pa_p_hjt_j_two_factor_product pa_r_hjt_j_two_factor_product pa_s_hjt_j_two_factor_product. ((((exists pa_h_hjt_j_two_factor_product_factor. pa_h_hjt_j_two_factor_product_factor + S (pa_p_hjt_j_two_factor_product) = S ((S (pa_i_hjt_j_two_factor_product)) * pa_c_hjt_j_two_factor)) /\ exists pa_q_hjt_j_two_factor_product_factor. pa_b_hjt_j_two_factor = pa_q_hjt_j_two_factor_product_factor * S ((S (pa_i_hjt_j_two_factor_product)) * pa_c_hjt_j_two_factor) + (pa_p_hjt_j_two_factor_product))) /\ ((((exists pa_h_hjt_j_two_factor_product_partial. pa_h_hjt_j_two_factor_product_partial + S (pa_r_hjt_j_two_factor_product) = S ((S (pa_i_hjt_j_two_factor_product)) * pa_v_hjt_j_two_factor_product)) /\ exists pa_q_hjt_j_two_factor_product_partial. pa_u_hjt_j_two_factor_product = pa_q_hjt_j_two_factor_product_partial * S ((S (pa_i_hjt_j_two_factor_product)) * pa_v_hjt_j_two_factor_product) + (pa_r_hjt_j_two_factor_product))) /\ ((((exists pa_h_hjt_j_two_factor_product_successor. pa_h_hjt_j_two_factor_product_successor + S (pa_s_hjt_j_two_factor_product) = S ((S (S pa_i_hjt_j_two_factor_product)) * pa_v_hjt_j_two_factor_product)) /\ exists pa_q_hjt_j_two_factor_product_successor. pa_u_hjt_j_two_factor_product = pa_q_hjt_j_two_factor_product_successor * S ((S (S pa_i_hjt_j_two_factor_product)) * pa_v_hjt_j_two_factor_product) + (pa_s_hjt_j_two_factor_product))) /\ pa_s_hjt_j_two_factor_product = pa_r_hjt_j_two_factor_product * pa_p_hjt_j_two_factor_product)))))))) - 0031
specialize htotal 2 - 0032
specialize htotal 12 - 0033
exact htotal - 0034
cases htwo - 0035
have hfour : ∃ jf. Pow(4,6,jf)Exact native replay line
have hfour : exists jf. (exists pa_b_hjt_j_four_factor pa_c_hjt_j_four_factor. ((forall pa_i_hjt_j_four_factor_repeat. (exists pa_lt_hjt_j_four_factor_repeat_bound. pa_lt_hjt_j_four_factor_repeat_bound + S pa_i_hjt_j_four_factor_repeat = 6) -> (((exists pa_h_hjt_j_four_factor_repeat_decoded. pa_h_hjt_j_four_factor_repeat_decoded + S (4) = S ((S (pa_i_hjt_j_four_factor_repeat)) * pa_c_hjt_j_four_factor)) /\ exists pa_q_hjt_j_four_factor_repeat_decoded. pa_b_hjt_j_four_factor = pa_q_hjt_j_four_factor_repeat_decoded * S ((S (pa_i_hjt_j_four_factor_repeat)) * pa_c_hjt_j_four_factor) + (4)))) /\ (exists pa_u_hjt_j_four_factor_product pa_v_hjt_j_four_factor_product. ((((exists pa_h_hjt_j_four_factor_product_start. pa_h_hjt_j_four_factor_product_start + S (1) = S ((S (0)) * pa_v_hjt_j_four_factor_product)) /\ exists pa_q_hjt_j_four_factor_product_start. pa_u_hjt_j_four_factor_product = pa_q_hjt_j_four_factor_product_start * S ((S (0)) * pa_v_hjt_j_four_factor_product) + (1))) /\ ((((exists pa_h_hjt_j_four_factor_product_terminal. pa_h_hjt_j_four_factor_product_terminal + S (jf) = S ((S (6)) * pa_v_hjt_j_four_factor_product)) /\ exists pa_q_hjt_j_four_factor_product_terminal. pa_u_hjt_j_four_factor_product = pa_q_hjt_j_four_factor_product_terminal * S ((S (6)) * pa_v_hjt_j_four_factor_product) + (jf))) /\ forall pa_i_hjt_j_four_factor_product. (exists pa_lt_hjt_j_four_factor_product_bound. pa_lt_hjt_j_four_factor_product_bound + S pa_i_hjt_j_four_factor_product = 6) -> exists pa_p_hjt_j_four_factor_product pa_r_hjt_j_four_factor_product pa_s_hjt_j_four_factor_product. ((((exists pa_h_hjt_j_four_factor_product_factor. pa_h_hjt_j_four_factor_product_factor + S (pa_p_hjt_j_four_factor_product) = S ((S (pa_i_hjt_j_four_factor_product)) * pa_c_hjt_j_four_factor)) /\ exists pa_q_hjt_j_four_factor_product_factor. pa_b_hjt_j_four_factor = pa_q_hjt_j_four_factor_product_factor * S ((S (pa_i_hjt_j_four_factor_product)) * pa_c_hjt_j_four_factor) + (pa_p_hjt_j_four_factor_product))) /\ ((((exists pa_h_hjt_j_four_factor_product_partial. pa_h_hjt_j_four_factor_product_partial + S (pa_r_hjt_j_four_factor_product) = S ((S (pa_i_hjt_j_four_factor_product)) * pa_v_hjt_j_four_factor_product)) /\ exists pa_q_hjt_j_four_factor_product_partial. pa_u_hjt_j_four_factor_product = pa_q_hjt_j_four_factor_product_partial * S ((S (pa_i_hjt_j_four_factor_product)) * pa_v_hjt_j_four_factor_product) + (pa_r_hjt_j_four_factor_product))) /\ ((((exists pa_h_hjt_j_four_factor_product_successor. pa_h_hjt_j_four_factor_product_successor + S (pa_s_hjt_j_four_factor_product) = S ((S (S pa_i_hjt_j_four_factor_product)) * pa_v_hjt_j_four_factor_product)) /\ exists pa_q_hjt_j_four_factor_product_successor. pa_u_hjt_j_four_factor_product = pa_q_hjt_j_four_factor_product_successor * S ((S (S pa_i_hjt_j_four_factor_product)) * pa_v_hjt_j_four_factor_product) + (pa_s_hjt_j_four_factor_product))) /\ pa_s_hjt_j_four_factor_product = pa_r_hjt_j_four_factor_product * pa_p_hjt_j_four_factor_product)))))))) - 0036
specialize htotal 4 - 0037
specialize htotal 6 - 0038
exact htotal - 0039
cases hfour - 0040
have hseeds : Pow(2,2,4) ∧ Pow(2,7,128)Exact native replay line
have hseeds : (exists pa_b_hjt_j_seed_two pa_c_hjt_j_seed_two. ((forall pa_i_hjt_j_seed_two_repeat. (exists pa_lt_hjt_j_seed_two_repeat_bound. pa_lt_hjt_j_seed_two_repeat_bound + S pa_i_hjt_j_seed_two_repeat = 2) -> (((exists pa_h_hjt_j_seed_two_repeat_decoded. pa_h_hjt_j_seed_two_repeat_decoded + S (2) = S ((S (pa_i_hjt_j_seed_two_repeat)) * pa_c_hjt_j_seed_two)) /\ exists pa_q_hjt_j_seed_two_repeat_decoded. pa_b_hjt_j_seed_two = pa_q_hjt_j_seed_two_repeat_decoded * S ((S (pa_i_hjt_j_seed_two_repeat)) * pa_c_hjt_j_seed_two) + (2)))) /\ (exists pa_u_hjt_j_seed_two_product pa_v_hjt_j_seed_two_product. ((((exists pa_h_hjt_j_seed_two_product_start. pa_h_hjt_j_seed_two_product_start + S (1) = S ((S (0)) * pa_v_hjt_j_seed_two_product)) /\ exists pa_q_hjt_j_seed_two_product_start. pa_u_hjt_j_seed_two_product = pa_q_hjt_j_seed_two_product_start * S ((S (0)) * pa_v_hjt_j_seed_two_product) + (1))) /\ ((((exists pa_h_hjt_j_seed_two_product_terminal. pa_h_hjt_j_seed_two_product_terminal + S (4) = S ((S (2)) * pa_v_hjt_j_seed_two_product)) /\ exists pa_q_hjt_j_seed_two_product_terminal. pa_u_hjt_j_seed_two_product = pa_q_hjt_j_seed_two_product_terminal * S ((S (2)) * pa_v_hjt_j_seed_two_product) + (4))) /\ forall pa_i_hjt_j_seed_two_product. (exists pa_lt_hjt_j_seed_two_product_bound. pa_lt_hjt_j_seed_two_product_bound + S pa_i_hjt_j_seed_two_product = 2) -> exists pa_p_hjt_j_seed_two_product pa_r_hjt_j_seed_two_product pa_s_hjt_j_seed_two_product. ((((exists pa_h_hjt_j_seed_two_product_factor. pa_h_hjt_j_seed_two_product_factor + S (pa_p_hjt_j_seed_two_product) = S ((S (pa_i_hjt_j_seed_two_product)) * pa_c_hjt_j_seed_two)) /\ exists pa_q_hjt_j_seed_two_product_factor. pa_b_hjt_j_seed_two = pa_q_hjt_j_seed_two_product_factor * S ((S (pa_i_hjt_j_seed_two_product)) * pa_c_hjt_j_seed_two) + (pa_p_hjt_j_seed_two_product))) /\ ((((exists pa_h_hjt_j_seed_two_product_partial. pa_h_hjt_j_seed_two_product_partial + S (pa_r_hjt_j_seed_two_product) = S ((S (pa_i_hjt_j_seed_two_product)) * pa_v_hjt_j_seed_two_product)) /\ exists pa_q_hjt_j_seed_two_product_partial. pa_u_hjt_j_seed_two_product = pa_q_hjt_j_seed_two_product_partial * S ((S (pa_i_hjt_j_seed_two_product)) * pa_v_hjt_j_seed_two_product) + (pa_r_hjt_j_seed_two_product))) /\ ((((exists pa_h_hjt_j_seed_two_product_successor. pa_h_hjt_j_seed_two_product_successor + S (pa_s_hjt_j_seed_two_product) = S ((S (S pa_i_hjt_j_seed_two_product)) * pa_v_hjt_j_seed_two_product)) /\ exists pa_q_hjt_j_seed_two_product_successor. pa_u_hjt_j_seed_two_product = pa_q_hjt_j_seed_two_product_successor * S ((S (S pa_i_hjt_j_seed_two_product)) * pa_v_hjt_j_seed_two_product) + (pa_s_hjt_j_seed_two_product))) /\ pa_s_hjt_j_seed_two_product = pa_r_hjt_j_seed_two_product * pa_p_hjt_j_seed_two_product)))))))) /\ (exists pa_b_hjt_j_seed_seven pa_c_hjt_j_seed_seven. ((forall pa_i_hjt_j_seed_seven_repeat. (exists pa_lt_hjt_j_seed_seven_repeat_bound. pa_lt_hjt_j_seed_seven_repeat_bound + S pa_i_hjt_j_seed_seven_repeat = 7) -> (((exists pa_h_hjt_j_seed_seven_repeat_decoded. pa_h_hjt_j_seed_seven_repeat_decoded + S (2) = S ((S (pa_i_hjt_j_seed_seven_repeat)) * pa_c_hjt_j_seed_seven)) /\ exists pa_q_hjt_j_seed_seven_repeat_decoded. pa_b_hjt_j_seed_seven = pa_q_hjt_j_seed_seven_repeat_decoded * S ((S (pa_i_hjt_j_seed_seven_repeat)) * pa_c_hjt_j_seed_seven) + (2)))) /\ (exists pa_u_hjt_j_seed_seven_product pa_v_hjt_j_seed_seven_product. ((((exists pa_h_hjt_j_seed_seven_product_start. pa_h_hjt_j_seed_seven_product_start + S (1) = S ((S (0)) * pa_v_hjt_j_seed_seven_product)) /\ exists pa_q_hjt_j_seed_seven_product_start. pa_u_hjt_j_seed_seven_product = pa_q_hjt_j_seed_seven_product_start * S ((S (0)) * pa_v_hjt_j_seed_seven_product) + (1))) /\ ((((exists pa_h_hjt_j_seed_seven_product_terminal. pa_h_hjt_j_seed_seven_product_terminal + S (128) = S ((S (7)) * pa_v_hjt_j_seed_seven_product)) /\ exists pa_q_hjt_j_seed_seven_product_terminal. pa_u_hjt_j_seed_seven_product = pa_q_hjt_j_seed_seven_product_terminal * S ((S (7)) * pa_v_hjt_j_seed_seven_product) + (128))) /\ forall pa_i_hjt_j_seed_seven_product. (exists pa_lt_hjt_j_seed_seven_product_bound. pa_lt_hjt_j_seed_seven_product_bound + S pa_i_hjt_j_seed_seven_product = 7) -> exists pa_p_hjt_j_seed_seven_product pa_r_hjt_j_seed_seven_product pa_s_hjt_j_seed_seven_product. ((((exists pa_h_hjt_j_seed_seven_product_factor. pa_h_hjt_j_seed_seven_product_factor + S (pa_p_hjt_j_seed_seven_product) = S ((S (pa_i_hjt_j_seed_seven_product)) * pa_c_hjt_j_seed_seven)) /\ exists pa_q_hjt_j_seed_seven_product_factor. pa_b_hjt_j_seed_seven = pa_q_hjt_j_seed_seven_product_factor * S ((S (pa_i_hjt_j_seed_seven_product)) * pa_c_hjt_j_seed_seven) + (pa_p_hjt_j_seed_seven_product))) /\ ((((exists pa_h_hjt_j_seed_seven_product_partial. pa_h_hjt_j_seed_seven_product_partial + S (pa_r_hjt_j_seed_seven_product) = S ((S (pa_i_hjt_j_seed_seven_product)) * pa_v_hjt_j_seed_seven_product)) /\ exists pa_q_hjt_j_seed_seven_product_partial. pa_u_hjt_j_seed_seven_product = pa_q_hjt_j_seed_seven_product_partial * S ((S (pa_i_hjt_j_seed_seven_product)) * pa_v_hjt_j_seed_seven_product) + (pa_r_hjt_j_seed_seven_product))) /\ ((((exists pa_h_hjt_j_seed_seven_product_successor. pa_h_hjt_j_seed_seven_product_successor + S (pa_s_hjt_j_seed_seven_product) = S ((S (S pa_i_hjt_j_seed_seven_product)) * pa_v_hjt_j_seed_seven_product)) /\ exists pa_q_hjt_j_seed_seven_product_successor. pa_u_hjt_j_seed_seven_product = pa_q_hjt_j_seed_seven_product_successor * S ((S (S pa_i_hjt_j_seed_seven_product)) * pa_v_hjt_j_seed_seven_product) + (pa_s_hjt_j_seed_seven_product))) /\ pa_s_hjt_j_seed_seven_product = pa_r_hjt_j_seed_seven_product * pa_p_hjt_j_seed_seven_product)))))))) - 0041
apply pow_two_seed_bundle_from_total - 0042
exact htotal - 0043
cases hseeds - 0044
have htwo_four : x1 = x2 - 0045
specialize pow_mul_exp_from_total 2 - 0046
specialize pow_mul_exp_from_total 2 - 0047
specialize pow_mul_exp_from_total 6 - 0048
specialize pow_mul_exp_from_total 12 - 0049
specialize pow_mul_exp_from_total 4 - 0050
specialize pow_mul_exp_from_total x2 - 0051
specialize pow_mul_exp_from_total x1 - 0052
symm - 0053
apply pow_mul_exp_from_total - 0054
exact htotal - 0055
norm_num - 0056
exact hseeds_left - 0057
exact hfour_witness - 0058
exact htwo_witness - 0059
have hdouble_factor : x = x1 * j - 0060
specialize pow_mul_base 2 - 0061
specialize pow_mul_base (s + 7) - 0062
specialize pow_mul_base 12 - 0063
specialize pow_mul_base x1 - 0064
specialize pow_mul_base j - 0065
specialize pow_mul_base x - 0066
apply pow_mul_base - 0067
exact htwo_witness - 0068
exact hj - 0069
exact hdouble_witness - 0070
have hsum : s + 11 = 6 + (s + 5) - 0071
trans s + (6 + 5) - 0072
congr - 0073
refl - 0074
norm_num - 0075
trans (s + 6) + 5 - 0076
symm - 0077
apply add_assoc - 0078
trans (6 + s) + 5 - 0079
congr - 0080
apply add_comm - 0081
refl - 0082
apply add_assoc - 0083
have hbound_factor : gn = x2 * g - 0084
specialize pow_add 4 - 0085
specialize pow_add 6 - 0086
specialize pow_add (s + 5) - 0087
specialize pow_add (s + 11) - 0088
specialize pow_add x2 - 0089
specialize pow_add g - 0090
specialize pow_add gn - 0091
apply pow_add - 0092
exact hsum - 0093
exact hfour_witness - 0094
exact hg - 0095
exact hgn - 0096
have hproducts : Le(x1 · j,x2 · g)Exact native replay line
have hproducts : exists bqb_le_gap_hjt_j_products. bqb_le_gap_hjt_j_products + (x1 * j) = (x2 * g) - 0097
rewrite htwo_four - 0098
specialize mul_le_mul x2 - 0099
specialize mul_le_mul x2 - 0100
specialize mul_le_mul j - 0101
specialize mul_le_mul g - 0102
apply mul_le_mul - 0103
specialize le_refl x2 - 0104
exact le_refl - 0105
exact hjg - 0106
specialize le_trans jn - 0107
specialize le_trans x - 0108
specialize le_trans gn - 0109
apply le_trans - 0110
exact hjdouble - 0111
rewrite hdouble_factor - 0112
rewrite hbound_factor - 0113
exact hproducts