This file defines the main theorem of TPE soundness for authorization.
Significant lemmas proving soundness of policy and expression evaluation are in
Cedar.Thm.TPE.Policy and Cedar.Thm.TPE.Soundness.
Main re-authorization soundness theorem: The result of reauthorizing a partial authorization response with concrete request and entities is equivalent to directly authorizing with the concrete request and entities.
Main partial authorization soundness theorem: If partial authorization returns a decision, then concrete authorization will reach the same.
Trivial composition of the first two soundness theorems directly relating the decision of partial authorization and subsequent re-authorization.
All policies reported as erroring after partial authorization will appear in the set of erroring policies after concrete authorization.
If the result of concrete authorization is allow, then all permit
policies satisfied after partial authorization are determining policies.
If the result of concrete authorization is deny, then any permit policies
satisfied after partial authorization cannot be determining policies.
Like partial_authorize_allow_determining_policies_is_sound for forbid
policies, but we can prove a stronger theorem because of forbid_trumps_permit.
Any forbid policy satisfied after partial evaluation will always be determining.
Like partial_authorize_satisfied_permits_not_determining_if_deny for
forbid policies, but we can prove a stronger theorem because any satisfied
forbid causes the decision to be deny. If the result of concrete
authorization is allow, then there can be no satisfied forbid policies after
partial authorization.