BT0085

beta_range_succ_extend

Stable ยท empty-context checked

Recode a consecutive prefix and append its next value.

Exact expanded PA statement

forall b c a l sl. sl = S l -> (forall ff_i_before. (exists ff_lt_before_bound. ff_lt_before_bound + S ff_i_before = l) -> (((exists ff_h_before_decoded. ff_h_before_decoded + S (a + ff_i_before) = S ((S (ff_i_before)) * c)) /\ exists ff_q_before_decoded. b = ff_q_before_decoded * S ((S (ff_i_before)) * c) + (a + ff_i_before)))) -> exists z d. (forall ff_i_after. (exists ff_lt_after_bound. ff_lt_after_bound + S ff_i_after = sl) -> (((exists ff_h_after_decoded. ff_h_after_decoded + S (a + ff_i_after) = S ((S (ff_i_after)) * d)) /\ exists ff_q_after_decoded. z = ff_q_after_decoded * S ((S (ff_i_after)) * d) + (a + ff_i_after))))

Structural proof guide

Recode a consecutive prefix and append its next value.

Direct prerequisites: beta_prefix_extend, le_of_succ_le_succ, le_eq_or_lt. The authored body proceeds by case analysis (4), intermediate claims (2), equality transport (5).

Proof neighborhood

Direct dependencies

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 a
  4. 0004intro l
  5. 0005intro sl
  6. 0006intro hsl
  7. 0007intro hrange
  8. 0008specialize beta_prefix_extend l
  9. 0009specialize beta_prefix_extend b
  10. 0010specialize beta_prefix_extend c
  11. 0011specialize beta_prefix_extend (a + l)
  12. 0012cases beta_prefix_extend
  13. 0013cases beta_prefix_extend_witness
  14. 0014cases beta_prefix_extend_witness_witness
  15. 0015exists x
  16. 0016exists x1
  17. 0017intro i
  18. 0018intro hi
  19. 0019rewrite hsl at hi
  20. 0020have hil : exists h. h + i = l
  21. 0021specialize le_of_succ_le_succ i
  22. 0022specialize le_of_succ_le_succ l
  23. 0023apply le_of_succ_le_succ
  24. 0024exact hi
  25. 0025have hsplit : i = l \/ exists h. h + S i = l
  26. 0026specialize le_eq_or_lt i
  27. 0027specialize le_eq_or_lt l
  28. 0028apply le_eq_or_lt
  29. 0029exact hil
  30. 0030cases hsplit
  31. 0031rewrite hsplit_left
  32. 0032rewrite hsplit_left
  33. 0033rewrite hsplit_left
  34. 0034rewrite hsplit_left
  35. 0035exact beta_prefix_extend_witness_witness_left
  36. 0036specialize beta_prefix_extend_witness_witness_right i
  37. 0037specialize beta_prefix_extend_witness_witness_right (a + i)
  38. 0038apply beta_prefix_extend_witness_witness_right
  39. 0039exact hsplit_right
  40. 0040specialize hrange i
  41. 0041apply hrange
  42. 0042exact hsplit_right