PROOF.fud.law: def of bend-osdev-apparmor@0.1.0.0 Import: import bend-osdev-apparmor@0.1.0.0/PROOF.bend as PROOF Lines 3421-3425 of bend-osdev-apparmor@0.1.0.0/PROOF.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-apparmor@0.1.0.0/PROOF.bend&start_line=3421&end_line=3425 import Base import bend-osdev-apparmor@0.1.0.0/perm.bend as P import bend-osdev-apparmor@0.1.0.0/options.bend as O import bend-osdev-apparmor@0.1.0.0/profile.bend as PR import bend-osdev-apparmor@0.1.0.0/eval.bend as V import bend-osdev-apparmor@0.1.0.0/rule_file.bend as F import bend-osdev-apparmor@0.1.0.0/LAWS.bend as Laws def fud.law(+opts: O.AaOptions, +p: PR.AaProfile, +q: F.AaFileQuery, +h1: {PR.AaMode.enforcing(PR.AaFlags.mode(PR.AaProfile.flags(p))) == True{} : Bool}, +h2: {F.AaFileRule.matching(PR.AaRules.files(PR.AaProfile.rules(p)), q) == Nil{} : List<&2, F.AaFileRule>}, +h3: {P.AaPerms.any(F.AaFileQuery.req(q)) == True{} : Bool}) -> {V.AaDecision.allowed(V.AaEval.file(opts, p, q)) == False{} : Bool}: match q: case F.AaFileQuery{path, owner, req}: %Equal.sym(List<&2, F.AaFileRule>, F.AaFileRule.matching(PR.AaRules.files(PR.AaProfile.rules(p)), F.AaFileQuery{path, owner, req}), Nil{}, h2) : {V.AaDecision.allowed(V.AaEval.decide(opts, PR.AaProfile.flags(p), req, F.AaFileRule.grants.of(_))) == False{} : Bool} Laws.unmatched_denied(opts, PR.AaProfile.flags(p), req, h1, h3) Uses (20): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.sym https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/LAWS.bend&name=unmatched_denied https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/eval.bend&name=AaDecision.allowed https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/eval.bend&name=AaEval.decide https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/eval.bend&name=AaEval.file https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/options.bend&name=AaOptions https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/perm.bend&name=AaPerms.any https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/profile.bend&name=AaFlags.mode https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/profile.bend&name=AaMode.enforcing https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/profile.bend&name=AaProfile https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/profile.bend&name=AaProfile.flags https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/profile.bend&name=AaProfile.rules https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/profile.bend&name=AaRules.files https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/rule_file.bend&name=AaFileQuery https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/rule_file.bend&name=AaFileQuery.req https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/rule_file.bend&name=AaFileRule https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/rule_file.bend&name=AaFileRule.grants.of https://jend.leeeet.dev/definition.txt?path=bend-osdev-apparmor@0.1.0.0/rule_file.bend&name=AaFileRule.matching