def net.gapp

bend-osdev-apparmor@0.1.0.0 · PROOF.bend:3610

import bend-osdev-apparmor@0.1.0.0/PROOF.bend as PROOF
import Base
import bend-osdev-apparmor@0.1.0.0/perm.bend as P
import bend-osdev-apparmor@0.1.0.0/rule_network.bend as RN

3610def net.gapp(+xs: List<&2, RN.AaNetRule>, +ys: List<&2, RN.AaNetRule>, +q: RN.AaNetQuery) -> {RN.AaNetRule.grants(RN.AaNetRule.append(xs, ys), q) == P.AaGrant.append(RN.AaNetRule.grants(xs, q), RN.AaNetRule.grants(ys, q)) : List<&2, P.AaGrant>}:
3611  Equal.trans(List<&2, P.AaGrant>, RN.AaNetRule.grants.of(RN.AaNetRule.matching(RN.AaNetRule.append(xs, ys), q)), RN.AaNetRule.grants.of(RN.AaNetRule.append(RN.AaNetRule.matching(xs, q), RN.AaNetRule.matching(ys, q))), P.AaGrant.append(RN.AaNetRule.grants(xs, q), RN.AaNetRule.grants(ys, q)), Equal.cong(List<&2, RN.AaNetRule>, List<&2, P.AaGrant>, x => RN.AaNetRule.grants.of(x), RN.AaNetRule.matching(RN.AaNetRule.append(xs, ys), q), RN.AaNetRule.append(RN.AaNetRule.matching(xs, q), RN.AaNetRule.matching(ys, q)), net.match_app(xs, ys, q)), net.gof_app(RN.AaNetRule.matching(xs, q), RN.AaNetRule.matching(ys, q)))

Uses (13)

Used by (1)