def net.match_app
bend-osdev-apparmor@0.1.0.0 · PROOF.bend:3594
import bend-osdev-apparmor@0.1.0.0/PROOF.bend as PROOF
import Base
import bend-osdev-apparmor@0.1.0.0/rule_network.bend as RN
3594def net.match_app(+xs: List<&2, RN.AaNetRule>, +ys: List<&2, RN.AaNetRule>, +q: RN.AaNetQuery) -> {RN.AaNetRule.matching(RN.AaNetRule.append(xs, ys), q) == RN.AaNetRule.append(RN.AaNetRule.matching(xs, q), RN.AaNetRule.matching(ys, q)) : List<&2, RN.AaNetRule>}:
3595 match xs:
3596 case Nil{}:
3597 {==}
3598 case Con{r, t}:
3599 Equal.trans(List<&2, RN.AaNetRule>, RN.AaNetRule.matching.go(RN.AaNetRule.matches(r, q), r, RN.AaNetRule.matching(RN.AaNetRule.append(t, ys), q)), RN.AaNetRule.matching.go(RN.AaNetRule.matches(r, q), r, RN.AaNetRule.append(RN.AaNetRule.matching(t, q), RN.AaNetRule.matching(ys, q))), RN.AaNetRule.append(RN.AaNetRule.matching.go(RN.AaNetRule.matches(r, q), r, RN.AaNetRule.matching(t, q)), RN.AaNetRule.matching(ys, q)), Equal.cong(List<&2, RN.AaNetRule>, List<&2, RN.AaNetRule>, x => RN.AaNetRule.matching.go(RN.AaNetRule.matches(r, q), r, x), RN.AaNetRule.matching(RN.AaNetRule.append(t, ys), q), RN.AaNetRule.append(RN.AaNetRule.matching(t, q), RN.AaNetRule.matching(ys, q)), net.match_app(t, ys, q)), net.mgo(RN.AaNetRule.matches(r, q), r, RN.AaNetRule.matching(t, q), RN.AaNetRule.matching(ys, q)))