def mnt.match_app
bend-osdev-apparmor@0.1.0.0 · PROOF.bend:3723
import bend-osdev-apparmor@0.1.0.0/PROOF.bend as PROOF
import Base
import bend-osdev-apparmor@0.1.0.0/rule_mount.bend as RM
3723def mnt.match_app(+xs: List<&2, RM.AaMountRule>, +ys: List<&2, RM.AaMountRule>, +q: RM.AaMountQuery) -> {RM.AaMountRule.matching(RM.AaMountRule.append(xs, ys), q) == RM.AaMountRule.append(RM.AaMountRule.matching(xs, q), RM.AaMountRule.matching(ys, q)) : List<&2, RM.AaMountRule>}:
3724 match xs:
3725 case Nil{}:
3726 {==}
3727 case Con{r, t}:
3728 Equal.trans(List<&2, RM.AaMountRule>, RM.AaMountRule.matching.go(RM.AaMountRule.matches(r, q), r, RM.AaMountRule.matching(RM.AaMountRule.append(t, ys), q)), RM.AaMountRule.matching.go(RM.AaMountRule.matches(r, q), r, RM.AaMountRule.append(RM.AaMountRule.matching(t, q), RM.AaMountRule.matching(ys, q))), RM.AaMountRule.append(RM.AaMountRule.matching.go(RM.AaMountRule.matches(r, q), r, RM.AaMountRule.matching(t, q)), RM.AaMountRule.matching(ys, q)), Equal.cong(List<&2, RM.AaMountRule>, List<&2, RM.AaMountRule>, x => RM.AaMountRule.matching.go(RM.AaMountRule.matches(r, q), r, x), RM.AaMountRule.matching(RM.AaMountRule.append(t, ys), q), RM.AaMountRule.append(RM.AaMountRule.matching(t, q), RM.AaMountRule.matching(ys, q)), mnt.match_app(t, ys, q)), mnt.mgo(RM.AaMountRule.matches(r, q), r, RM.AaMountRule.matching(t, q), RM.AaMountRule.matching(ys, q)))