BT00XY

double_quotient_carry_prefix_all_bits

Alpha body-checked ยท checked-use disabled

Every value in a carry prefix is zero or one.

Exact expanded PA statement

forall b c d e f g l. (forall b5cc_index_b5ccpab_source. (exists bcf_lt_gap_b5ccpab_source_bound. bcf_lt_gap_b5ccpab_source_bound + S (b5cc_index_b5ccpab_source) = l) -> exists b5cc_left_b5ccpab_source b5cc_right_b5ccpab_source b5cc_bit_b5ccpab_source. (((exists fs_h_b5cc_b5ccpab_source_left. fs_h_b5cc_b5ccpab_source_left + S (b5cc_left_b5ccpab_source) = S ((S (b5cc_index_b5ccpab_source)) * c)) /\ exists fs_q_b5cc_b5ccpab_source_left. b = fs_q_b5cc_b5ccpab_source_left * S ((S (b5cc_index_b5ccpab_source)) * c) + (b5cc_left_b5ccpab_source))) /\ ((((exists fs_h_b5cc_b5ccpab_source_right. fs_h_b5cc_b5ccpab_source_right + S (b5cc_right_b5ccpab_source) = S ((S (b5cc_index_b5ccpab_source)) * e)) /\ exists fs_q_b5cc_b5ccpab_source_right. d = fs_q_b5cc_b5ccpab_source_right * S ((S (b5cc_index_b5ccpab_source)) * e) + (b5cc_right_b5ccpab_source))) /\ ((((exists fs_h_b5cc_b5ccpab_source_bit. fs_h_b5cc_b5ccpab_source_bit + S (b5cc_bit_b5ccpab_source) = S ((S (b5cc_index_b5ccpab_source)) * g)) /\ exists fs_q_b5cc_b5ccpab_source_bit. f = fs_q_b5cc_b5ccpab_source_bit * S ((S (b5cc_index_b5ccpab_source)) * g) + (b5cc_bit_b5ccpab_source))) /\ (((b5cc_bit_b5ccpab_source = 0 /\ b5cc_right_b5ccpab_source = b5cc_left_b5ccpab_source + b5cc_left_b5ccpab_source) \/ (b5cc_bit_b5ccpab_source = 1 /\ b5cc_right_b5ccpab_source = S (b5cc_left_b5ccpab_source + b5cc_left_b5ccpab_source))))))) -> (forall ff_i_b5ccpab_result. (exists ff_lt_b5ccpab_result_bound. ff_lt_b5ccpab_result_bound + S ff_i_b5ccpab_result = l) -> exists ff_bit_b5ccpab_result. ((((exists ff_h_b5ccpab_result_decoded. ff_h_b5ccpab_result_decoded + S (ff_bit_b5ccpab_result) = S ((S (ff_i_b5ccpab_result)) * g)) /\ exists ff_q_b5ccpab_result_decoded. f = ff_q_b5ccpab_result_decoded * S ((S (ff_i_b5ccpab_result)) * g) + (ff_bit_b5ccpab_result))) /\ (ff_bit_b5ccpab_result = 0 \/ ff_bit_b5ccpab_result = 1)))

Structural proof guide

Every value in a carry prefix is zero or one.

Direct prerequisites: none. The authored body proceeds by case analysis (9), intermediate claims (1).

Proof neighborhood

Direct dependencies

none

Direct dependents

Formal native tactic body

Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.

  1. 0001intro b
  2. 0002intro c
  3. 0003intro d
  4. 0004intro e
  5. 0005intro f
  6. 0006intro g
  7. 0007intro l
  8. 0008intro hprefix
  9. 0009intro i
  10. 0010intro hi
  11. 0011have hpoint : exists q Q bit. (((exists fs_h_b5ccpab_point_left. fs_h_b5ccpab_point_left + S (q) = S ((S (i)) * c)) /\ exists fs_q_b5ccpab_point_left. b = fs_q_b5ccpab_point_left * S ((S (i)) * c) + (q))) /\ ((((exists fs_h_b5ccpab_point_right. fs_h_b5ccpab_point_right + S (Q) = S ((S (i)) * e)) /\ exists fs_q_b5ccpab_point_right. d = fs_q_b5ccpab_point_right * S ((S (i)) * e) + (Q))) /\ ((((exists fs_h_b5ccpab_point_bit. fs_h_b5ccpab_point_bit + S (bit) = S ((S (i)) * g)) /\ exists fs_q_b5ccpab_point_bit. f = fs_q_b5ccpab_point_bit * S ((S (i)) * g) + (bit))) /\ (((bit = 0 /\ Q = q + q) \/ (bit = 1 /\ Q = S (q + q))))))
  12. 0012specialize hprefix i
  13. 0013apply hprefix
  14. 0014exact hi
  15. 0015cases hpoint
  16. 0016cases hpoint_witness
  17. 0017cases hpoint_witness_witness
  18. 0018cases hpoint_witness_witness_witness
  19. 0019cases hpoint_witness_witness_witness_right
  20. 0020cases hpoint_witness_witness_witness_right_right
  21. 0021exists x2
  22. 0022split
  23. 0023exact hpoint_witness_witness_witness_right_right_left
  24. 0024cases hpoint_witness_witness_witness_right_right_right
  25. 0025cases hpoint_witness_witness_witness_right_right_right_left
  26. 0026left
  27. 0027exact hpoint_witness_witness_witness_right_right_right_left_left
  28. 0028cases hpoint_witness_witness_witness_right_right_right_right
  29. 0029right
  30. 0030exact hpoint_witness_witness_witness_right_right_right_right_left