Documentation

Cedar.Thm.SymCC.Opt

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