Proofs that the optimized interface in SymCCOpt is equivalent to the unoptimized interface in SymCC.
If SymCC.satisfiedPolicies fails, that must be because SymCC.compile failed
with that error on some policy
If SymCC.isAuthorized fails, that must be because SymCC.compile failed with
that error on some policy
CompiledPolicy.compile succeeds iff wellTypedPolicy succeeds
Note: Γ.WellFormed is technically only required for the reverse direction
CompiledPolicySet.compile succeeds iff wellTypedPolicies succeeds
Note: Γ.WellFormed is technically only required for the reverse direction
If CompiledPolicy.compile succeeds, then wellTypedPolicy succeeds
Note: Can be proved without Γ.WellFormed
If CompiledPolicySet.compile succeeds, then wellTypedPolicies succeeds
Note: Can be proved without Γ.WellFormed
This theorem covers the "happy path" -- showing that if optimized policy
compilation with CompiledPolicy.compile succeeds, then satAsserts? and
satAssertsOpt? are equivalent.
This theorem covers the "happy path" -- showing that if optimized policy
compilation with CompiledPolicySet.compile succeeds, then satAsserts? and
satAssertsOpt? are equivalent.
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicy succeeds and neverErrors? and
neverErrorsOpt? are equivalent.
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicy succeeds and alwaysMatches? and
alwaysMatchesOpt? are equivalent.
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicy succeeds and neverMatches? and
neverMatchesOpt? are equivalent.
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicy succeeds and matchesEquivalent? and
matchesEquivalentOpt? are equivalent.
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicy succeeds and matchesImplies? and
matchesImpliesOpt? are equivalent.
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicy succeeds and matchesDisjoint? and
matchesDisjointOpt? are equivalent.
Full equivalence for neverErrors? and neverErrorsOpt?, including both the
.ok and .error cases
Full equivalence for alwaysMatches? and alwaysMatchesOpt?, including both the
.ok and .error cases
Full equivalence for neverMatches? and neverMatchesOpt?, including both the
.ok and .error cases
Full equivalence for matchesEquivalent? and matchesEquivalentOpt?, including both the
.ok and .error cases
Full equivalence for matchesImplies? and matchesImpliesOpt?, including both the
.ok and .error cases
Full equivalence for matchesDisjoint? and matchesDisjointOpt?, including both the
.ok and .error cases
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicies succeeds and implies? and
impliesOpt? are equivalent.
Full equivalence for implies? and impliesOpt?, including both the
.ok and .error cases
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicies succeeds and alwaysAllows? and
alwaysAllowsOpt? are equivalent.
Full equivalence for alwaysAllows? and alwaysAllowsOpt?, including both the
.ok and .error cases
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicies succeeds and alwaysDenies? and
alwaysDeniesOpt? are equivalent.
Full equivalence for alwaysDenies? and alwaysDeniesOpt?, including both the
.ok and .error cases
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicies succeeds and equivalent? and
equivalentOpt? are equivalent.
Full equivalence for equivalent? and equivalentOpt?, including both the
.ok and .error cases
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicies succeeds and disjoint? and
disjointOpt? are equivalent.
Full equivalence for disjoint? and disjointOpt?, including both the
.ok and .error cases
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicies succeeds and checkNeverErrors and
checkNeverErrorsOpt? are equivalent.
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicy succeeds and checkAlwaysMatches and
checkAlwaysMatchesOpt are equivalent.
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicy succeeds and checkNeverMatches and
checkNeverMatchesOpt are equivalent.
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicy succeeds and checkMatchesEquivalent and
checkMatchesEquivalentOpt are equivalent.
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicy succeeds and checkMatchesImplies and
checkMatchesImpliesOpt are equivalent.
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicy succeeds and checkMatchesDisjoint and
checkMatchesDisjointOpt are equivalent.
Full equivalence for checkNeverErrorsandcheckNeverErrorsOpt, including both the .okand.error` cases
Full equivalence for checkAlwaysMatches and checkAlwaysMatchesOpt, including both the
.ok and .error cases
Full equivalence for checkNeverMatches and checkNeverMatchesOpt, including both the
.ok and .error cases
Full equivalence for checkMatchesEquivalent and checkMatchesEquivalentOpt, including both the
.ok and .error cases
Full equivalence for checkMatchesImplies and checkMatchesImpliesOpt, including both the
.ok and .error cases
Full equivalence for checkMatchesDisjoint and checkMatchesDisjointOpt, including both the
.ok and .error cases
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicies succeeds and checkImplies and
checkImpliesOpt are equivalent.
Full equivalence for checkImplies and checkImpliesOpt, including both the
.ok and .error cases
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicies succeeds and checkAlwaysAllows and
checkAlwaysAllowsOpt are equivalent.
Full equivalence for checkAlwaysAllows and checkAlwaysAllowsOpt, including both the
.ok and .error cases
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicies succeeds and checkAlwaysDenies and
checkAlwaysDeniesOpt are equivalent.
Full equivalence for checkAlwaysDenies and checkAlwaysDeniesOpt, including both the
.ok and .error cases
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicies succeeds and checkEquivalent and
checkEquivalentOpt are equivalent.
Full equivalence for checkEquivalent and checkEquivalentOpt, including both the
.ok and .error cases
This theorem covers the "happy path" -- showing that if optimized policy
compilation succeeds, then wellTypedPolicies succeeds and checkDisjoint and
checkDisjointOpt are equivalent.
Full equivalence for checkDisjoint and checkDisjointOpt, including both the
.ok and .error cases