TS003C

all_bad_prime_even_two_square_sufficiency_bounded

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

Bounded constructive descent on the natural value proves sufficiency of even valuations at every three-modulo-four prime.

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.

Exact expanded first-order arithmetic statement

forall B n. (exists ftsp_induction_gap. ftsp_induction_gap + n = B) -> ~(n = 0) -> (forall ftsp_bad_prime_value ftsp_bad_exponent_value. ((~(ftsp_bad_prime_value = 1) /\ forall frm_prime_left_ftsp_value_prime frm_prime_right_ftsp_value_prime. ftsp_bad_prime_value = frm_prime_left_ftsp_value_prime * frm_prime_right_ftsp_value_prime -> frm_prime_left_ftsp_value_prime = 1 \/ frm_prime_right_ftsp_value_prime = 1)) -> (exists ftsc_four_three_ftsp_value_three. (ftsp_bad_prime_value) = 4 * ftsc_four_three_ftsp_value_three + 3) -> (((exists bpv_gap_ftsp_value_valuation_exponent_bound. bpv_gap_ftsp_value_valuation_exponent_bound + ftsp_bad_exponent_value = (n)) /\ (exists bpv_result_ftsp_value_valuation_selected. ((exists ff_b_ftsp_value_valuation_selected_power ff_c_ftsp_value_valuation_selected_power. ((forall ff_i_ftsp_value_valuation_selected_power_repeat. (exists ff_lt_ftsp_value_valuation_selected_power_repeat_bound. ff_lt_ftsp_value_valuation_selected_power_repeat_bound + S ff_i_ftsp_value_valuation_selected_power_repeat = ftsp_bad_exponent_value) -> (((exists ff_h_ftsp_value_valuation_selected_power_repeat_decoded. ff_h_ftsp_value_valuation_selected_power_repeat_decoded + S (ftsp_bad_prime_value) = S ((S (ff_i_ftsp_value_valuation_selected_power_repeat)) * ff_c_ftsp_value_valuation_selected_power)) /\ exists ff_q_ftsp_value_valuation_selected_power_repeat_decoded. ff_b_ftsp_value_valuation_selected_power = ff_q_ftsp_value_valuation_selected_power_repeat_decoded * S ((S (ff_i_ftsp_value_valuation_selected_power_repeat)) * ff_c_ftsp_value_valuation_selected_power) + (ftsp_bad_prime_value)))) /\ (exists ff_u_ftsp_value_valuation_selected_power_product ff_v_ftsp_value_valuation_selected_power_product. ((((exists ff_h_ftsp_value_valuation_selected_power_product_start. ff_h_ftsp_value_valuation_selected_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_value_valuation_selected_power_product)) /\ exists ff_q_ftsp_value_valuation_selected_power_product_start. ff_u_ftsp_value_valuation_selected_power_product = ff_q_ftsp_value_valuation_selected_power_product_start * S ((S (0)) * ff_v_ftsp_value_valuation_selected_power_product) + (1))) /\ ((((exists ff_h_ftsp_value_valuation_selected_power_product_terminal. ff_h_ftsp_value_valuation_selected_power_product_terminal + S (bpv_result_ftsp_value_valuation_selected) = S ((S (ftsp_bad_exponent_value)) * ff_v_ftsp_value_valuation_selected_power_product)) /\ exists ff_q_ftsp_value_valuation_selected_power_product_terminal. ff_u_ftsp_value_valuation_selected_power_product = ff_q_ftsp_value_valuation_selected_power_product_terminal * S ((S (ftsp_bad_exponent_value)) * ff_v_ftsp_value_valuation_selected_power_product) + (bpv_result_ftsp_value_valuation_selected))) /\ forall ff_i_ftsp_value_valuation_selected_power_product. (exists ff_lt_ftsp_value_valuation_selected_power_product_bound. ff_lt_ftsp_value_valuation_selected_power_product_bound + S ff_i_ftsp_value_valuation_selected_power_product = ftsp_bad_exponent_value) -> exists ff_p_ftsp_value_valuation_selected_power_product ff_r_ftsp_value_valuation_selected_power_product ff_s_ftsp_value_valuation_selected_power_product. ((((exists ff_h_ftsp_value_valuation_selected_power_product_factor. ff_h_ftsp_value_valuation_selected_power_product_factor + S (ff_p_ftsp_value_valuation_selected_power_product) = S ((S (ff_i_ftsp_value_valuation_selected_power_product)) * ff_c_ftsp_value_valuation_selected_power)) /\ exists ff_q_ftsp_value_valuation_selected_power_product_factor. ff_b_ftsp_value_valuation_selected_power = ff_q_ftsp_value_valuation_selected_power_product_factor * S ((S (ff_i_ftsp_value_valuation_selected_power_product)) * ff_c_ftsp_value_valuation_selected_power) + (ff_p_ftsp_value_valuation_selected_power_product))) /\ ((((exists ff_h_ftsp_value_valuation_selected_power_product_partial. ff_h_ftsp_value_valuation_selected_power_product_partial + S (ff_r_ftsp_value_valuation_selected_power_product) = S ((S (ff_i_ftsp_value_valuation_selected_power_product)) * ff_v_ftsp_value_valuation_selected_power_product)) /\ exists ff_q_ftsp_value_valuation_selected_power_product_partial. ff_u_ftsp_value_valuation_selected_power_product = ff_q_ftsp_value_valuation_selected_power_product_partial * S ((S (ff_i_ftsp_value_valuation_selected_power_product)) * ff_v_ftsp_value_valuation_selected_power_product) + (ff_r_ftsp_value_valuation_selected_power_product))) /\ ((((exists ff_h_ftsp_value_valuation_selected_power_product_successor. ff_h_ftsp_value_valuation_selected_power_product_successor + S (ff_s_ftsp_value_valuation_selected_power_product) = S ((S (S ff_i_ftsp_value_valuation_selected_power_product)) * ff_v_ftsp_value_valuation_selected_power_product)) /\ exists ff_q_ftsp_value_valuation_selected_power_product_successor. ff_u_ftsp_value_valuation_selected_power_product = ff_q_ftsp_value_valuation_selected_power_product_successor * S ((S (S ff_i_ftsp_value_valuation_selected_power_product)) * ff_v_ftsp_value_valuation_selected_power_product) + (ff_s_ftsp_value_valuation_selected_power_product))) /\ ff_s_ftsp_value_valuation_selected_power_product = ff_r_ftsp_value_valuation_selected_power_product * ff_p_ftsp_value_valuation_selected_power_product)))))))) /\ (exists bpv_factor_ftsp_value_valuation_selected_divides. (n) = bpv_result_ftsp_value_valuation_selected * bpv_factor_ftsp_value_valuation_selected_divides)))) /\ forall bpv_candidate_ftsp_value_valuation. (exists bpv_gap_ftsp_value_valuation_candidate_bound. bpv_gap_ftsp_value_valuation_candidate_bound + bpv_candidate_ftsp_value_valuation = (n)) -> (exists bpv_result_ftsp_value_valuation_candidate. ((exists ff_b_ftsp_value_valuation_candidate_power ff_c_ftsp_value_valuation_candidate_power. ((forall ff_i_ftsp_value_valuation_candidate_power_repeat. (exists ff_lt_ftsp_value_valuation_candidate_power_repeat_bound. ff_lt_ftsp_value_valuation_candidate_power_repeat_bound + S ff_i_ftsp_value_valuation_candidate_power_repeat = bpv_candidate_ftsp_value_valuation) -> (((exists ff_h_ftsp_value_valuation_candidate_power_repeat_decoded. ff_h_ftsp_value_valuation_candidate_power_repeat_decoded + S (ftsp_bad_prime_value) = S ((S (ff_i_ftsp_value_valuation_candidate_power_repeat)) * ff_c_ftsp_value_valuation_candidate_power)) /\ exists ff_q_ftsp_value_valuation_candidate_power_repeat_decoded. ff_b_ftsp_value_valuation_candidate_power = ff_q_ftsp_value_valuation_candidate_power_repeat_decoded * S ((S (ff_i_ftsp_value_valuation_candidate_power_repeat)) * ff_c_ftsp_value_valuation_candidate_power) + (ftsp_bad_prime_value)))) /\ (exists ff_u_ftsp_value_valuation_candidate_power_product ff_v_ftsp_value_valuation_candidate_power_product. ((((exists ff_h_ftsp_value_valuation_candidate_power_product_start. ff_h_ftsp_value_valuation_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_value_valuation_candidate_power_product)) /\ exists ff_q_ftsp_value_valuation_candidate_power_product_start. ff_u_ftsp_value_valuation_candidate_power_product = ff_q_ftsp_value_valuation_candidate_power_product_start * S ((S (0)) * ff_v_ftsp_value_valuation_candidate_power_product) + (1))) /\ ((((exists ff_h_ftsp_value_valuation_candidate_power_product_terminal. ff_h_ftsp_value_valuation_candidate_power_product_terminal + S (bpv_result_ftsp_value_valuation_candidate) = S ((S (bpv_candidate_ftsp_value_valuation)) * ff_v_ftsp_value_valuation_candidate_power_product)) /\ exists ff_q_ftsp_value_valuation_candidate_power_product_terminal. ff_u_ftsp_value_valuation_candidate_power_product = ff_q_ftsp_value_valuation_candidate_power_product_terminal * S ((S (bpv_candidate_ftsp_value_valuation)) * ff_v_ftsp_value_valuation_candidate_power_product) + (bpv_result_ftsp_value_valuation_candidate))) /\ forall ff_i_ftsp_value_valuation_candidate_power_product. (exists ff_lt_ftsp_value_valuation_candidate_power_product_bound. ff_lt_ftsp_value_valuation_candidate_power_product_bound + S ff_i_ftsp_value_valuation_candidate_power_product = bpv_candidate_ftsp_value_valuation) -> exists ff_p_ftsp_value_valuation_candidate_power_product ff_r_ftsp_value_valuation_candidate_power_product ff_s_ftsp_value_valuation_candidate_power_product. ((((exists ff_h_ftsp_value_valuation_candidate_power_product_factor. ff_h_ftsp_value_valuation_candidate_power_product_factor + S (ff_p_ftsp_value_valuation_candidate_power_product) = S ((S (ff_i_ftsp_value_valuation_candidate_power_product)) * ff_c_ftsp_value_valuation_candidate_power)) /\ exists ff_q_ftsp_value_valuation_candidate_power_product_factor. ff_b_ftsp_value_valuation_candidate_power = ff_q_ftsp_value_valuation_candidate_power_product_factor * S ((S (ff_i_ftsp_value_valuation_candidate_power_product)) * ff_c_ftsp_value_valuation_candidate_power) + (ff_p_ftsp_value_valuation_candidate_power_product))) /\ ((((exists ff_h_ftsp_value_valuation_candidate_power_product_partial. ff_h_ftsp_value_valuation_candidate_power_product_partial + S (ff_r_ftsp_value_valuation_candidate_power_product) = S ((S (ff_i_ftsp_value_valuation_candidate_power_product)) * ff_v_ftsp_value_valuation_candidate_power_product)) /\ exists ff_q_ftsp_value_valuation_candidate_power_product_partial. ff_u_ftsp_value_valuation_candidate_power_product = ff_q_ftsp_value_valuation_candidate_power_product_partial * S ((S (ff_i_ftsp_value_valuation_candidate_power_product)) * ff_v_ftsp_value_valuation_candidate_power_product) + (ff_r_ftsp_value_valuation_candidate_power_product))) /\ ((((exists ff_h_ftsp_value_valuation_candidate_power_product_successor. ff_h_ftsp_value_valuation_candidate_power_product_successor + S (ff_s_ftsp_value_valuation_candidate_power_product) = S ((S (S ff_i_ftsp_value_valuation_candidate_power_product)) * ff_v_ftsp_value_valuation_candidate_power_product)) /\ exists ff_q_ftsp_value_valuation_candidate_power_product_successor. ff_u_ftsp_value_valuation_candidate_power_product = ff_q_ftsp_value_valuation_candidate_power_product_successor * S ((S (S ff_i_ftsp_value_valuation_candidate_power_product)) * ff_v_ftsp_value_valuation_candidate_power_product) + (ff_s_ftsp_value_valuation_candidate_power_product))) /\ ff_s_ftsp_value_valuation_candidate_power_product = ff_r_ftsp_value_valuation_candidate_power_product * ff_p_ftsp_value_valuation_candidate_power_product)))))))) /\ (exists bpv_factor_ftsp_value_valuation_candidate_divides. (n) = bpv_result_ftsp_value_valuation_candidate * bpv_factor_ftsp_value_valuation_candidate_divides))) -> (exists bpv_gap_ftsp_value_valuation_maximal. bpv_gap_ftsp_value_valuation_maximal + bpv_candidate_ftsp_value_valuation = ftsp_bad_exponent_value)) -> exists ftsp_bad_half_value. ftsp_bad_exponent_value = ftsp_bad_half_value + ftsp_bad_half_value) -> (exists ftsc_first_ftsp_value_result ftsc_second_ftsp_value_result. (n) = ftsc_first_ftsp_value_result * ftsc_first_ftsp_value_result + ftsc_second_ftsp_value_result * ftsc_second_ftsp_value_result)

Constructive proof overview

Generated structural guide

Bounded constructive descent on the natural value proves sufficiency of even valuations at every three-modulo-four prime.

The unchanged tactic script uses 18 declared prerequisites and contains 186 exact native proof lines.

dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged

Proof neighborhood

Direct dependencies

le_zero Stable theorem; checked-use authorized eq_decidable Stable theorem; checked-use authorized prime_divisor_exists Stable theorem; checked-use authorized TS003B prime_mod_four_good_or_three TS002O prime_two_or_one_mod_four_is_sum_of_two_squares TS003A all_bad_prime_even_valuation_value_eq_transport TS0038 all_bad_prime_even_valuations_strip_represented_prime mul_comm Stable theorem; checked-use authorized proper_factor_lt Stable theorem; checked-use authorized le_trans Stable theorem; checked-use authorized le_of_succ_le_succ Stable theorem; checked-use authorized TS001X two_square_representation_multiplicatively_closed power_valuation_exists Alpha theorem; checked-use authorized TS002Z even_positive_prime_valuation_has_square_divisor prime_nonzero Stable theorem; checked-use authorized TS0039 all_bad_prime_even_valuations_strip_square_factor TS003S prime_square_times_nonzero_strictly_increases TS003M two_square_representation_preserved_by_square_factor

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

Read the argument

Proof checkpoints

186 script commands · 46 reading checkpoints · 25 local claims

This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.

Named ingredients (9)

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–1

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

  1. L1
    intro B
02Induction on BL2–6

Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.

  1. L2
    induction B
  2. L3
    intro n
  3. L4
    intro hbound
  4. L5
    intro hnonzero
  5. L6
    intro hparity
03Separate the logical casesL7–7

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

  1. L7
    exfalso
04Use earlier factsL8–11

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

  1. L8
    apply hnonzero
  2. L9
    specialize le_zero n
  3. L10
    apply le_zero
  4. L11
    exact hbound
05Fix variables and assumptionsL12–15

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

  1. L12
    intro n
  2. L13
    intro hbound
  3. L14
    intro hnonzero
  4. L15
    intro hparity
06Use earlier factsL16–17

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

  1. L16
    specialize eq_decidable n
  2. L17
    specialize eq_decidable 1
07Separate the logical casesL18–18

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

  1. L18
    cases eq_decidable
08Construct an explicit witnessL19–20

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

  1. L19
    exists 1
  2. L20
    exists 0
09Calculate and transport equalitiesL21–22

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

  1. L21
    rewrite eq_decidable_left
  2. L22
    norm_num
10Establish hfactorL23–27

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime divisor exists.

  1. L23
    have hfactor : exists p. (((~(p = 1) /\ forall frm_prime_left_ftsp_induction_factor_prime frm_prime_right_ftsp_induction_factor_prime. p = frm_prime_left_ftsp_induction_factor_prime * frm_prime_right_ftsp_induction_factor_prime -> frm_prime_left_ftsp_induction_factor_prime = 1 \/ frm_prime_right_ftsp_induction_factor_prime = 1)) /\ exists r. n = p * r)
  2. L24
    specialize prime_divisor_exists n
  3. L25
    apply prime_divisor_exists
  4. L26
    exact hnonzero
  5. L27
    exact eq_decidable_right
11Separate the logical casesL28–30

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

  1. L28
    cases hfactor
  2. L29
    cases hfactor_witness
  3. L30
    cases hfactor_witness_right
12Establish hprefix_nonzeroL31–37

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

  1. L31
    have hprefix_nonzero : ~(x1 = 0)
  2. L32
    intro hzero
  3. L33
    apply hnonzero
  4. L34
    trans x * x1
  5. L35
    exact hfactor_witness_right_witness
  6. L36
    rewrite hzero
  7. L37
    apply PA5
13Establish hchoiceL38–41

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime mod four good or three.

  1. L38
    have hchoice : ((x = 2 \/ exists k. x = 4 * k + 1) \/ exists k. x = 4 * k + 3)
  2. L39
    specialize prime_mod_four_good_or_three x
  3. L40
    apply prime_mod_four_good_or_three
  4. L41
    exact hfactor_witness_left
14Separate the logical casesL42–42

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

  1. L42
    cases hchoice
15Establish hrepresented_primeL43–47

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime two or one mod four is sum of two squares.

  1. L43
    have hrepresented_prime : (exists ftsc_first_ftsp_induction_good_prime ftsc_second_ftsp_induction_good_prime. (x) = ftsc_first_ftsp_induction_good_prime * ftsc_first_ftsp_induction_good_prime + ftsc_second_ftsp_induction_good_prime * ftsc_second_ftsp_induction_good_prime)
  2. L44
    specialize prime_two_or_one_mod_four_is_sum_of_two_squares x
  3. L45
    apply prime_two_or_one_mod_four_is_sum_of_two_squares
  4. L46
    exact hfactor_witness_left
  5. L47
    exact hchoice_left
16Establish horderedL48–51

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

  1. L48
    have hordered : n = x1 * x
  2. L49
    trans x * x1
  3. L50
    exact hfactor_witness_right_witness
  4. L51
    apply mul_comm
17Establish hproduct_parityL52–57

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply all bad prime even valuation value eq transport.

  1. L52
    have hproduct_parity : ∀ y. ∀ z. Prime(y) → Mod4Three(y) → BoundedPowerValuation(y,x1 · x,x1 · x,z) → ∃ n. z = n + nDefinitions: PrimeMod4ThreeBoundedPowerValuation
  2. L53
    specialize all_bad_prime_even_valuation_value_eq_transport n
  3. L54
    specialize all_bad_prime_even_valuation_value_eq_transport (x1 * x)
  4. L55
    apply all_bad_prime_even_valuation_value_eq_transport
  5. L56
    exact hordered
  6. L57
    exact hparity
18Establish hprefix_parityL58–65

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply all bad prime even valuations strip represented prime.

  1. L58
    have hprefix_parity : ∀ x. ∀ y. Prime(x) → Mod4Three(x) → BoundedPowerValuation(x,x1,x1,y) → ∃ z. y = z + zDefinitions: PrimeMod4ThreeBoundedPowerValuation
  2. L59
    specialize all_bad_prime_even_valuations_strip_represented_prime x
  3. L60
    specialize all_bad_prime_even_valuations_strip_represented_prime x1
  4. L61
    apply all_bad_prime_even_valuations_strip_represented_prime
  5. L62
    exact hfactor_witness_left
  6. L63
    exact hrepresented_prime
  7. L64
    exact hprefix_nonzero
  8. L65
    exact hproduct_parity
19Establish hnotoneL66–66

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

  1. L66
    have hnotone : ~(x = 1)
20Separate the logical casesL67–67

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

  1. L67
    cases hfactor_witness_left
21Use earlier factsL68–68

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

  1. L68
    exact hfactor_witness_left_left
22Establish hstrictL69–76

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply proper factor lt.

  1. L69
    have hstrict : exists k. k + S x1 = n
  2. L70
    specialize proper_factor_lt n
  3. L71
    specialize proper_factor_lt x1
  4. L72
    specialize proper_factor_lt x
  5. L73
    apply proper_factor_lt
  6. L74
    exact hnonzero
  7. L75
    exact hordered
  8. L76
    exact hnotone
23Establish hsuccessor_boundL77–83

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

  1. L77
    have hsuccessor_bound : exists k. k + S x1 = S B
  2. L78
    specialize le_trans (S x1)
  3. L79
    specialize le_trans n
  4. L80
    specialize le_trans (S B)
  5. L81
    apply le_trans
  6. L82
    exact hstrict
  7. L83
    exact hbound
24Establish hprefix_boundL84–88

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

  1. L84
    have hprefix_bound : exists k. k + x1 = B
  2. L85
    specialize le_of_succ_le_succ x1
  3. L86
    specialize le_of_succ_le_succ B
  4. L87
    apply le_of_succ_le_succ
  5. L88
    exact hsuccessor_bound
25Establish hprefix_representationL89–98

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

  1. L89
    have hprefix_representation : (exists ftsc_first_ftsp_induction_good_prefix_result ftsc_second_ftsp_induction_good_prefix_result. (x1) = ftsc_first_ftsp_induction_good_prefix_result * ftsc_first_ftsp_induction_good_prefix_result + ftsc_second_ftsp_induction_good_prefix_result * ftsc_second_ftsp_induction_good_prefix_result)
  2. L90
    specialize IH x1
  3. L91
    apply IH
  4. L92
    exact hprefix_bound
  5. L93
    exact hprefix_nonzero
  6. L94
    exact hprefix_parity
  7. L95
    rewrite hordered
  8. L96
    specialize two_square_representation_multiplicatively_closed x1
  9. L97
    specialize two_square_representation_multiplicatively_closed x
  10. L98
    apply two_square_representation_multiplicatively_closed
26Use earlier factsL99–100

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

  1. L99
    exact hprefix_representation
  2. L100
    exact hrepresented_prime
27Establish hvaluationL101–102

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply power valuation exists.

  1. L101
    have hvaluation : ∃ e. BoundedPowerValuation(x,n,n,e)Definitions: BoundedPowerValuation
  2. L102
    apply power_valuation_exists
28Separate the logical casesL103–103

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

  1. L103
    cases hvaluation
29Establish hevenL104–110

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

  1. L104
    have heven : exists h. x2 = h + h
  2. L105
    specialize hparity x
  3. L106
    specialize hparity x2
  4. L107
    apply hparity
  5. L108
    exact hfactor_witness_left
  6. L109
    exact hchoice_right
  7. L110
    exact hvaluation_witness
30Separate the logical casesL111–111

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

  1. L111
    cases heven
31Establish hdividesL112–112

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

  1. L112
    have hdivides : exists k. n = x * k
32Construct an explicit witnessL113–113

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

  1. L113
    exists x1
33Use earlier factsL114–114

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

  1. L114
    exact hfactor_witness_right_witness
34Establish hsquareL115–124

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply even positive prime valuation has square divisor.

  1. L115
    have hsquare : exists r. n = (x * x) * r
  2. L116
    specialize even_positive_prime_valuation_has_square_divisor x
  3. L117
    specialize even_positive_prime_valuation_has_square_divisor n
  4. L118
    specialize even_positive_prime_valuation_has_square_divisor x2
  5. L119
    specialize even_positive_prime_valuation_has_square_divisor x3
  6. L120
    apply even_positive_prime_valuation_has_square_divisor
  7. L121
    exact hfactor_witness_left
  8. L122
    exact hnonzero
  9. L123
    exact hvaluation_witness
  10. L124
    exact hdivides
35Use earlier factsL125–125

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

  1. L125
    exact heven_witness
36Separate the logical casesL126–126

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

  1. L126
    cases hsquare
37Establish hsquare_quotient_nonzeroL127–133

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

  1. L127
    have hsquare_quotient_nonzero : ~(x4 = 0)
  2. L128
    intro hzero
  3. L129
    apply hnonzero
  4. L130
    trans (x * x) * x4
  5. L131
    exact hsquare_witness
  6. L132
    rewrite hzero
  7. L133
    apply PA5
38Establish hprime_nonzeroL134–139

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

  1. L134
    have hprime_nonzero : ~(x = 0)
  2. L135
    specialize prime_nonzero x
  3. L136
    intro hzero
  4. L137
    apply prime_nonzero
  5. L138
    exact hfactor_witness_left
  6. L139
    exact hzero
39Establish hsquare_orderedL140–143

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

  1. L140
    have hsquare_ordered : n = x4 * (x * x)
  2. L141
    trans (x * x) * x4
  3. L142
    exact hsquare_witness
  4. L143
    apply mul_comm
40Establish hsquare_parityL144–149

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply all bad prime even valuation value eq transport.

  1. L144
    have hsquare_parity : ∀ y. ∀ z. Prime(y) → Mod4Three(y) → BoundedPowerValuation(y,x4 · (x · x),x4 · (x · x),z) → ∃ n. z = n + nDefinitions: PrimeMod4ThreeBoundedPowerValuation
  2. L145
    specialize all_bad_prime_even_valuation_value_eq_transport n
  3. L146
    specialize all_bad_prime_even_valuation_value_eq_transport (x4 * (x * x))
  4. L147
    apply all_bad_prime_even_valuation_value_eq_transport
  5. L148
    exact hsquare_ordered
  6. L149
    exact hparity
41Establish hquotient_parityL150–156

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply all bad prime even valuations strip square factor.

  1. L150
    have hquotient_parity : ∀ x. ∀ y. Prime(x) → Mod4Three(x) → BoundedPowerValuation(x,x4,x4,y) → ∃ z. y = z + zDefinitions: PrimeMod4ThreeBoundedPowerValuation
  2. L151
    specialize all_bad_prime_even_valuations_strip_square_factor x
  3. L152
    specialize all_bad_prime_even_valuations_strip_square_factor x4
  4. L153
    apply all_bad_prime_even_valuations_strip_square_factor
  5. L154
    exact hprime_nonzero
  6. L155
    exact hsquare_quotient_nonzero
  7. L156
    exact hsquare_parity
42Establish hsquare_strictL157–163

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime square times nonzero strictly increases.

  1. L157
    have hsquare_strict : exists k. k + S x4 = (x * x) * x4
  2. L158
    specialize prime_square_times_nonzero_strictly_increases x
  3. L159
    specialize prime_square_times_nonzero_strictly_increases x4
  4. L160
    apply prime_square_times_nonzero_strictly_increases
  5. L161
    exact hfactor_witness_left
  6. L162
    exact hsquare_quotient_nonzero
  7. L163
    rewrite <- hsquare_witness at hsquare_strict
43Establish hsquare_successor_boundL164–170

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

  1. L164
    have hsquare_successor_bound : exists k. k + S x4 = S B
  2. L165
    specialize le_trans (S x4)
  3. L166
    specialize le_trans n
  4. L167
    specialize le_trans (S B)
  5. L168
    apply le_trans
  6. L169
    exact hsquare_strict
  7. L170
    exact hbound
44Establish hsquare_boundL171–175

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

  1. L171
    have hsquare_bound : exists k. k + x4 = B
  2. L172
    specialize le_of_succ_le_succ x4
  3. L173
    specialize le_of_succ_le_succ B
  4. L174
    apply le_of_succ_le_succ
  5. L175
    exact hsquare_successor_bound
45Establish hquotient_representationL176–185

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

  1. L176
    have hquotient_representation : (exists ftsc_first_ftsp_induction_bad_prefix_result ftsc_second_ftsp_induction_bad_prefix_result. (x4) = ftsc_first_ftsp_induction_bad_prefix_result * ftsc_first_ftsp_induction_bad_prefix_result + ftsc_second_ftsp_induction_bad_prefix_result * ftsc_second_ftsp_induction_bad_prefix_result)
  2. L177
    specialize IH x4
  3. L178
    apply IH
  4. L179
    exact hsquare_bound
  5. L180
    exact hsquare_quotient_nonzero
  6. L181
    exact hquotient_parity
  7. L182
    rewrite hsquare_ordered
  8. L183
    specialize two_square_representation_preserved_by_square_factor x4
  9. L184
    specialize two_square_representation_preserved_by_square_factor x
  10. L185
    apply two_square_representation_preserved_by_square_factor
46Use earlier factsL186–186

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

  1. L186
    exact hquotient_representation

Library-wide reading audit

Original exact command ledger · 186 lines
  1. 0001intro B
  2. 0002induction B
  3. 0003intro n
  4. 0004intro hbound
  5. 0005intro hnonzero
  6. 0006intro hparity
  7. 0007exfalso
  8. 0008apply hnonzero
  9. 0009specialize le_zero n
  10. 0010apply le_zero
  11. 0011exact hbound
  12. 0012intro n
  13. 0013intro hbound
  14. 0014intro hnonzero
  15. 0015intro hparity
  16. 0016specialize eq_decidable n
  17. 0017specialize eq_decidable 1
  18. 0018cases eq_decidable
  19. 0019exists 1
  20. 0020exists 0
  21. 0021rewrite eq_decidable_left
  22. 0022norm_num
  23. 0023have hfactor : exists p. (((~(p = 1) /\ forall frm_prime_left_ftsp_induction_factor_prime frm_prime_right_ftsp_induction_factor_prime. p = frm_prime_left_ftsp_induction_factor_prime * frm_prime_right_ftsp_induction_factor_prime -> frm_prime_left_ftsp_induction_factor_prime = 1 \/ frm_prime_right_ftsp_induction_factor_prime = 1)) /\ exists r. n = p * r)
  24. 0024specialize prime_divisor_exists n
  25. 0025apply prime_divisor_exists
  26. 0026exact hnonzero
  27. 0027exact eq_decidable_right
  28. 0028cases hfactor
  29. 0029cases hfactor_witness
  30. 0030cases hfactor_witness_right
  31. 0031have hprefix_nonzero : ~(x1 = 0)
  32. 0032intro hzero
  33. 0033apply hnonzero
  34. 0034trans x * x1
  35. 0035exact hfactor_witness_right_witness
  36. 0036rewrite hzero
  37. 0037apply PA5
  38. 0038have hchoice : ((x = 2 \/ exists k. x = 4 * k + 1) \/ exists k. x = 4 * k + 3)
  39. 0039specialize prime_mod_four_good_or_three x
  40. 0040apply prime_mod_four_good_or_three
  41. 0041exact hfactor_witness_left
  42. 0042cases hchoice
  43. 0043have hrepresented_prime : (exists ftsc_first_ftsp_induction_good_prime ftsc_second_ftsp_induction_good_prime. (x) = ftsc_first_ftsp_induction_good_prime * ftsc_first_ftsp_induction_good_prime + ftsc_second_ftsp_induction_good_prime * ftsc_second_ftsp_induction_good_prime)
  44. 0044specialize prime_two_or_one_mod_four_is_sum_of_two_squares x
  45. 0045apply prime_two_or_one_mod_four_is_sum_of_two_squares
  46. 0046exact hfactor_witness_left
  47. 0047exact hchoice_left
  48. 0048have hordered : n = x1 * x
  49. 0049trans x * x1
  50. 0050exact hfactor_witness_right_witness
  51. 0051apply mul_comm
  52. 0052have hproduct_parity : (forall ftsp_bad_prime_ftsp_induction_good_product ftsp_bad_exponent_ftsp_induction_good_product. ((~(ftsp_bad_prime_ftsp_induction_good_product = 1) /\ forall frm_prime_left_ftsp_ftsp_induction_good_product_prime frm_prime_right_ftsp_ftsp_induction_good_product_prime. ftsp_bad_prime_ftsp_induction_good_product = frm_prime_left_ftsp_ftsp_induction_good_product_prime * frm_prime_right_ftsp_ftsp_induction_good_product_prime -> frm_prime_left_ftsp_ftsp_induction_good_product_prime = 1 \/ frm_prime_right_ftsp_ftsp_induction_good_product_prime = 1)) -> (exists ftsc_four_three_ftsp_ftsp_induction_good_product_three. (ftsp_bad_prime_ftsp_induction_good_product) = 4 * ftsc_four_three_ftsp_ftsp_induction_good_product_three + 3) -> (((exists bpv_gap_ftsp_ftsp_induction_good_product_valuation_exponent_bound. bpv_gap_ftsp_ftsp_induction_good_product_valuation_exponent_bound + ftsp_bad_exponent_ftsp_induction_good_product = (x1 * x)) /\ (exists bpv_result_ftsp_ftsp_induction_good_product_valuation_selected. ((exists ff_b_ftsp_ftsp_induction_good_product_valuation_selected_power ff_c_ftsp_ftsp_induction_good_product_valuation_selected_power. ((forall ff_i_ftsp_ftsp_induction_good_product_valuation_selected_power_repeat. (exists ff_lt_ftsp_ftsp_induction_good_product_valuation_selected_power_repeat_bound. ff_lt_ftsp_ftsp_induction_good_product_valuation_selected_power_repeat_bound + S ff_i_ftsp_ftsp_induction_good_product_valuation_selected_power_repeat = ftsp_bad_exponent_ftsp_induction_good_product) -> (((exists ff_h_ftsp_ftsp_induction_good_product_valuation_selected_power_repeat_decoded. ff_h_ftsp_ftsp_induction_good_product_valuation_selected_power_repeat_decoded + S (ftsp_bad_prime_ftsp_induction_good_product) = S ((S (ff_i_ftsp_ftsp_induction_good_product_valuation_selected_power_repeat)) * ff_c_ftsp_ftsp_induction_good_product_valuation_selected_power)) /\ exists ff_q_ftsp_ftsp_induction_good_product_valuation_selected_power_repeat_decoded. ff_b_ftsp_ftsp_induction_good_product_valuation_selected_power = ff_q_ftsp_ftsp_induction_good_product_valuation_selected_power_repeat_decoded * S ((S (ff_i_ftsp_ftsp_induction_good_product_valuation_selected_power_repeat)) * ff_c_ftsp_ftsp_induction_good_product_valuation_selected_power) + (ftsp_bad_prime_ftsp_induction_good_product)))) /\ (exists ff_u_ftsp_ftsp_induction_good_product_valuation_selected_power_product ff_v_ftsp_ftsp_induction_good_product_valuation_selected_power_product. ((((exists ff_h_ftsp_ftsp_induction_good_product_valuation_selected_power_product_start. ff_h_ftsp_ftsp_induction_good_product_valuation_selected_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_ftsp_induction_good_product_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_product_valuation_selected_power_product_start. ff_u_ftsp_ftsp_induction_good_product_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_good_product_valuation_selected_power_product_start * S ((S (0)) * ff_v_ftsp_ftsp_induction_good_product_valuation_selected_power_product) + (1))) /\ ((((exists ff_h_ftsp_ftsp_induction_good_product_valuation_selected_power_product_terminal. ff_h_ftsp_ftsp_induction_good_product_valuation_selected_power_product_terminal + S (bpv_result_ftsp_ftsp_induction_good_product_valuation_selected) = S ((S (ftsp_bad_exponent_ftsp_induction_good_product)) * ff_v_ftsp_ftsp_induction_good_product_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_product_valuation_selected_power_product_terminal. ff_u_ftsp_ftsp_induction_good_product_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_good_product_valuation_selected_power_product_terminal * S ((S (ftsp_bad_exponent_ftsp_induction_good_product)) * ff_v_ftsp_ftsp_induction_good_product_valuation_selected_power_product) + (bpv_result_ftsp_ftsp_induction_good_product_valuation_selected))) /\ forall ff_i_ftsp_ftsp_induction_good_product_valuation_selected_power_product. (exists ff_lt_ftsp_ftsp_induction_good_product_valuation_selected_power_product_bound. ff_lt_ftsp_ftsp_induction_good_product_valuation_selected_power_product_bound + S ff_i_ftsp_ftsp_induction_good_product_valuation_selected_power_product = ftsp_bad_exponent_ftsp_induction_good_product) -> exists ff_p_ftsp_ftsp_induction_good_product_valuation_selected_power_product ff_r_ftsp_ftsp_induction_good_product_valuation_selected_power_product ff_s_ftsp_ftsp_induction_good_product_valuation_selected_power_product. ((((exists ff_h_ftsp_ftsp_induction_good_product_valuation_selected_power_product_factor. ff_h_ftsp_ftsp_induction_good_product_valuation_selected_power_product_factor + S (ff_p_ftsp_ftsp_induction_good_product_valuation_selected_power_product) = S ((S (ff_i_ftsp_ftsp_induction_good_product_valuation_selected_power_product)) * ff_c_ftsp_ftsp_induction_good_product_valuation_selected_power)) /\ exists ff_q_ftsp_ftsp_induction_good_product_valuation_selected_power_product_factor. ff_b_ftsp_ftsp_induction_good_product_valuation_selected_power = ff_q_ftsp_ftsp_induction_good_product_valuation_selected_power_product_factor * S ((S (ff_i_ftsp_ftsp_induction_good_product_valuation_selected_power_product)) * ff_c_ftsp_ftsp_induction_good_product_valuation_selected_power) + (ff_p_ftsp_ftsp_induction_good_product_valuation_selected_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_good_product_valuation_selected_power_product_partial. ff_h_ftsp_ftsp_induction_good_product_valuation_selected_power_product_partial + S (ff_r_ftsp_ftsp_induction_good_product_valuation_selected_power_product) = S ((S (ff_i_ftsp_ftsp_induction_good_product_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_good_product_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_product_valuation_selected_power_product_partial. ff_u_ftsp_ftsp_induction_good_product_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_good_product_valuation_selected_power_product_partial * S ((S (ff_i_ftsp_ftsp_induction_good_product_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_good_product_valuation_selected_power_product) + (ff_r_ftsp_ftsp_induction_good_product_valuation_selected_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_good_product_valuation_selected_power_product_successor. ff_h_ftsp_ftsp_induction_good_product_valuation_selected_power_product_successor + S (ff_s_ftsp_ftsp_induction_good_product_valuation_selected_power_product) = S ((S (S ff_i_ftsp_ftsp_induction_good_product_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_good_product_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_product_valuation_selected_power_product_successor. ff_u_ftsp_ftsp_induction_good_product_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_good_product_valuation_selected_power_product_successor * S ((S (S ff_i_ftsp_ftsp_induction_good_product_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_good_product_valuation_selected_power_product) + (ff_s_ftsp_ftsp_induction_good_product_valuation_selected_power_product))) /\ ff_s_ftsp_ftsp_induction_good_product_valuation_selected_power_product = ff_r_ftsp_ftsp_induction_good_product_valuation_selected_power_product * ff_p_ftsp_ftsp_induction_good_product_valuation_selected_power_product)))))))) /\ (exists bpv_factor_ftsp_ftsp_induction_good_product_valuation_selected_divides. (x1 * x) = bpv_result_ftsp_ftsp_induction_good_product_valuation_selected * bpv_factor_ftsp_ftsp_induction_good_product_valuation_selected_divides)))) /\ forall bpv_candidate_ftsp_ftsp_induction_good_product_valuation. (exists bpv_gap_ftsp_ftsp_induction_good_product_valuation_candidate_bound. bpv_gap_ftsp_ftsp_induction_good_product_valuation_candidate_bound + bpv_candidate_ftsp_ftsp_induction_good_product_valuation = (x1 * x)) -> (exists bpv_result_ftsp_ftsp_induction_good_product_valuation_candidate. ((exists ff_b_ftsp_ftsp_induction_good_product_valuation_candidate_power ff_c_ftsp_ftsp_induction_good_product_valuation_candidate_power. ((forall ff_i_ftsp_ftsp_induction_good_product_valuation_candidate_power_repeat. (exists ff_lt_ftsp_ftsp_induction_good_product_valuation_candidate_power_repeat_bound. ff_lt_ftsp_ftsp_induction_good_product_valuation_candidate_power_repeat_bound + S ff_i_ftsp_ftsp_induction_good_product_valuation_candidate_power_repeat = bpv_candidate_ftsp_ftsp_induction_good_product_valuation) -> (((exists ff_h_ftsp_ftsp_induction_good_product_valuation_candidate_power_repeat_decoded. ff_h_ftsp_ftsp_induction_good_product_valuation_candidate_power_repeat_decoded + S (ftsp_bad_prime_ftsp_induction_good_product) = S ((S (ff_i_ftsp_ftsp_induction_good_product_valuation_candidate_power_repeat)) * ff_c_ftsp_ftsp_induction_good_product_valuation_candidate_power)) /\ exists ff_q_ftsp_ftsp_induction_good_product_valuation_candidate_power_repeat_decoded. ff_b_ftsp_ftsp_induction_good_product_valuation_candidate_power = ff_q_ftsp_ftsp_induction_good_product_valuation_candidate_power_repeat_decoded * S ((S (ff_i_ftsp_ftsp_induction_good_product_valuation_candidate_power_repeat)) * ff_c_ftsp_ftsp_induction_good_product_valuation_candidate_power) + (ftsp_bad_prime_ftsp_induction_good_product)))) /\ (exists ff_u_ftsp_ftsp_induction_good_product_valuation_candidate_power_product ff_v_ftsp_ftsp_induction_good_product_valuation_candidate_power_product. ((((exists ff_h_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_start. ff_h_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_ftsp_induction_good_product_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_start. ff_u_ftsp_ftsp_induction_good_product_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_start * S ((S (0)) * ff_v_ftsp_ftsp_induction_good_product_valuation_candidate_power_product) + (1))) /\ ((((exists ff_h_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_terminal. ff_h_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_terminal + S (bpv_result_ftsp_ftsp_induction_good_product_valuation_candidate) = S ((S (bpv_candidate_ftsp_ftsp_induction_good_product_valuation)) * ff_v_ftsp_ftsp_induction_good_product_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_terminal. ff_u_ftsp_ftsp_induction_good_product_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_terminal * S ((S (bpv_candidate_ftsp_ftsp_induction_good_product_valuation)) * ff_v_ftsp_ftsp_induction_good_product_valuation_candidate_power_product) + (bpv_result_ftsp_ftsp_induction_good_product_valuation_candidate))) /\ forall ff_i_ftsp_ftsp_induction_good_product_valuation_candidate_power_product. (exists ff_lt_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_bound. ff_lt_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_bound + S ff_i_ftsp_ftsp_induction_good_product_valuation_candidate_power_product = bpv_candidate_ftsp_ftsp_induction_good_product_valuation) -> exists ff_p_ftsp_ftsp_induction_good_product_valuation_candidate_power_product ff_r_ftsp_ftsp_induction_good_product_valuation_candidate_power_product ff_s_ftsp_ftsp_induction_good_product_valuation_candidate_power_product. ((((exists ff_h_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_factor. ff_h_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_factor + S (ff_p_ftsp_ftsp_induction_good_product_valuation_candidate_power_product) = S ((S (ff_i_ftsp_ftsp_induction_good_product_valuation_candidate_power_product)) * ff_c_ftsp_ftsp_induction_good_product_valuation_candidate_power)) /\ exists ff_q_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_factor. ff_b_ftsp_ftsp_induction_good_product_valuation_candidate_power = ff_q_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_factor * S ((S (ff_i_ftsp_ftsp_induction_good_product_valuation_candidate_power_product)) * ff_c_ftsp_ftsp_induction_good_product_valuation_candidate_power) + (ff_p_ftsp_ftsp_induction_good_product_valuation_candidate_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_partial. ff_h_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_partial + S (ff_r_ftsp_ftsp_induction_good_product_valuation_candidate_power_product) = S ((S (ff_i_ftsp_ftsp_induction_good_product_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_good_product_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_partial. ff_u_ftsp_ftsp_induction_good_product_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_partial * S ((S (ff_i_ftsp_ftsp_induction_good_product_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_good_product_valuation_candidate_power_product) + (ff_r_ftsp_ftsp_induction_good_product_valuation_candidate_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_successor. ff_h_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_successor + S (ff_s_ftsp_ftsp_induction_good_product_valuation_candidate_power_product) = S ((S (S ff_i_ftsp_ftsp_induction_good_product_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_good_product_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_successor. ff_u_ftsp_ftsp_induction_good_product_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_good_product_valuation_candidate_power_product_successor * S ((S (S ff_i_ftsp_ftsp_induction_good_product_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_good_product_valuation_candidate_power_product) + (ff_s_ftsp_ftsp_induction_good_product_valuation_candidate_power_product))) /\ ff_s_ftsp_ftsp_induction_good_product_valuation_candidate_power_product = ff_r_ftsp_ftsp_induction_good_product_valuation_candidate_power_product * ff_p_ftsp_ftsp_induction_good_product_valuation_candidate_power_product)))))))) /\ (exists bpv_factor_ftsp_ftsp_induction_good_product_valuation_candidate_divides. (x1 * x) = bpv_result_ftsp_ftsp_induction_good_product_valuation_candidate * bpv_factor_ftsp_ftsp_induction_good_product_valuation_candidate_divides))) -> (exists bpv_gap_ftsp_ftsp_induction_good_product_valuation_maximal. bpv_gap_ftsp_ftsp_induction_good_product_valuation_maximal + bpv_candidate_ftsp_ftsp_induction_good_product_valuation = ftsp_bad_exponent_ftsp_induction_good_product)) -> exists ftsp_bad_half_ftsp_induction_good_product. ftsp_bad_exponent_ftsp_induction_good_product = ftsp_bad_half_ftsp_induction_good_product + ftsp_bad_half_ftsp_induction_good_product)
  53. 0053specialize all_bad_prime_even_valuation_value_eq_transport n
  54. 0054specialize all_bad_prime_even_valuation_value_eq_transport (x1 * x)
  55. 0055apply all_bad_prime_even_valuation_value_eq_transport
  56. 0056exact hordered
  57. 0057exact hparity
  58. 0058have hprefix_parity : (forall ftsp_bad_prime_ftsp_induction_good_prefix ftsp_bad_exponent_ftsp_induction_good_prefix. ((~(ftsp_bad_prime_ftsp_induction_good_prefix = 1) /\ forall frm_prime_left_ftsp_ftsp_induction_good_prefix_prime frm_prime_right_ftsp_ftsp_induction_good_prefix_prime. ftsp_bad_prime_ftsp_induction_good_prefix = frm_prime_left_ftsp_ftsp_induction_good_prefix_prime * frm_prime_right_ftsp_ftsp_induction_good_prefix_prime -> frm_prime_left_ftsp_ftsp_induction_good_prefix_prime = 1 \/ frm_prime_right_ftsp_ftsp_induction_good_prefix_prime = 1)) -> (exists ftsc_four_three_ftsp_ftsp_induction_good_prefix_three. (ftsp_bad_prime_ftsp_induction_good_prefix) = 4 * ftsc_four_three_ftsp_ftsp_induction_good_prefix_three + 3) -> (((exists bpv_gap_ftsp_ftsp_induction_good_prefix_valuation_exponent_bound. bpv_gap_ftsp_ftsp_induction_good_prefix_valuation_exponent_bound + ftsp_bad_exponent_ftsp_induction_good_prefix = (x1)) /\ (exists bpv_result_ftsp_ftsp_induction_good_prefix_valuation_selected. ((exists ff_b_ftsp_ftsp_induction_good_prefix_valuation_selected_power ff_c_ftsp_ftsp_induction_good_prefix_valuation_selected_power. ((forall ff_i_ftsp_ftsp_induction_good_prefix_valuation_selected_power_repeat. (exists ff_lt_ftsp_ftsp_induction_good_prefix_valuation_selected_power_repeat_bound. ff_lt_ftsp_ftsp_induction_good_prefix_valuation_selected_power_repeat_bound + S ff_i_ftsp_ftsp_induction_good_prefix_valuation_selected_power_repeat = ftsp_bad_exponent_ftsp_induction_good_prefix) -> (((exists ff_h_ftsp_ftsp_induction_good_prefix_valuation_selected_power_repeat_decoded. ff_h_ftsp_ftsp_induction_good_prefix_valuation_selected_power_repeat_decoded + S (ftsp_bad_prime_ftsp_induction_good_prefix) = S ((S (ff_i_ftsp_ftsp_induction_good_prefix_valuation_selected_power_repeat)) * ff_c_ftsp_ftsp_induction_good_prefix_valuation_selected_power)) /\ exists ff_q_ftsp_ftsp_induction_good_prefix_valuation_selected_power_repeat_decoded. ff_b_ftsp_ftsp_induction_good_prefix_valuation_selected_power = ff_q_ftsp_ftsp_induction_good_prefix_valuation_selected_power_repeat_decoded * S ((S (ff_i_ftsp_ftsp_induction_good_prefix_valuation_selected_power_repeat)) * ff_c_ftsp_ftsp_induction_good_prefix_valuation_selected_power) + (ftsp_bad_prime_ftsp_induction_good_prefix)))) /\ (exists ff_u_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product ff_v_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product. ((((exists ff_h_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_start. ff_h_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_start. ff_u_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_start * S ((S (0)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product) + (1))) /\ ((((exists ff_h_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_terminal. ff_h_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_terminal + S (bpv_result_ftsp_ftsp_induction_good_prefix_valuation_selected) = S ((S (ftsp_bad_exponent_ftsp_induction_good_prefix)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_terminal. ff_u_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_terminal * S ((S (ftsp_bad_exponent_ftsp_induction_good_prefix)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product) + (bpv_result_ftsp_ftsp_induction_good_prefix_valuation_selected))) /\ forall ff_i_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product. (exists ff_lt_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_bound. ff_lt_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_bound + S ff_i_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product = ftsp_bad_exponent_ftsp_induction_good_prefix) -> exists ff_p_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product ff_r_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product ff_s_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product. ((((exists ff_h_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_factor. ff_h_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_factor + S (ff_p_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product) = S ((S (ff_i_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product)) * ff_c_ftsp_ftsp_induction_good_prefix_valuation_selected_power)) /\ exists ff_q_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_factor. ff_b_ftsp_ftsp_induction_good_prefix_valuation_selected_power = ff_q_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_factor * S ((S (ff_i_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product)) * ff_c_ftsp_ftsp_induction_good_prefix_valuation_selected_power) + (ff_p_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_partial. ff_h_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_partial + S (ff_r_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product) = S ((S (ff_i_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_partial. ff_u_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_partial * S ((S (ff_i_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product) + (ff_r_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_successor. ff_h_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_successor + S (ff_s_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product) = S ((S (S ff_i_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_successor. ff_u_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product_successor * S ((S (S ff_i_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product) + (ff_s_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product))) /\ ff_s_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product = ff_r_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product * ff_p_ftsp_ftsp_induction_good_prefix_valuation_selected_power_product)))))))) /\ (exists bpv_factor_ftsp_ftsp_induction_good_prefix_valuation_selected_divides. (x1) = bpv_result_ftsp_ftsp_induction_good_prefix_valuation_selected * bpv_factor_ftsp_ftsp_induction_good_prefix_valuation_selected_divides)))) /\ forall bpv_candidate_ftsp_ftsp_induction_good_prefix_valuation. (exists bpv_gap_ftsp_ftsp_induction_good_prefix_valuation_candidate_bound. bpv_gap_ftsp_ftsp_induction_good_prefix_valuation_candidate_bound + bpv_candidate_ftsp_ftsp_induction_good_prefix_valuation = (x1)) -> (exists bpv_result_ftsp_ftsp_induction_good_prefix_valuation_candidate. ((exists ff_b_ftsp_ftsp_induction_good_prefix_valuation_candidate_power ff_c_ftsp_ftsp_induction_good_prefix_valuation_candidate_power. ((forall ff_i_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_repeat. (exists ff_lt_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_repeat_bound. ff_lt_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_repeat_bound + S ff_i_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_repeat = bpv_candidate_ftsp_ftsp_induction_good_prefix_valuation) -> (((exists ff_h_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_repeat_decoded. ff_h_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_repeat_decoded + S (ftsp_bad_prime_ftsp_induction_good_prefix) = S ((S (ff_i_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_repeat)) * ff_c_ftsp_ftsp_induction_good_prefix_valuation_candidate_power)) /\ exists ff_q_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_repeat_decoded. ff_b_ftsp_ftsp_induction_good_prefix_valuation_candidate_power = ff_q_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_repeat_decoded * S ((S (ff_i_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_repeat)) * ff_c_ftsp_ftsp_induction_good_prefix_valuation_candidate_power) + (ftsp_bad_prime_ftsp_induction_good_prefix)))) /\ (exists ff_u_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product ff_v_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product. ((((exists ff_h_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_start. ff_h_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_start. ff_u_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_start * S ((S (0)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product) + (1))) /\ ((((exists ff_h_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_terminal. ff_h_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_terminal + S (bpv_result_ftsp_ftsp_induction_good_prefix_valuation_candidate) = S ((S (bpv_candidate_ftsp_ftsp_induction_good_prefix_valuation)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_terminal. ff_u_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_terminal * S ((S (bpv_candidate_ftsp_ftsp_induction_good_prefix_valuation)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product) + (bpv_result_ftsp_ftsp_induction_good_prefix_valuation_candidate))) /\ forall ff_i_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product. (exists ff_lt_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_bound. ff_lt_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_bound + S ff_i_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product = bpv_candidate_ftsp_ftsp_induction_good_prefix_valuation) -> exists ff_p_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product ff_r_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product ff_s_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product. ((((exists ff_h_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_factor. ff_h_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_factor + S (ff_p_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product) = S ((S (ff_i_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product)) * ff_c_ftsp_ftsp_induction_good_prefix_valuation_candidate_power)) /\ exists ff_q_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_factor. ff_b_ftsp_ftsp_induction_good_prefix_valuation_candidate_power = ff_q_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_factor * S ((S (ff_i_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product)) * ff_c_ftsp_ftsp_induction_good_prefix_valuation_candidate_power) + (ff_p_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_partial. ff_h_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_partial + S (ff_r_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product) = S ((S (ff_i_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_partial. ff_u_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_partial * S ((S (ff_i_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product) + (ff_r_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_successor. ff_h_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_successor + S (ff_s_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product) = S ((S (S ff_i_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_successor. ff_u_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product_successor * S ((S (S ff_i_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product) + (ff_s_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product))) /\ ff_s_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product = ff_r_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product * ff_p_ftsp_ftsp_induction_good_prefix_valuation_candidate_power_product)))))))) /\ (exists bpv_factor_ftsp_ftsp_induction_good_prefix_valuation_candidate_divides. (x1) = bpv_result_ftsp_ftsp_induction_good_prefix_valuation_candidate * bpv_factor_ftsp_ftsp_induction_good_prefix_valuation_candidate_divides))) -> (exists bpv_gap_ftsp_ftsp_induction_good_prefix_valuation_maximal. bpv_gap_ftsp_ftsp_induction_good_prefix_valuation_maximal + bpv_candidate_ftsp_ftsp_induction_good_prefix_valuation = ftsp_bad_exponent_ftsp_induction_good_prefix)) -> exists ftsp_bad_half_ftsp_induction_good_prefix. ftsp_bad_exponent_ftsp_induction_good_prefix = ftsp_bad_half_ftsp_induction_good_prefix + ftsp_bad_half_ftsp_induction_good_prefix)
  59. 0059specialize all_bad_prime_even_valuations_strip_represented_prime x
  60. 0060specialize all_bad_prime_even_valuations_strip_represented_prime x1
  61. 0061apply all_bad_prime_even_valuations_strip_represented_prime
  62. 0062exact hfactor_witness_left
  63. 0063exact hrepresented_prime
  64. 0064exact hprefix_nonzero
  65. 0065exact hproduct_parity
  66. 0066have hnotone : ~(x = 1)
  67. 0067cases hfactor_witness_left
  68. 0068exact hfactor_witness_left_left
  69. 0069have hstrict : exists k. k + S x1 = n
  70. 0070specialize proper_factor_lt n
  71. 0071specialize proper_factor_lt x1
  72. 0072specialize proper_factor_lt x
  73. 0073apply proper_factor_lt
  74. 0074exact hnonzero
  75. 0075exact hordered
  76. 0076exact hnotone
  77. 0077have hsuccessor_bound : exists k. k + S x1 = S B
  78. 0078specialize le_trans (S x1)
  79. 0079specialize le_trans n
  80. 0080specialize le_trans (S B)
  81. 0081apply le_trans
  82. 0082exact hstrict
  83. 0083exact hbound
  84. 0084have hprefix_bound : exists k. k + x1 = B
  85. 0085specialize le_of_succ_le_succ x1
  86. 0086specialize le_of_succ_le_succ B
  87. 0087apply le_of_succ_le_succ
  88. 0088exact hsuccessor_bound
  89. 0089have hprefix_representation : (exists ftsc_first_ftsp_induction_good_prefix_result ftsc_second_ftsp_induction_good_prefix_result. (x1) = ftsc_first_ftsp_induction_good_prefix_result * ftsc_first_ftsp_induction_good_prefix_result + ftsc_second_ftsp_induction_good_prefix_result * ftsc_second_ftsp_induction_good_prefix_result)
  90. 0090specialize IH x1
  91. 0091apply IH
  92. 0092exact hprefix_bound
  93. 0093exact hprefix_nonzero
  94. 0094exact hprefix_parity
  95. 0095rewrite hordered
  96. 0096specialize two_square_representation_multiplicatively_closed x1
  97. 0097specialize two_square_representation_multiplicatively_closed x
  98. 0098apply two_square_representation_multiplicatively_closed
  99. 0099exact hprefix_representation
  100. 0100exact hrepresented_prime
  101. 0101have hvaluation : exists e. (((exists bpv_gap_ftsp_induction_bad_valuation_exponent_bound. bpv_gap_ftsp_induction_bad_valuation_exponent_bound + e = n) /\ (exists bpv_result_ftsp_induction_bad_valuation_selected. ((exists ff_b_ftsp_induction_bad_valuation_selected_power ff_c_ftsp_induction_bad_valuation_selected_power. ((forall ff_i_ftsp_induction_bad_valuation_selected_power_repeat. (exists ff_lt_ftsp_induction_bad_valuation_selected_power_repeat_bound. ff_lt_ftsp_induction_bad_valuation_selected_power_repeat_bound + S ff_i_ftsp_induction_bad_valuation_selected_power_repeat = e) -> (((exists ff_h_ftsp_induction_bad_valuation_selected_power_repeat_decoded. ff_h_ftsp_induction_bad_valuation_selected_power_repeat_decoded + S (x) = S ((S (ff_i_ftsp_induction_bad_valuation_selected_power_repeat)) * ff_c_ftsp_induction_bad_valuation_selected_power)) /\ exists ff_q_ftsp_induction_bad_valuation_selected_power_repeat_decoded. ff_b_ftsp_induction_bad_valuation_selected_power = ff_q_ftsp_induction_bad_valuation_selected_power_repeat_decoded * S ((S (ff_i_ftsp_induction_bad_valuation_selected_power_repeat)) * ff_c_ftsp_induction_bad_valuation_selected_power) + (x)))) /\ (exists ff_u_ftsp_induction_bad_valuation_selected_power_product ff_v_ftsp_induction_bad_valuation_selected_power_product. ((((exists ff_h_ftsp_induction_bad_valuation_selected_power_product_start. ff_h_ftsp_induction_bad_valuation_selected_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_induction_bad_valuation_selected_power_product)) /\ exists ff_q_ftsp_induction_bad_valuation_selected_power_product_start. ff_u_ftsp_induction_bad_valuation_selected_power_product = ff_q_ftsp_induction_bad_valuation_selected_power_product_start * S ((S (0)) * ff_v_ftsp_induction_bad_valuation_selected_power_product) + (1))) /\ ((((exists ff_h_ftsp_induction_bad_valuation_selected_power_product_terminal. ff_h_ftsp_induction_bad_valuation_selected_power_product_terminal + S (bpv_result_ftsp_induction_bad_valuation_selected) = S ((S (e)) * ff_v_ftsp_induction_bad_valuation_selected_power_product)) /\ exists ff_q_ftsp_induction_bad_valuation_selected_power_product_terminal. ff_u_ftsp_induction_bad_valuation_selected_power_product = ff_q_ftsp_induction_bad_valuation_selected_power_product_terminal * S ((S (e)) * ff_v_ftsp_induction_bad_valuation_selected_power_product) + (bpv_result_ftsp_induction_bad_valuation_selected))) /\ forall ff_i_ftsp_induction_bad_valuation_selected_power_product. (exists ff_lt_ftsp_induction_bad_valuation_selected_power_product_bound. ff_lt_ftsp_induction_bad_valuation_selected_power_product_bound + S ff_i_ftsp_induction_bad_valuation_selected_power_product = e) -> exists ff_p_ftsp_induction_bad_valuation_selected_power_product ff_r_ftsp_induction_bad_valuation_selected_power_product ff_s_ftsp_induction_bad_valuation_selected_power_product. ((((exists ff_h_ftsp_induction_bad_valuation_selected_power_product_factor. ff_h_ftsp_induction_bad_valuation_selected_power_product_factor + S (ff_p_ftsp_induction_bad_valuation_selected_power_product) = S ((S (ff_i_ftsp_induction_bad_valuation_selected_power_product)) * ff_c_ftsp_induction_bad_valuation_selected_power)) /\ exists ff_q_ftsp_induction_bad_valuation_selected_power_product_factor. ff_b_ftsp_induction_bad_valuation_selected_power = ff_q_ftsp_induction_bad_valuation_selected_power_product_factor * S ((S (ff_i_ftsp_induction_bad_valuation_selected_power_product)) * ff_c_ftsp_induction_bad_valuation_selected_power) + (ff_p_ftsp_induction_bad_valuation_selected_power_product))) /\ ((((exists ff_h_ftsp_induction_bad_valuation_selected_power_product_partial. ff_h_ftsp_induction_bad_valuation_selected_power_product_partial + S (ff_r_ftsp_induction_bad_valuation_selected_power_product) = S ((S (ff_i_ftsp_induction_bad_valuation_selected_power_product)) * ff_v_ftsp_induction_bad_valuation_selected_power_product)) /\ exists ff_q_ftsp_induction_bad_valuation_selected_power_product_partial. ff_u_ftsp_induction_bad_valuation_selected_power_product = ff_q_ftsp_induction_bad_valuation_selected_power_product_partial * S ((S (ff_i_ftsp_induction_bad_valuation_selected_power_product)) * ff_v_ftsp_induction_bad_valuation_selected_power_product) + (ff_r_ftsp_induction_bad_valuation_selected_power_product))) /\ ((((exists ff_h_ftsp_induction_bad_valuation_selected_power_product_successor. ff_h_ftsp_induction_bad_valuation_selected_power_product_successor + S (ff_s_ftsp_induction_bad_valuation_selected_power_product) = S ((S (S ff_i_ftsp_induction_bad_valuation_selected_power_product)) * ff_v_ftsp_induction_bad_valuation_selected_power_product)) /\ exists ff_q_ftsp_induction_bad_valuation_selected_power_product_successor. ff_u_ftsp_induction_bad_valuation_selected_power_product = ff_q_ftsp_induction_bad_valuation_selected_power_product_successor * S ((S (S ff_i_ftsp_induction_bad_valuation_selected_power_product)) * ff_v_ftsp_induction_bad_valuation_selected_power_product) + (ff_s_ftsp_induction_bad_valuation_selected_power_product))) /\ ff_s_ftsp_induction_bad_valuation_selected_power_product = ff_r_ftsp_induction_bad_valuation_selected_power_product * ff_p_ftsp_induction_bad_valuation_selected_power_product)))))))) /\ (exists bpv_factor_ftsp_induction_bad_valuation_selected_divides. n = bpv_result_ftsp_induction_bad_valuation_selected * bpv_factor_ftsp_induction_bad_valuation_selected_divides)))) /\ forall bpv_candidate_ftsp_induction_bad_valuation. (exists bpv_gap_ftsp_induction_bad_valuation_candidate_bound. bpv_gap_ftsp_induction_bad_valuation_candidate_bound + bpv_candidate_ftsp_induction_bad_valuation = n) -> (exists bpv_result_ftsp_induction_bad_valuation_candidate. ((exists ff_b_ftsp_induction_bad_valuation_candidate_power ff_c_ftsp_induction_bad_valuation_candidate_power. ((forall ff_i_ftsp_induction_bad_valuation_candidate_power_repeat. (exists ff_lt_ftsp_induction_bad_valuation_candidate_power_repeat_bound. ff_lt_ftsp_induction_bad_valuation_candidate_power_repeat_bound + S ff_i_ftsp_induction_bad_valuation_candidate_power_repeat = bpv_candidate_ftsp_induction_bad_valuation) -> (((exists ff_h_ftsp_induction_bad_valuation_candidate_power_repeat_decoded. ff_h_ftsp_induction_bad_valuation_candidate_power_repeat_decoded + S (x) = S ((S (ff_i_ftsp_induction_bad_valuation_candidate_power_repeat)) * ff_c_ftsp_induction_bad_valuation_candidate_power)) /\ exists ff_q_ftsp_induction_bad_valuation_candidate_power_repeat_decoded. ff_b_ftsp_induction_bad_valuation_candidate_power = ff_q_ftsp_induction_bad_valuation_candidate_power_repeat_decoded * S ((S (ff_i_ftsp_induction_bad_valuation_candidate_power_repeat)) * ff_c_ftsp_induction_bad_valuation_candidate_power) + (x)))) /\ (exists ff_u_ftsp_induction_bad_valuation_candidate_power_product ff_v_ftsp_induction_bad_valuation_candidate_power_product. ((((exists ff_h_ftsp_induction_bad_valuation_candidate_power_product_start. ff_h_ftsp_induction_bad_valuation_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_induction_bad_valuation_candidate_power_product)) /\ exists ff_q_ftsp_induction_bad_valuation_candidate_power_product_start. ff_u_ftsp_induction_bad_valuation_candidate_power_product = ff_q_ftsp_induction_bad_valuation_candidate_power_product_start * S ((S (0)) * ff_v_ftsp_induction_bad_valuation_candidate_power_product) + (1))) /\ ((((exists ff_h_ftsp_induction_bad_valuation_candidate_power_product_terminal. ff_h_ftsp_induction_bad_valuation_candidate_power_product_terminal + S (bpv_result_ftsp_induction_bad_valuation_candidate) = S ((S (bpv_candidate_ftsp_induction_bad_valuation)) * ff_v_ftsp_induction_bad_valuation_candidate_power_product)) /\ exists ff_q_ftsp_induction_bad_valuation_candidate_power_product_terminal. ff_u_ftsp_induction_bad_valuation_candidate_power_product = ff_q_ftsp_induction_bad_valuation_candidate_power_product_terminal * S ((S (bpv_candidate_ftsp_induction_bad_valuation)) * ff_v_ftsp_induction_bad_valuation_candidate_power_product) + (bpv_result_ftsp_induction_bad_valuation_candidate))) /\ forall ff_i_ftsp_induction_bad_valuation_candidate_power_product. (exists ff_lt_ftsp_induction_bad_valuation_candidate_power_product_bound. ff_lt_ftsp_induction_bad_valuation_candidate_power_product_bound + S ff_i_ftsp_induction_bad_valuation_candidate_power_product = bpv_candidate_ftsp_induction_bad_valuation) -> exists ff_p_ftsp_induction_bad_valuation_candidate_power_product ff_r_ftsp_induction_bad_valuation_candidate_power_product ff_s_ftsp_induction_bad_valuation_candidate_power_product. ((((exists ff_h_ftsp_induction_bad_valuation_candidate_power_product_factor. ff_h_ftsp_induction_bad_valuation_candidate_power_product_factor + S (ff_p_ftsp_induction_bad_valuation_candidate_power_product) = S ((S (ff_i_ftsp_induction_bad_valuation_candidate_power_product)) * ff_c_ftsp_induction_bad_valuation_candidate_power)) /\ exists ff_q_ftsp_induction_bad_valuation_candidate_power_product_factor. ff_b_ftsp_induction_bad_valuation_candidate_power = ff_q_ftsp_induction_bad_valuation_candidate_power_product_factor * S ((S (ff_i_ftsp_induction_bad_valuation_candidate_power_product)) * ff_c_ftsp_induction_bad_valuation_candidate_power) + (ff_p_ftsp_induction_bad_valuation_candidate_power_product))) /\ ((((exists ff_h_ftsp_induction_bad_valuation_candidate_power_product_partial. ff_h_ftsp_induction_bad_valuation_candidate_power_product_partial + S (ff_r_ftsp_induction_bad_valuation_candidate_power_product) = S ((S (ff_i_ftsp_induction_bad_valuation_candidate_power_product)) * ff_v_ftsp_induction_bad_valuation_candidate_power_product)) /\ exists ff_q_ftsp_induction_bad_valuation_candidate_power_product_partial. ff_u_ftsp_induction_bad_valuation_candidate_power_product = ff_q_ftsp_induction_bad_valuation_candidate_power_product_partial * S ((S (ff_i_ftsp_induction_bad_valuation_candidate_power_product)) * ff_v_ftsp_induction_bad_valuation_candidate_power_product) + (ff_r_ftsp_induction_bad_valuation_candidate_power_product))) /\ ((((exists ff_h_ftsp_induction_bad_valuation_candidate_power_product_successor. ff_h_ftsp_induction_bad_valuation_candidate_power_product_successor + S (ff_s_ftsp_induction_bad_valuation_candidate_power_product) = S ((S (S ff_i_ftsp_induction_bad_valuation_candidate_power_product)) * ff_v_ftsp_induction_bad_valuation_candidate_power_product)) /\ exists ff_q_ftsp_induction_bad_valuation_candidate_power_product_successor. ff_u_ftsp_induction_bad_valuation_candidate_power_product = ff_q_ftsp_induction_bad_valuation_candidate_power_product_successor * S ((S (S ff_i_ftsp_induction_bad_valuation_candidate_power_product)) * ff_v_ftsp_induction_bad_valuation_candidate_power_product) + (ff_s_ftsp_induction_bad_valuation_candidate_power_product))) /\ ff_s_ftsp_induction_bad_valuation_candidate_power_product = ff_r_ftsp_induction_bad_valuation_candidate_power_product * ff_p_ftsp_induction_bad_valuation_candidate_power_product)))))))) /\ (exists bpv_factor_ftsp_induction_bad_valuation_candidate_divides. n = bpv_result_ftsp_induction_bad_valuation_candidate * bpv_factor_ftsp_induction_bad_valuation_candidate_divides))) -> (exists bpv_gap_ftsp_induction_bad_valuation_maximal. bpv_gap_ftsp_induction_bad_valuation_maximal + bpv_candidate_ftsp_induction_bad_valuation = e))
  102. 0102apply power_valuation_exists
  103. 0103cases hvaluation
  104. 0104have heven : exists h. x2 = h + h
  105. 0105specialize hparity x
  106. 0106specialize hparity x2
  107. 0107apply hparity
  108. 0108exact hfactor_witness_left
  109. 0109exact hchoice_right
  110. 0110exact hvaluation_witness
  111. 0111cases heven
  112. 0112have hdivides : exists k. n = x * k
  113. 0113exists x1
  114. 0114exact hfactor_witness_right_witness
  115. 0115have hsquare : exists r. n = (x * x) * r
  116. 0116specialize even_positive_prime_valuation_has_square_divisor x
  117. 0117specialize even_positive_prime_valuation_has_square_divisor n
  118. 0118specialize even_positive_prime_valuation_has_square_divisor x2
  119. 0119specialize even_positive_prime_valuation_has_square_divisor x3
  120. 0120apply even_positive_prime_valuation_has_square_divisor
  121. 0121exact hfactor_witness_left
  122. 0122exact hnonzero
  123. 0123exact hvaluation_witness
  124. 0124exact hdivides
  125. 0125exact heven_witness
  126. 0126cases hsquare
  127. 0127have hsquare_quotient_nonzero : ~(x4 = 0)
  128. 0128intro hzero
  129. 0129apply hnonzero
  130. 0130trans (x * x) * x4
  131. 0131exact hsquare_witness
  132. 0132rewrite hzero
  133. 0133apply PA5
  134. 0134have hprime_nonzero : ~(x = 0)
  135. 0135specialize prime_nonzero x
  136. 0136intro hzero
  137. 0137apply prime_nonzero
  138. 0138exact hfactor_witness_left
  139. 0139exact hzero
  140. 0140have hsquare_ordered : n = x4 * (x * x)
  141. 0141trans (x * x) * x4
  142. 0142exact hsquare_witness
  143. 0143apply mul_comm
  144. 0144have hsquare_parity : (forall ftsp_bad_prime_ftsp_induction_bad_product ftsp_bad_exponent_ftsp_induction_bad_product. ((~(ftsp_bad_prime_ftsp_induction_bad_product = 1) /\ forall frm_prime_left_ftsp_ftsp_induction_bad_product_prime frm_prime_right_ftsp_ftsp_induction_bad_product_prime. ftsp_bad_prime_ftsp_induction_bad_product = frm_prime_left_ftsp_ftsp_induction_bad_product_prime * frm_prime_right_ftsp_ftsp_induction_bad_product_prime -> frm_prime_left_ftsp_ftsp_induction_bad_product_prime = 1 \/ frm_prime_right_ftsp_ftsp_induction_bad_product_prime = 1)) -> (exists ftsc_four_three_ftsp_ftsp_induction_bad_product_three. (ftsp_bad_prime_ftsp_induction_bad_product) = 4 * ftsc_four_three_ftsp_ftsp_induction_bad_product_three + 3) -> (((exists bpv_gap_ftsp_ftsp_induction_bad_product_valuation_exponent_bound. bpv_gap_ftsp_ftsp_induction_bad_product_valuation_exponent_bound + ftsp_bad_exponent_ftsp_induction_bad_product = (x4 * (x * x))) /\ (exists bpv_result_ftsp_ftsp_induction_bad_product_valuation_selected. ((exists ff_b_ftsp_ftsp_induction_bad_product_valuation_selected_power ff_c_ftsp_ftsp_induction_bad_product_valuation_selected_power. ((forall ff_i_ftsp_ftsp_induction_bad_product_valuation_selected_power_repeat. (exists ff_lt_ftsp_ftsp_induction_bad_product_valuation_selected_power_repeat_bound. ff_lt_ftsp_ftsp_induction_bad_product_valuation_selected_power_repeat_bound + S ff_i_ftsp_ftsp_induction_bad_product_valuation_selected_power_repeat = ftsp_bad_exponent_ftsp_induction_bad_product) -> (((exists ff_h_ftsp_ftsp_induction_bad_product_valuation_selected_power_repeat_decoded. ff_h_ftsp_ftsp_induction_bad_product_valuation_selected_power_repeat_decoded + S (ftsp_bad_prime_ftsp_induction_bad_product) = S ((S (ff_i_ftsp_ftsp_induction_bad_product_valuation_selected_power_repeat)) * ff_c_ftsp_ftsp_induction_bad_product_valuation_selected_power)) /\ exists ff_q_ftsp_ftsp_induction_bad_product_valuation_selected_power_repeat_decoded. ff_b_ftsp_ftsp_induction_bad_product_valuation_selected_power = ff_q_ftsp_ftsp_induction_bad_product_valuation_selected_power_repeat_decoded * S ((S (ff_i_ftsp_ftsp_induction_bad_product_valuation_selected_power_repeat)) * ff_c_ftsp_ftsp_induction_bad_product_valuation_selected_power) + (ftsp_bad_prime_ftsp_induction_bad_product)))) /\ (exists ff_u_ftsp_ftsp_induction_bad_product_valuation_selected_power_product ff_v_ftsp_ftsp_induction_bad_product_valuation_selected_power_product. ((((exists ff_h_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_start. ff_h_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_start. ff_u_ftsp_ftsp_induction_bad_product_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_start * S ((S (0)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_selected_power_product) + (1))) /\ ((((exists ff_h_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_terminal. ff_h_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_terminal + S (bpv_result_ftsp_ftsp_induction_bad_product_valuation_selected) = S ((S (ftsp_bad_exponent_ftsp_induction_bad_product)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_terminal. ff_u_ftsp_ftsp_induction_bad_product_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_terminal * S ((S (ftsp_bad_exponent_ftsp_induction_bad_product)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_selected_power_product) + (bpv_result_ftsp_ftsp_induction_bad_product_valuation_selected))) /\ forall ff_i_ftsp_ftsp_induction_bad_product_valuation_selected_power_product. (exists ff_lt_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_bound. ff_lt_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_bound + S ff_i_ftsp_ftsp_induction_bad_product_valuation_selected_power_product = ftsp_bad_exponent_ftsp_induction_bad_product) -> exists ff_p_ftsp_ftsp_induction_bad_product_valuation_selected_power_product ff_r_ftsp_ftsp_induction_bad_product_valuation_selected_power_product ff_s_ftsp_ftsp_induction_bad_product_valuation_selected_power_product. ((((exists ff_h_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_factor. ff_h_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_factor + S (ff_p_ftsp_ftsp_induction_bad_product_valuation_selected_power_product) = S ((S (ff_i_ftsp_ftsp_induction_bad_product_valuation_selected_power_product)) * ff_c_ftsp_ftsp_induction_bad_product_valuation_selected_power)) /\ exists ff_q_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_factor. ff_b_ftsp_ftsp_induction_bad_product_valuation_selected_power = ff_q_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_factor * S ((S (ff_i_ftsp_ftsp_induction_bad_product_valuation_selected_power_product)) * ff_c_ftsp_ftsp_induction_bad_product_valuation_selected_power) + (ff_p_ftsp_ftsp_induction_bad_product_valuation_selected_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_partial. ff_h_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_partial + S (ff_r_ftsp_ftsp_induction_bad_product_valuation_selected_power_product) = S ((S (ff_i_ftsp_ftsp_induction_bad_product_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_partial. ff_u_ftsp_ftsp_induction_bad_product_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_partial * S ((S (ff_i_ftsp_ftsp_induction_bad_product_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_selected_power_product) + (ff_r_ftsp_ftsp_induction_bad_product_valuation_selected_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_successor. ff_h_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_successor + S (ff_s_ftsp_ftsp_induction_bad_product_valuation_selected_power_product) = S ((S (S ff_i_ftsp_ftsp_induction_bad_product_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_successor. ff_u_ftsp_ftsp_induction_bad_product_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_bad_product_valuation_selected_power_product_successor * S ((S (S ff_i_ftsp_ftsp_induction_bad_product_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_selected_power_product) + (ff_s_ftsp_ftsp_induction_bad_product_valuation_selected_power_product))) /\ ff_s_ftsp_ftsp_induction_bad_product_valuation_selected_power_product = ff_r_ftsp_ftsp_induction_bad_product_valuation_selected_power_product * ff_p_ftsp_ftsp_induction_bad_product_valuation_selected_power_product)))))))) /\ (exists bpv_factor_ftsp_ftsp_induction_bad_product_valuation_selected_divides. (x4 * (x * x)) = bpv_result_ftsp_ftsp_induction_bad_product_valuation_selected * bpv_factor_ftsp_ftsp_induction_bad_product_valuation_selected_divides)))) /\ forall bpv_candidate_ftsp_ftsp_induction_bad_product_valuation. (exists bpv_gap_ftsp_ftsp_induction_bad_product_valuation_candidate_bound. bpv_gap_ftsp_ftsp_induction_bad_product_valuation_candidate_bound + bpv_candidate_ftsp_ftsp_induction_bad_product_valuation = (x4 * (x * x))) -> (exists bpv_result_ftsp_ftsp_induction_bad_product_valuation_candidate. ((exists ff_b_ftsp_ftsp_induction_bad_product_valuation_candidate_power ff_c_ftsp_ftsp_induction_bad_product_valuation_candidate_power. ((forall ff_i_ftsp_ftsp_induction_bad_product_valuation_candidate_power_repeat. (exists ff_lt_ftsp_ftsp_induction_bad_product_valuation_candidate_power_repeat_bound. ff_lt_ftsp_ftsp_induction_bad_product_valuation_candidate_power_repeat_bound + S ff_i_ftsp_ftsp_induction_bad_product_valuation_candidate_power_repeat = bpv_candidate_ftsp_ftsp_induction_bad_product_valuation) -> (((exists ff_h_ftsp_ftsp_induction_bad_product_valuation_candidate_power_repeat_decoded. ff_h_ftsp_ftsp_induction_bad_product_valuation_candidate_power_repeat_decoded + S (ftsp_bad_prime_ftsp_induction_bad_product) = S ((S (ff_i_ftsp_ftsp_induction_bad_product_valuation_candidate_power_repeat)) * ff_c_ftsp_ftsp_induction_bad_product_valuation_candidate_power)) /\ exists ff_q_ftsp_ftsp_induction_bad_product_valuation_candidate_power_repeat_decoded. ff_b_ftsp_ftsp_induction_bad_product_valuation_candidate_power = ff_q_ftsp_ftsp_induction_bad_product_valuation_candidate_power_repeat_decoded * S ((S (ff_i_ftsp_ftsp_induction_bad_product_valuation_candidate_power_repeat)) * ff_c_ftsp_ftsp_induction_bad_product_valuation_candidate_power) + (ftsp_bad_prime_ftsp_induction_bad_product)))) /\ (exists ff_u_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product ff_v_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product. ((((exists ff_h_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_start. ff_h_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_start. ff_u_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_start * S ((S (0)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product) + (1))) /\ ((((exists ff_h_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_terminal. ff_h_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_terminal + S (bpv_result_ftsp_ftsp_induction_bad_product_valuation_candidate) = S ((S (bpv_candidate_ftsp_ftsp_induction_bad_product_valuation)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_terminal. ff_u_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_terminal * S ((S (bpv_candidate_ftsp_ftsp_induction_bad_product_valuation)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product) + (bpv_result_ftsp_ftsp_induction_bad_product_valuation_candidate))) /\ forall ff_i_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product. (exists ff_lt_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_bound. ff_lt_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_bound + S ff_i_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product = bpv_candidate_ftsp_ftsp_induction_bad_product_valuation) -> exists ff_p_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product ff_r_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product ff_s_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product. ((((exists ff_h_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_factor. ff_h_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_factor + S (ff_p_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product) = S ((S (ff_i_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product)) * ff_c_ftsp_ftsp_induction_bad_product_valuation_candidate_power)) /\ exists ff_q_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_factor. ff_b_ftsp_ftsp_induction_bad_product_valuation_candidate_power = ff_q_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_factor * S ((S (ff_i_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product)) * ff_c_ftsp_ftsp_induction_bad_product_valuation_candidate_power) + (ff_p_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_partial. ff_h_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_partial + S (ff_r_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product) = S ((S (ff_i_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_partial. ff_u_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_partial * S ((S (ff_i_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product) + (ff_r_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_successor. ff_h_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_successor + S (ff_s_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product) = S ((S (S ff_i_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_successor. ff_u_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product_successor * S ((S (S ff_i_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product) + (ff_s_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product))) /\ ff_s_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product = ff_r_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product * ff_p_ftsp_ftsp_induction_bad_product_valuation_candidate_power_product)))))))) /\ (exists bpv_factor_ftsp_ftsp_induction_bad_product_valuation_candidate_divides. (x4 * (x * x)) = bpv_result_ftsp_ftsp_induction_bad_product_valuation_candidate * bpv_factor_ftsp_ftsp_induction_bad_product_valuation_candidate_divides))) -> (exists bpv_gap_ftsp_ftsp_induction_bad_product_valuation_maximal. bpv_gap_ftsp_ftsp_induction_bad_product_valuation_maximal + bpv_candidate_ftsp_ftsp_induction_bad_product_valuation = ftsp_bad_exponent_ftsp_induction_bad_product)) -> exists ftsp_bad_half_ftsp_induction_bad_product. ftsp_bad_exponent_ftsp_induction_bad_product = ftsp_bad_half_ftsp_induction_bad_product + ftsp_bad_half_ftsp_induction_bad_product)
  145. 0145specialize all_bad_prime_even_valuation_value_eq_transport n
  146. 0146specialize all_bad_prime_even_valuation_value_eq_transport (x4 * (x * x))
  147. 0147apply all_bad_prime_even_valuation_value_eq_transport
  148. 0148exact hsquare_ordered
  149. 0149exact hparity
  150. 0150have hquotient_parity : (forall ftsp_bad_prime_ftsp_induction_bad_prefix ftsp_bad_exponent_ftsp_induction_bad_prefix. ((~(ftsp_bad_prime_ftsp_induction_bad_prefix = 1) /\ forall frm_prime_left_ftsp_ftsp_induction_bad_prefix_prime frm_prime_right_ftsp_ftsp_induction_bad_prefix_prime. ftsp_bad_prime_ftsp_induction_bad_prefix = frm_prime_left_ftsp_ftsp_induction_bad_prefix_prime * frm_prime_right_ftsp_ftsp_induction_bad_prefix_prime -> frm_prime_left_ftsp_ftsp_induction_bad_prefix_prime = 1 \/ frm_prime_right_ftsp_ftsp_induction_bad_prefix_prime = 1)) -> (exists ftsc_four_three_ftsp_ftsp_induction_bad_prefix_three. (ftsp_bad_prime_ftsp_induction_bad_prefix) = 4 * ftsc_four_three_ftsp_ftsp_induction_bad_prefix_three + 3) -> (((exists bpv_gap_ftsp_ftsp_induction_bad_prefix_valuation_exponent_bound. bpv_gap_ftsp_ftsp_induction_bad_prefix_valuation_exponent_bound + ftsp_bad_exponent_ftsp_induction_bad_prefix = (x4)) /\ (exists bpv_result_ftsp_ftsp_induction_bad_prefix_valuation_selected. ((exists ff_b_ftsp_ftsp_induction_bad_prefix_valuation_selected_power ff_c_ftsp_ftsp_induction_bad_prefix_valuation_selected_power. ((forall ff_i_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_repeat. (exists ff_lt_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_repeat_bound. ff_lt_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_repeat_bound + S ff_i_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_repeat = ftsp_bad_exponent_ftsp_induction_bad_prefix) -> (((exists ff_h_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_repeat_decoded. ff_h_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_repeat_decoded + S (ftsp_bad_prime_ftsp_induction_bad_prefix) = S ((S (ff_i_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_repeat)) * ff_c_ftsp_ftsp_induction_bad_prefix_valuation_selected_power)) /\ exists ff_q_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_repeat_decoded. ff_b_ftsp_ftsp_induction_bad_prefix_valuation_selected_power = ff_q_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_repeat_decoded * S ((S (ff_i_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_repeat)) * ff_c_ftsp_ftsp_induction_bad_prefix_valuation_selected_power) + (ftsp_bad_prime_ftsp_induction_bad_prefix)))) /\ (exists ff_u_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product ff_v_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product. ((((exists ff_h_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_start. ff_h_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_start. ff_u_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_start * S ((S (0)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product) + (1))) /\ ((((exists ff_h_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_terminal. ff_h_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_terminal + S (bpv_result_ftsp_ftsp_induction_bad_prefix_valuation_selected) = S ((S (ftsp_bad_exponent_ftsp_induction_bad_prefix)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_terminal. ff_u_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_terminal * S ((S (ftsp_bad_exponent_ftsp_induction_bad_prefix)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product) + (bpv_result_ftsp_ftsp_induction_bad_prefix_valuation_selected))) /\ forall ff_i_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product. (exists ff_lt_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_bound. ff_lt_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_bound + S ff_i_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product = ftsp_bad_exponent_ftsp_induction_bad_prefix) -> exists ff_p_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product ff_r_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product ff_s_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product. ((((exists ff_h_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_factor. ff_h_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_factor + S (ff_p_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product) = S ((S (ff_i_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product)) * ff_c_ftsp_ftsp_induction_bad_prefix_valuation_selected_power)) /\ exists ff_q_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_factor. ff_b_ftsp_ftsp_induction_bad_prefix_valuation_selected_power = ff_q_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_factor * S ((S (ff_i_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product)) * ff_c_ftsp_ftsp_induction_bad_prefix_valuation_selected_power) + (ff_p_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_partial. ff_h_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_partial + S (ff_r_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product) = S ((S (ff_i_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_partial. ff_u_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_partial * S ((S (ff_i_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product) + (ff_r_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_successor. ff_h_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_successor + S (ff_s_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product) = S ((S (S ff_i_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_successor. ff_u_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product = ff_q_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product_successor * S ((S (S ff_i_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product) + (ff_s_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product))) /\ ff_s_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product = ff_r_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product * ff_p_ftsp_ftsp_induction_bad_prefix_valuation_selected_power_product)))))))) /\ (exists bpv_factor_ftsp_ftsp_induction_bad_prefix_valuation_selected_divides. (x4) = bpv_result_ftsp_ftsp_induction_bad_prefix_valuation_selected * bpv_factor_ftsp_ftsp_induction_bad_prefix_valuation_selected_divides)))) /\ forall bpv_candidate_ftsp_ftsp_induction_bad_prefix_valuation. (exists bpv_gap_ftsp_ftsp_induction_bad_prefix_valuation_candidate_bound. bpv_gap_ftsp_ftsp_induction_bad_prefix_valuation_candidate_bound + bpv_candidate_ftsp_ftsp_induction_bad_prefix_valuation = (x4)) -> (exists bpv_result_ftsp_ftsp_induction_bad_prefix_valuation_candidate. ((exists ff_b_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power ff_c_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power. ((forall ff_i_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_repeat. (exists ff_lt_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_repeat_bound. ff_lt_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_repeat_bound + S ff_i_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_repeat = bpv_candidate_ftsp_ftsp_induction_bad_prefix_valuation) -> (((exists ff_h_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_repeat_decoded. ff_h_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_repeat_decoded + S (ftsp_bad_prime_ftsp_induction_bad_prefix) = S ((S (ff_i_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_repeat)) * ff_c_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power)) /\ exists ff_q_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_repeat_decoded. ff_b_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power = ff_q_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_repeat_decoded * S ((S (ff_i_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_repeat)) * ff_c_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power) + (ftsp_bad_prime_ftsp_induction_bad_prefix)))) /\ (exists ff_u_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product ff_v_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product. ((((exists ff_h_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_start. ff_h_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_start. ff_u_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_start * S ((S (0)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product) + (1))) /\ ((((exists ff_h_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_terminal. ff_h_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_terminal + S (bpv_result_ftsp_ftsp_induction_bad_prefix_valuation_candidate) = S ((S (bpv_candidate_ftsp_ftsp_induction_bad_prefix_valuation)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_terminal. ff_u_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_terminal * S ((S (bpv_candidate_ftsp_ftsp_induction_bad_prefix_valuation)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product) + (bpv_result_ftsp_ftsp_induction_bad_prefix_valuation_candidate))) /\ forall ff_i_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product. (exists ff_lt_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_bound. ff_lt_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_bound + S ff_i_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product = bpv_candidate_ftsp_ftsp_induction_bad_prefix_valuation) -> exists ff_p_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product ff_r_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product ff_s_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product. ((((exists ff_h_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_factor. ff_h_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_factor + S (ff_p_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product) = S ((S (ff_i_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product)) * ff_c_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power)) /\ exists ff_q_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_factor. ff_b_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power = ff_q_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_factor * S ((S (ff_i_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product)) * ff_c_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power) + (ff_p_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_partial. ff_h_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_partial + S (ff_r_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product) = S ((S (ff_i_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_partial. ff_u_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_partial * S ((S (ff_i_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product) + (ff_r_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product))) /\ ((((exists ff_h_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_successor. ff_h_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_successor + S (ff_s_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product) = S ((S (S ff_i_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product)) /\ exists ff_q_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_successor. ff_u_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product = ff_q_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product_successor * S ((S (S ff_i_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product)) * ff_v_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product) + (ff_s_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product))) /\ ff_s_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product = ff_r_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product * ff_p_ftsp_ftsp_induction_bad_prefix_valuation_candidate_power_product)))))))) /\ (exists bpv_factor_ftsp_ftsp_induction_bad_prefix_valuation_candidate_divides. (x4) = bpv_result_ftsp_ftsp_induction_bad_prefix_valuation_candidate * bpv_factor_ftsp_ftsp_induction_bad_prefix_valuation_candidate_divides))) -> (exists bpv_gap_ftsp_ftsp_induction_bad_prefix_valuation_maximal. bpv_gap_ftsp_ftsp_induction_bad_prefix_valuation_maximal + bpv_candidate_ftsp_ftsp_induction_bad_prefix_valuation = ftsp_bad_exponent_ftsp_induction_bad_prefix)) -> exists ftsp_bad_half_ftsp_induction_bad_prefix. ftsp_bad_exponent_ftsp_induction_bad_prefix = ftsp_bad_half_ftsp_induction_bad_prefix + ftsp_bad_half_ftsp_induction_bad_prefix)
  151. 0151specialize all_bad_prime_even_valuations_strip_square_factor x
  152. 0152specialize all_bad_prime_even_valuations_strip_square_factor x4
  153. 0153apply all_bad_prime_even_valuations_strip_square_factor
  154. 0154exact hprime_nonzero
  155. 0155exact hsquare_quotient_nonzero
  156. 0156exact hsquare_parity
  157. 0157have hsquare_strict : exists k. k + S x4 = (x * x) * x4
  158. 0158specialize prime_square_times_nonzero_strictly_increases x
  159. 0159specialize prime_square_times_nonzero_strictly_increases x4
  160. 0160apply prime_square_times_nonzero_strictly_increases
  161. 0161exact hfactor_witness_left
  162. 0162exact hsquare_quotient_nonzero
  163. 0163rewrite <- hsquare_witness at hsquare_strict
  164. 0164have hsquare_successor_bound : exists k. k + S x4 = S B
  165. 0165specialize le_trans (S x4)
  166. 0166specialize le_trans n
  167. 0167specialize le_trans (S B)
  168. 0168apply le_trans
  169. 0169exact hsquare_strict
  170. 0170exact hbound
  171. 0171have hsquare_bound : exists k. k + x4 = B
  172. 0172specialize le_of_succ_le_succ x4
  173. 0173specialize le_of_succ_le_succ B
  174. 0174apply le_of_succ_le_succ
  175. 0175exact hsquare_successor_bound
  176. 0176have hquotient_representation : (exists ftsc_first_ftsp_induction_bad_prefix_result ftsc_second_ftsp_induction_bad_prefix_result. (x4) = ftsc_first_ftsp_induction_bad_prefix_result * ftsc_first_ftsp_induction_bad_prefix_result + ftsc_second_ftsp_induction_bad_prefix_result * ftsc_second_ftsp_induction_bad_prefix_result)
  177. 0177specialize IH x4
  178. 0178apply IH
  179. 0179exact hsquare_bound
  180. 0180exact hsquare_quotient_nonzero
  181. 0181exact hquotient_parity
  182. 0182rewrite hsquare_ordered
  183. 0183specialize two_square_representation_preserved_by_square_factor x4
  184. 0184specialize two_square_representation_preserved_by_square_factor x
  185. 0185apply two_square_representation_preserved_by_square_factor
  186. 0186exact hquotient_representation