BT00S3

legendre_sum_functional

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

The finite relational Legendre sum has a unique value.

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 PA statement

forall p n e f. (exists bls_code_bls_functional_left bls_scale_bls_functional_left. ((forall bls_index_bls_functional_left_prefix. (exists bls_gap_bls_functional_left_prefix_bound. bls_gap_bls_functional_left_prefix_bound + S (bls_index_bls_functional_left_prefix) = (n)) -> exists bls_power_bls_functional_left_prefix bls_quotient_bls_functional_left_prefix bls_remainder_bls_functional_left_prefix. ((exists bpvi_b_bls_bls_functional_left_prefix_power bpvi_c_bls_bls_functional_left_prefix_power. ((forall bpvi_i_bls_bls_functional_left_prefix_power. (exists bpvi_repeat_gap_bls_bls_functional_left_prefix_power. bpvi_repeat_gap_bls_bls_functional_left_prefix_power + S bpvi_i_bls_bls_functional_left_prefix_power = S bls_index_bls_functional_left_prefix) -> (((exists bpvi_h_bls_bls_functional_left_prefix_power_repeat. bpvi_h_bls_bls_functional_left_prefix_power_repeat + S (p) = S ((S (bpvi_i_bls_bls_functional_left_prefix_power)) * bpvi_c_bls_bls_functional_left_prefix_power)) /\ exists bpvi_q_bls_bls_functional_left_prefix_power_repeat. bpvi_b_bls_bls_functional_left_prefix_power = bpvi_q_bls_bls_functional_left_prefix_power_repeat * S ((S (bpvi_i_bls_bls_functional_left_prefix_power)) * bpvi_c_bls_bls_functional_left_prefix_power) + (p)))) /\ (exists bpvi_u_bls_bls_functional_left_prefix_power bpvi_v_bls_bls_functional_left_prefix_power. ((((exists bpvi_h_bls_bls_functional_left_prefix_power_start. bpvi_h_bls_bls_functional_left_prefix_power_start + S (1) = S ((S (0)) * bpvi_v_bls_bls_functional_left_prefix_power)) /\ exists bpvi_q_bls_bls_functional_left_prefix_power_start. bpvi_u_bls_bls_functional_left_prefix_power = bpvi_q_bls_bls_functional_left_prefix_power_start * S ((S (0)) * bpvi_v_bls_bls_functional_left_prefix_power) + (1))) /\ ((((exists bpvi_h_bls_bls_functional_left_prefix_power_terminal. bpvi_h_bls_bls_functional_left_prefix_power_terminal + S (bls_power_bls_functional_left_prefix) = S ((S (S bls_index_bls_functional_left_prefix)) * bpvi_v_bls_bls_functional_left_prefix_power)) /\ exists bpvi_q_bls_bls_functional_left_prefix_power_terminal. bpvi_u_bls_bls_functional_left_prefix_power = bpvi_q_bls_bls_functional_left_prefix_power_terminal * S ((S (S bls_index_bls_functional_left_prefix)) * bpvi_v_bls_bls_functional_left_prefix_power) + (bls_power_bls_functional_left_prefix))) /\ forall bpvi_j_bls_bls_functional_left_prefix_power. (exists bpvi_product_gap_bls_bls_functional_left_prefix_power. bpvi_product_gap_bls_bls_functional_left_prefix_power + S bpvi_j_bls_bls_functional_left_prefix_power = S bls_index_bls_functional_left_prefix) -> exists bpvi_factor_bls_bls_functional_left_prefix_power bpvi_partial_bls_bls_functional_left_prefix_power bpvi_successor_bls_bls_functional_left_prefix_power. ((((exists bpvi_h_bls_bls_functional_left_prefix_power_factor. bpvi_h_bls_bls_functional_left_prefix_power_factor + S (bpvi_factor_bls_bls_functional_left_prefix_power) = S ((S (bpvi_j_bls_bls_functional_left_prefix_power)) * bpvi_c_bls_bls_functional_left_prefix_power)) /\ exists bpvi_q_bls_bls_functional_left_prefix_power_factor. bpvi_b_bls_bls_functional_left_prefix_power = bpvi_q_bls_bls_functional_left_prefix_power_factor * S ((S (bpvi_j_bls_bls_functional_left_prefix_power)) * bpvi_c_bls_bls_functional_left_prefix_power) + (bpvi_factor_bls_bls_functional_left_prefix_power))) /\ ((((exists bpvi_h_bls_bls_functional_left_prefix_power_partial. bpvi_h_bls_bls_functional_left_prefix_power_partial + S (bpvi_partial_bls_bls_functional_left_prefix_power) = S ((S (bpvi_j_bls_bls_functional_left_prefix_power)) * bpvi_v_bls_bls_functional_left_prefix_power)) /\ exists bpvi_q_bls_bls_functional_left_prefix_power_partial. bpvi_u_bls_bls_functional_left_prefix_power = bpvi_q_bls_bls_functional_left_prefix_power_partial * S ((S (bpvi_j_bls_bls_functional_left_prefix_power)) * bpvi_v_bls_bls_functional_left_prefix_power) + (bpvi_partial_bls_bls_functional_left_prefix_power))) /\ ((((exists bpvi_h_bls_bls_functional_left_prefix_power_successor. bpvi_h_bls_bls_functional_left_prefix_power_successor + S (bpvi_successor_bls_bls_functional_left_prefix_power) = S ((S (S bpvi_j_bls_bls_functional_left_prefix_power)) * bpvi_v_bls_bls_functional_left_prefix_power)) /\ exists bpvi_q_bls_bls_functional_left_prefix_power_successor. bpvi_u_bls_bls_functional_left_prefix_power = bpvi_q_bls_bls_functional_left_prefix_power_successor * S ((S (S bpvi_j_bls_bls_functional_left_prefix_power)) * bpvi_v_bls_bls_functional_left_prefix_power) + (bpvi_successor_bls_bls_functional_left_prefix_power))) /\ bpvi_successor_bls_bls_functional_left_prefix_power = bpvi_partial_bls_bls_functional_left_prefix_power * bpvi_factor_bls_bls_functional_left_prefix_power)))))))) /\ ((((exists ff_h_bls_bls_functional_left_prefix_quotient_entry. ff_h_bls_bls_functional_left_prefix_quotient_entry + S (bls_quotient_bls_functional_left_prefix) = S ((S (bls_index_bls_functional_left_prefix)) * bls_scale_bls_functional_left)) /\ exists ff_q_bls_bls_functional_left_prefix_quotient_entry. bls_code_bls_functional_left = ff_q_bls_bls_functional_left_prefix_quotient_entry * S ((S (bls_index_bls_functional_left_prefix)) * bls_scale_bls_functional_left) + (bls_quotient_bls_functional_left_prefix))) /\ ((n = bls_power_bls_functional_left_prefix * bls_quotient_bls_functional_left_prefix + bls_remainder_bls_functional_left_prefix /\ exists bls_remainder_gap_bls_functional_left_prefix_division. bls_remainder_gap_bls_functional_left_prefix_division + S (bls_remainder_bls_functional_left_prefix) = bls_power_bls_functional_left_prefix))))) /\ (exists ff_u_bls_bls_functional_left_sum ff_v_bls_bls_functional_left_sum. ((((exists ff_h_bls_bls_functional_left_sum_start. ff_h_bls_bls_functional_left_sum_start + S (0) = S ((S (0)) * ff_v_bls_bls_functional_left_sum)) /\ exists ff_q_bls_bls_functional_left_sum_start. ff_u_bls_bls_functional_left_sum = ff_q_bls_bls_functional_left_sum_start * S ((S (0)) * ff_v_bls_bls_functional_left_sum) + (0))) /\ ((((exists ff_h_bls_bls_functional_left_sum_terminal. ff_h_bls_bls_functional_left_sum_terminal + S (e) = S ((S (n)) * ff_v_bls_bls_functional_left_sum)) /\ exists ff_q_bls_bls_functional_left_sum_terminal. ff_u_bls_bls_functional_left_sum = ff_q_bls_bls_functional_left_sum_terminal * S ((S (n)) * ff_v_bls_bls_functional_left_sum) + (e))) /\ forall ff_i_bls_bls_functional_left_sum. (exists ff_lt_bls_bls_functional_left_sum_bound. ff_lt_bls_bls_functional_left_sum_bound + S ff_i_bls_bls_functional_left_sum = n) -> exists ff_a_bls_bls_functional_left_sum ff_r_bls_bls_functional_left_sum ff_s_bls_bls_functional_left_sum. ((((exists ff_h_bls_bls_functional_left_sum_summand. ff_h_bls_bls_functional_left_sum_summand + S (ff_a_bls_bls_functional_left_sum) = S ((S (ff_i_bls_bls_functional_left_sum)) * bls_scale_bls_functional_left)) /\ exists ff_q_bls_bls_functional_left_sum_summand. bls_code_bls_functional_left = ff_q_bls_bls_functional_left_sum_summand * S ((S (ff_i_bls_bls_functional_left_sum)) * bls_scale_bls_functional_left) + (ff_a_bls_bls_functional_left_sum))) /\ ((((exists ff_h_bls_bls_functional_left_sum_partial. ff_h_bls_bls_functional_left_sum_partial + S (ff_r_bls_bls_functional_left_sum) = S ((S (ff_i_bls_bls_functional_left_sum)) * ff_v_bls_bls_functional_left_sum)) /\ exists ff_q_bls_bls_functional_left_sum_partial. ff_u_bls_bls_functional_left_sum = ff_q_bls_bls_functional_left_sum_partial * S ((S (ff_i_bls_bls_functional_left_sum)) * ff_v_bls_bls_functional_left_sum) + (ff_r_bls_bls_functional_left_sum))) /\ ((((exists ff_h_bls_bls_functional_left_sum_successor. ff_h_bls_bls_functional_left_sum_successor + S (ff_s_bls_bls_functional_left_sum) = S ((S (S ff_i_bls_bls_functional_left_sum)) * ff_v_bls_bls_functional_left_sum)) /\ exists ff_q_bls_bls_functional_left_sum_successor. ff_u_bls_bls_functional_left_sum = ff_q_bls_bls_functional_left_sum_successor * S ((S (S ff_i_bls_bls_functional_left_sum)) * ff_v_bls_bls_functional_left_sum) + (ff_s_bls_bls_functional_left_sum))) /\ ff_s_bls_bls_functional_left_sum = ff_r_bls_bls_functional_left_sum + ff_a_bls_bls_functional_left_sum)))))))) -> (exists bls_code_bls_functional_right bls_scale_bls_functional_right. ((forall bls_index_bls_functional_right_prefix. (exists bls_gap_bls_functional_right_prefix_bound. bls_gap_bls_functional_right_prefix_bound + S (bls_index_bls_functional_right_prefix) = (n)) -> exists bls_power_bls_functional_right_prefix bls_quotient_bls_functional_right_prefix bls_remainder_bls_functional_right_prefix. ((exists bpvi_b_bls_bls_functional_right_prefix_power bpvi_c_bls_bls_functional_right_prefix_power. ((forall bpvi_i_bls_bls_functional_right_prefix_power. (exists bpvi_repeat_gap_bls_bls_functional_right_prefix_power. bpvi_repeat_gap_bls_bls_functional_right_prefix_power + S bpvi_i_bls_bls_functional_right_prefix_power = S bls_index_bls_functional_right_prefix) -> (((exists bpvi_h_bls_bls_functional_right_prefix_power_repeat. bpvi_h_bls_bls_functional_right_prefix_power_repeat + S (p) = S ((S (bpvi_i_bls_bls_functional_right_prefix_power)) * bpvi_c_bls_bls_functional_right_prefix_power)) /\ exists bpvi_q_bls_bls_functional_right_prefix_power_repeat. bpvi_b_bls_bls_functional_right_prefix_power = bpvi_q_bls_bls_functional_right_prefix_power_repeat * S ((S (bpvi_i_bls_bls_functional_right_prefix_power)) * bpvi_c_bls_bls_functional_right_prefix_power) + (p)))) /\ (exists bpvi_u_bls_bls_functional_right_prefix_power bpvi_v_bls_bls_functional_right_prefix_power. ((((exists bpvi_h_bls_bls_functional_right_prefix_power_start. bpvi_h_bls_bls_functional_right_prefix_power_start + S (1) = S ((S (0)) * bpvi_v_bls_bls_functional_right_prefix_power)) /\ exists bpvi_q_bls_bls_functional_right_prefix_power_start. bpvi_u_bls_bls_functional_right_prefix_power = bpvi_q_bls_bls_functional_right_prefix_power_start * S ((S (0)) * bpvi_v_bls_bls_functional_right_prefix_power) + (1))) /\ ((((exists bpvi_h_bls_bls_functional_right_prefix_power_terminal. bpvi_h_bls_bls_functional_right_prefix_power_terminal + S (bls_power_bls_functional_right_prefix) = S ((S (S bls_index_bls_functional_right_prefix)) * bpvi_v_bls_bls_functional_right_prefix_power)) /\ exists bpvi_q_bls_bls_functional_right_prefix_power_terminal. bpvi_u_bls_bls_functional_right_prefix_power = bpvi_q_bls_bls_functional_right_prefix_power_terminal * S ((S (S bls_index_bls_functional_right_prefix)) * bpvi_v_bls_bls_functional_right_prefix_power) + (bls_power_bls_functional_right_prefix))) /\ forall bpvi_j_bls_bls_functional_right_prefix_power. (exists bpvi_product_gap_bls_bls_functional_right_prefix_power. bpvi_product_gap_bls_bls_functional_right_prefix_power + S bpvi_j_bls_bls_functional_right_prefix_power = S bls_index_bls_functional_right_prefix) -> exists bpvi_factor_bls_bls_functional_right_prefix_power bpvi_partial_bls_bls_functional_right_prefix_power bpvi_successor_bls_bls_functional_right_prefix_power. ((((exists bpvi_h_bls_bls_functional_right_prefix_power_factor. bpvi_h_bls_bls_functional_right_prefix_power_factor + S (bpvi_factor_bls_bls_functional_right_prefix_power) = S ((S (bpvi_j_bls_bls_functional_right_prefix_power)) * bpvi_c_bls_bls_functional_right_prefix_power)) /\ exists bpvi_q_bls_bls_functional_right_prefix_power_factor. bpvi_b_bls_bls_functional_right_prefix_power = bpvi_q_bls_bls_functional_right_prefix_power_factor * S ((S (bpvi_j_bls_bls_functional_right_prefix_power)) * bpvi_c_bls_bls_functional_right_prefix_power) + (bpvi_factor_bls_bls_functional_right_prefix_power))) /\ ((((exists bpvi_h_bls_bls_functional_right_prefix_power_partial. bpvi_h_bls_bls_functional_right_prefix_power_partial + S (bpvi_partial_bls_bls_functional_right_prefix_power) = S ((S (bpvi_j_bls_bls_functional_right_prefix_power)) * bpvi_v_bls_bls_functional_right_prefix_power)) /\ exists bpvi_q_bls_bls_functional_right_prefix_power_partial. bpvi_u_bls_bls_functional_right_prefix_power = bpvi_q_bls_bls_functional_right_prefix_power_partial * S ((S (bpvi_j_bls_bls_functional_right_prefix_power)) * bpvi_v_bls_bls_functional_right_prefix_power) + (bpvi_partial_bls_bls_functional_right_prefix_power))) /\ ((((exists bpvi_h_bls_bls_functional_right_prefix_power_successor. bpvi_h_bls_bls_functional_right_prefix_power_successor + S (bpvi_successor_bls_bls_functional_right_prefix_power) = S ((S (S bpvi_j_bls_bls_functional_right_prefix_power)) * bpvi_v_bls_bls_functional_right_prefix_power)) /\ exists bpvi_q_bls_bls_functional_right_prefix_power_successor. bpvi_u_bls_bls_functional_right_prefix_power = bpvi_q_bls_bls_functional_right_prefix_power_successor * S ((S (S bpvi_j_bls_bls_functional_right_prefix_power)) * bpvi_v_bls_bls_functional_right_prefix_power) + (bpvi_successor_bls_bls_functional_right_prefix_power))) /\ bpvi_successor_bls_bls_functional_right_prefix_power = bpvi_partial_bls_bls_functional_right_prefix_power * bpvi_factor_bls_bls_functional_right_prefix_power)))))))) /\ ((((exists ff_h_bls_bls_functional_right_prefix_quotient_entry. ff_h_bls_bls_functional_right_prefix_quotient_entry + S (bls_quotient_bls_functional_right_prefix) = S ((S (bls_index_bls_functional_right_prefix)) * bls_scale_bls_functional_right)) /\ exists ff_q_bls_bls_functional_right_prefix_quotient_entry. bls_code_bls_functional_right = ff_q_bls_bls_functional_right_prefix_quotient_entry * S ((S (bls_index_bls_functional_right_prefix)) * bls_scale_bls_functional_right) + (bls_quotient_bls_functional_right_prefix))) /\ ((n = bls_power_bls_functional_right_prefix * bls_quotient_bls_functional_right_prefix + bls_remainder_bls_functional_right_prefix /\ exists bls_remainder_gap_bls_functional_right_prefix_division. bls_remainder_gap_bls_functional_right_prefix_division + S (bls_remainder_bls_functional_right_prefix) = bls_power_bls_functional_right_prefix))))) /\ (exists ff_u_bls_bls_functional_right_sum ff_v_bls_bls_functional_right_sum. ((((exists ff_h_bls_bls_functional_right_sum_start. ff_h_bls_bls_functional_right_sum_start + S (0) = S ((S (0)) * ff_v_bls_bls_functional_right_sum)) /\ exists ff_q_bls_bls_functional_right_sum_start. ff_u_bls_bls_functional_right_sum = ff_q_bls_bls_functional_right_sum_start * S ((S (0)) * ff_v_bls_bls_functional_right_sum) + (0))) /\ ((((exists ff_h_bls_bls_functional_right_sum_terminal. ff_h_bls_bls_functional_right_sum_terminal + S (f) = S ((S (n)) * ff_v_bls_bls_functional_right_sum)) /\ exists ff_q_bls_bls_functional_right_sum_terminal. ff_u_bls_bls_functional_right_sum = ff_q_bls_bls_functional_right_sum_terminal * S ((S (n)) * ff_v_bls_bls_functional_right_sum) + (f))) /\ forall ff_i_bls_bls_functional_right_sum. (exists ff_lt_bls_bls_functional_right_sum_bound. ff_lt_bls_bls_functional_right_sum_bound + S ff_i_bls_bls_functional_right_sum = n) -> exists ff_a_bls_bls_functional_right_sum ff_r_bls_bls_functional_right_sum ff_s_bls_bls_functional_right_sum. ((((exists ff_h_bls_bls_functional_right_sum_summand. ff_h_bls_bls_functional_right_sum_summand + S (ff_a_bls_bls_functional_right_sum) = S ((S (ff_i_bls_bls_functional_right_sum)) * bls_scale_bls_functional_right)) /\ exists ff_q_bls_bls_functional_right_sum_summand. bls_code_bls_functional_right = ff_q_bls_bls_functional_right_sum_summand * S ((S (ff_i_bls_bls_functional_right_sum)) * bls_scale_bls_functional_right) + (ff_a_bls_bls_functional_right_sum))) /\ ((((exists ff_h_bls_bls_functional_right_sum_partial. ff_h_bls_bls_functional_right_sum_partial + S (ff_r_bls_bls_functional_right_sum) = S ((S (ff_i_bls_bls_functional_right_sum)) * ff_v_bls_bls_functional_right_sum)) /\ exists ff_q_bls_bls_functional_right_sum_partial. ff_u_bls_bls_functional_right_sum = ff_q_bls_bls_functional_right_sum_partial * S ((S (ff_i_bls_bls_functional_right_sum)) * ff_v_bls_bls_functional_right_sum) + (ff_r_bls_bls_functional_right_sum))) /\ ((((exists ff_h_bls_bls_functional_right_sum_successor. ff_h_bls_bls_functional_right_sum_successor + S (ff_s_bls_bls_functional_right_sum) = S ((S (S ff_i_bls_bls_functional_right_sum)) * ff_v_bls_bls_functional_right_sum)) /\ exists ff_q_bls_bls_functional_right_sum_successor. ff_u_bls_bls_functional_right_sum = ff_q_bls_bls_functional_right_sum_successor * S ((S (S ff_i_bls_bls_functional_right_sum)) * ff_v_bls_bls_functional_right_sum) + (ff_s_bls_bls_functional_right_sum))) /\ ff_s_bls_bls_functional_right_sum = ff_r_bls_bls_functional_right_sum + ff_a_bls_bls_functional_right_sum)))))))) -> e = f

Structural proof guide

The finite relational Legendre sum has a unique value.

Direct prerequisites: power_quotient_prefix_transport, beta_sum_transport_prefix, beta_sum_functional. The authored body proceeds by case analysis (6), intermediate claims (2).

Proof neighborhood

Direct dependencies

Direct dependents

Formal native tactic body

Dependencies are hypotheses of the historical Alpha-v12 body receipt. The complete historical Alpha-v18 proof bundle independently checks every dependency; current Alpha v25 preserves that checked theorem use without changing Stable membership.

Read the argument

Proof checkpoints

49 script commands · 8 reading checkpoints · 2 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 (3)

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–6

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

  1. L1
    intro p
  2. L2
    intro n
  3. L3
    intro e
  4. L4
    intro f
  5. L5
    intro he
  6. L6
    intro hf
02Separate the logical casesL7–12

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

  1. L7
    cases he
  2. L8
    cases he_witness
  3. L9
    cases he_witness_witness
  4. L10
    cases hf
  5. L11
    cases hf_witness
  6. L12
    cases hf_witness_witness
03Establish htransportedL13–21

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum transport prefix.

  1. L13
    have htransported : Sum(x2,x3,n,e)Definitions: Sum
  2. L14
    specialize beta_sum_transport_prefix x
  3. L15
    specialize beta_sum_transport_prefix x1
  4. L16
    specialize beta_sum_transport_prefix x2
  5. L17
    specialize beta_sum_transport_prefix x3
  6. L18
    specialize beta_sum_transport_prefix n
  7. L19
    specialize beta_sum_transport_prefix e
  8. L20
    apply beta_sum_transport_prefix
  9. L21
    exact he_witness_witness_right
04Establish hpointwiseL22–31

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

  1. L22
    have hpointwise : forall i a. (exists bls_gap_bls_functional_bound. bls_gap_bls_functional_bound + S (i) = (n)) -> (((exists ff_h_bls_functional_source_entry. ff_h_bls_functional_source_entry + S (a) = S ((S (i)) * x1)) /\ exists ff_q_bls_functional_source_entry. x = ff_q_bls_functional_source_entry * S ((S (i)) * x1) + (a))) -> (((exists ff_h_bls_functional_target_entry. ff_h_bls_functional_target_entry + S (a) = S ((S (i)) * x3)) /\ exists ff_q_bls_functional_target_entry. x2 = ff_q_bls_functional_target_entry * S ((S (i)) * x3) + (a)))
  2. L23
    specialize power_quotient_prefix_transport p
  3. L24
    specialize power_quotient_prefix_transport n
  4. L25
    specialize power_quotient_prefix_transport x
  5. L26
    specialize power_quotient_prefix_transport x1
  6. L27
    specialize power_quotient_prefix_transport x2
  7. L28
    specialize power_quotient_prefix_transport x3
  8. L29
    specialize power_quotient_prefix_transport n
  9. L30
    apply power_quotient_prefix_transport
  10. L31
    exact he_witness_witness_left
05Use earlier factsL32–32

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

  1. L32
    exact hf_witness_witness_left
06Fix variables and assumptionsL33–36

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

  1. L33
    intro i
  2. L34
    intro a
  3. L35
    intro hi
  4. L36
    intro ha
07Use earlier factsL37–46

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

  1. L37
    specialize hpointwise i
  2. L38
    specialize hpointwise a
  3. L39
    apply hpointwise
  4. L40
    exact hi
  5. L41
    exact ha
  6. L42
    specialize beta_sum_functional x2
  7. L43
    specialize beta_sum_functional x3
  8. L44
    specialize beta_sum_functional n
  9. L45
    specialize beta_sum_functional e
  10. L46
    specialize beta_sum_functional f
08Use earlier factsL47–49

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

  1. L47
    apply beta_sum_functional
  2. L48
    exact htransported
  3. L49
    exact hf_witness_witness_right

Library-wide reading audit

Original exact command ledger · 49 lines
  1. 0001intro p
  2. 0002intro n
  3. 0003intro e
  4. 0004intro f
  5. 0005intro he
  6. 0006intro hf
  7. 0007cases he
  8. 0008cases he_witness
  9. 0009cases he_witness_witness
  10. 0010cases hf
  11. 0011cases hf_witness
  12. 0012cases hf_witness_witness
  13. 0013have htransported : exists ff_u_bls_functional_transported ff_v_bls_functional_transported. ((((exists ff_h_bls_functional_transported_start. ff_h_bls_functional_transported_start + S (0) = S ((S (0)) * ff_v_bls_functional_transported)) /\ exists ff_q_bls_functional_transported_start. ff_u_bls_functional_transported = ff_q_bls_functional_transported_start * S ((S (0)) * ff_v_bls_functional_transported) + (0))) /\ ((((exists ff_h_bls_functional_transported_terminal. ff_h_bls_functional_transported_terminal + S (e) = S ((S (n)) * ff_v_bls_functional_transported)) /\ exists ff_q_bls_functional_transported_terminal. ff_u_bls_functional_transported = ff_q_bls_functional_transported_terminal * S ((S (n)) * ff_v_bls_functional_transported) + (e))) /\ forall ff_i_bls_functional_transported. (exists ff_lt_bls_functional_transported_bound. ff_lt_bls_functional_transported_bound + S ff_i_bls_functional_transported = n) -> exists ff_a_bls_functional_transported ff_r_bls_functional_transported ff_s_bls_functional_transported. ((((exists ff_h_bls_functional_transported_summand. ff_h_bls_functional_transported_summand + S (ff_a_bls_functional_transported) = S ((S (ff_i_bls_functional_transported)) * x3)) /\ exists ff_q_bls_functional_transported_summand. x2 = ff_q_bls_functional_transported_summand * S ((S (ff_i_bls_functional_transported)) * x3) + (ff_a_bls_functional_transported))) /\ ((((exists ff_h_bls_functional_transported_partial. ff_h_bls_functional_transported_partial + S (ff_r_bls_functional_transported) = S ((S (ff_i_bls_functional_transported)) * ff_v_bls_functional_transported)) /\ exists ff_q_bls_functional_transported_partial. ff_u_bls_functional_transported = ff_q_bls_functional_transported_partial * S ((S (ff_i_bls_functional_transported)) * ff_v_bls_functional_transported) + (ff_r_bls_functional_transported))) /\ ((((exists ff_h_bls_functional_transported_successor. ff_h_bls_functional_transported_successor + S (ff_s_bls_functional_transported) = S ((S (S ff_i_bls_functional_transported)) * ff_v_bls_functional_transported)) /\ exists ff_q_bls_functional_transported_successor. ff_u_bls_functional_transported = ff_q_bls_functional_transported_successor * S ((S (S ff_i_bls_functional_transported)) * ff_v_bls_functional_transported) + (ff_s_bls_functional_transported))) /\ ff_s_bls_functional_transported = ff_r_bls_functional_transported + ff_a_bls_functional_transported)))))
  14. 0014specialize beta_sum_transport_prefix x
  15. 0015specialize beta_sum_transport_prefix x1
  16. 0016specialize beta_sum_transport_prefix x2
  17. 0017specialize beta_sum_transport_prefix x3
  18. 0018specialize beta_sum_transport_prefix n
  19. 0019specialize beta_sum_transport_prefix e
  20. 0020apply beta_sum_transport_prefix
  21. 0021exact he_witness_witness_right
  22. 0022have hpointwise : forall i a. (exists bls_gap_bls_functional_bound. bls_gap_bls_functional_bound + S (i) = (n)) -> (((exists ff_h_bls_functional_source_entry. ff_h_bls_functional_source_entry + S (a) = S ((S (i)) * x1)) /\ exists ff_q_bls_functional_source_entry. x = ff_q_bls_functional_source_entry * S ((S (i)) * x1) + (a))) -> (((exists ff_h_bls_functional_target_entry. ff_h_bls_functional_target_entry + S (a) = S ((S (i)) * x3)) /\ exists ff_q_bls_functional_target_entry. x2 = ff_q_bls_functional_target_entry * S ((S (i)) * x3) + (a)))
  23. 0023specialize power_quotient_prefix_transport p
  24. 0024specialize power_quotient_prefix_transport n
  25. 0025specialize power_quotient_prefix_transport x
  26. 0026specialize power_quotient_prefix_transport x1
  27. 0027specialize power_quotient_prefix_transport x2
  28. 0028specialize power_quotient_prefix_transport x3
  29. 0029specialize power_quotient_prefix_transport n
  30. 0030apply power_quotient_prefix_transport
  31. 0031exact he_witness_witness_left
  32. 0032exact hf_witness_witness_left
  33. 0033intro i
  34. 0034intro a
  35. 0035intro hi
  36. 0036intro ha
  37. 0037specialize hpointwise i
  38. 0038specialize hpointwise a
  39. 0039apply hpointwise
  40. 0040exact hi
  41. 0041exact ha
  42. 0042specialize beta_sum_functional x2
  43. 0043specialize beta_sum_functional x3
  44. 0044specialize beta_sum_functional n
  45. 0045specialize beta_sum_functional e
  46. 0046specialize beta_sum_functional f
  47. 0047apply beta_sum_functional
  48. 0048exact htransported
  49. 0049exact hf_witness_witness_right