def cs.p.r2

bend-osdev-caps@0.1.0.0 · PROOF.bend:834

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

834def cs.p.r2(+ok: Bool, +c: C.CapCred, +e: C.CapSet(), +p: C.CapSet(), +i: C.CapSet()) -> {C.CapSet.subset(p, C.CapState.permitted(C.CapCred.sets(c))) == True{} : Bool} -> {C.CapSet.subset(C.CapState.permitted(C.CapCred.sets(C.Caps.or(A.CapAdjust.capset.r2(ok, c, e, p, i), c))), C.CapState.permitted(C.CapCred.sets(c))) == True{} : Bool}:
835  match ok:
836    case False{}:
837      h => set.sub_refl(C.CapState.permitted(C.CapCred.sets(c)))
838    case True{}:
839      h => cs.p.r3(C.CapSet.subset(i, C.CapSet.union(C.CapState.inheritable(C.CapCred.sets(c)), C.CapState.bounding(C.CapCred.sets(c)))), c, e, p, i)(h)

Uses (13)

Used by (1)