Documentation

Cedar.SymCCOpt.Verifier

This file contains versions of the functions in SymCC/Verifier.lean that operate on compiled policies (from SymCCOpt/CompiledPolicies.lean). Unlike the unoptimized functions in SymCC/Verifier.lean, the functions in this file do not need to call the symbolic compiler.

Returns asserts that are unsatisfiable iff the evaluation of p, represented as a Term of type .option .bool, satisfies φ on all inputs drawn from the εnv that p was compiled for.

See also verifyNeverErrorsOpt.

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    Returns asserts that are unsatisfiable iff the evaluation of p₁ and p₂, represented as Terms of type .option .bool, satisfy φ on all inputs drawn from the εnv that the policies were compiled for. (Caller guarantees that p₁ and p₂ were compiled for the same εnv.)

    See also verifyMatchesImpliesOpt, verifyMatchesEquivalentOpt, and verifyMatchesDisjointOpt.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Returns asserts that are unsatisfiable iff the authorization decisions produced by ps₁ and ps₂, represented as Terms of type .bool, satisfy φ on all inputs drawn from the εnv that the policysets were compiled for. (Caller guarantees that ps₁ and ps₂ were compiled for the same εnv.)

      See also verifyAlwaysAllowsOpt, verifyAlwaysDeniesOpt, verifyImpliesOpt, verifyEquivalentOpt, and verifyDisjointOpt.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        Returns asserts that are unsatisfiable iff p does not error on any input in the εnv it was compiled for. If the asserts are satisfiable, then there is some input in εnv on which p errors.

        Equations
        Instances For

          Returns asserts that are unsatisfiable iff p matches all inputs in the εnv it was compiled for. If the asserts are satisfiable, then there is some input in εnv which p doesn't match.

          Equations
          Instances For

            Returns asserts that are unsatisfiable iff p matches no inputs in εnv. If the asserts are satisfiable, then there is some input in εnv which p does match.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              Returns asserts that are unsatisfiable iff p₁ and p₂ match exactly the same set of inputs in the εnv they were compiled for. (Caller guarantees that p₁ and p₂ were compiled for the same εnv.) If the asserts are satisfiable, then there is some input in εnv on which p₁ and p₂ have different matching behavior.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Returns asserts that are unsatisfiable iff p₁ matching implies that p₂ matches, for every input in the εnv they were compiled for. (Caller guarantees that p₁ and p₂ were compiled for the same εnv.) If the asserts are satisfiable, then there is some input in εnv that is matched by p₁ but not matched by p₂.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For

                  Returns asserts that are unsatisfiable iff there is no input in the εnv they were compiled for that is matched by both p₁ and p₂. (Caller guarantees that p₁ and p₂ were compiled for the same εnv.) If the asserts are satisfiable, then there is some input in εnv that is matched by both p₁ and p₂.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    Returns asserts that are unsatisfiable iff the authorization decision of ps₁ implies that of ps₂ for every input in the εnv that the policysets were compiled for. (Caller guarantees that ps₁ and ps₂ were compiled for the same εnv.) In other words, every input allowed by ps₁ is allowed by ps₂.

                    Equations
                    Instances For

                      Returns asserts that are unsatisfiable iff ps allows all inputs in the εnv it was compiled for.

                      Equations
                      Instances For

                        Returns asserts that are unsatisfiable iff ps denies all inputs in the εnv it was compiled for.

                        Equations
                        Instances For

                          Returns asserts that are unsatisfiable iff ps₁ and ps₂ produce the same authorization decision on all inputs in the εnv that the policysets were compiled for. (Caller guarantees that ps₁ and ps₂ were compiled for the same εnv.)

                          Equations
                          Instances For

                            Returns asserts that are unsatisfiable iff there is no input in the εnv that is allowed by both ps₁ and ps₂. (Caller guarantees that ps₁ and ps₂ were compiled for the same εnv.) This checks that the authorization semantics of ps₁ and ps₂ are disjoint. If this query is satisfiable, then there is at least one input in this εnv that is allowed by both ps₁ and ps₂.

                            Equations
                            Instances For