def bd.sub
bend-osdev-caps@0.1.0.0 · PROOF.bend:918
import bend-osdev-caps@0.1.0.0/PROOF.bend as PROOF
import Base
import bend-osdev-caps@0.1.0.0/caps.bend as C
import bend-osdev-caps@0.1.0.0/adjust.bend as A
918
919def bd.sub(+v: Bool, +sp: Bool, +c: C.CapCred, +x: U32) -> {C.CapSet.subset(C.CapState.bounding(C.CapCred.sets(C.Caps.or(A.CapAdjust.bset_drop.go(v, sp, c, x), c))), C.CapState.bounding(C.CapCred.sets(c))) == True{} : Bool}:
920 match v sp c:
921 case False{} sp c:
922 set.sub_refl(C.CapState.bounding(C.CapCred.sets(c)))
923 case True{} False{} c:
924 set.sub_refl(C.CapState.bounding(C.CapCred.sets(c)))
925 case True{} True{} C.CapCred{r, eu, sv, nr, na, C.CapState{+p, +i, +e, +b, +a}}:
926 set.sub_minus(b, C.CapSet.of(x))