def fixed_rate_future

bend-kit-scheduler@0.4.1.0 · recurrence_proof.bend:47

import bend-kit-scheduler@0.4.1.0/recurrence_proof.bend as RecurrenceProof
import Base
import bend-mathlib@0.7.4.0/nat.bend as N

47def fixed_rate_future(+previous: Nat, +completion: Nat, +p: Nat,
48  order: Or(N.le(previous, completion), N.le(completion, previous)))
49  -> N.lt(completion,
50    Nat.add(previous, Nat.mul(1n+Nat.div(Nat.sub(completion, previous), 1n+p), 1n+p))):
51  match order:
52    case Inl{h}:
53      %N.add_sub_of_le(previous, completion, h)
54        : N.lt(_, Nat.add(previous,
55          Nat.mul(1n+Nat.div(Nat.sub(completion, previous), 1n+p), 1n+p)))
56      N.add_lt_add_left(Nat.sub(completion, previous),
57        Nat.mul(1n+Nat.div(Nat.sub(completion, previous), 1n+p), 1n+p), previous,
58        quotient_future(Nat.sub(completion, previous), p))
59    case Inr{+h}:
60      %Equal.sym(Nat, Nat.sub(completion, previous), 0n,
61        N.sub_eq_zero_of_le(completion, previous, h))
62        : N.lt(completion, Nat.add(previous, Nat.mul(1n+Nat.div(_, 1n+p), 1n+p)))
63      %Equal.sym(Nat, Nat.add(p, 0n), p, N.add_zero(p))
64        : N.lt(completion, Nat.add(previous, 1n+_))
65      N.lt_of_le_of_lt(completion, previous, Nat.add(previous, 1n+p), h,
66        N.lt_add_of_pos_right(previous, p))

Uses (17)

Used by (1)