def remove_absent.list

bend-kit-scheduler@0.4.1.0 · queue_proof.bend:200

import bend-kit-scheduler@0.4.1.0/queue_proof.bend as QueueProof
import Base
import bend-kit-scheduler@0.4.1.0/queue.bend as Q
import bend-kit-scheduler@0.4.1.0/queue_laws.bend as L

200def remove_absent.list(-A: Data, +xs: List<&2, Q.Ticket<A>>, +i: Nat) -> L.absent.list(A, Q.remove.list(A, xs, i), i):
201  match xs:
202    case Nil{}:
203      Unit{}
204    case Con{t, rest}:
205      +r2 = Q.remove.list(A, rest, i)
206      +er = remove_absent.list(A, rest, i)
207      split(c => L.absent.list(A, Q.remove.list.keep(A, c, t, r2), i), Nat.is_eq(Q.id(A, t), i),
208        e => er,
209        e => L.Both{e, er})

Uses (11)

Used by (5)