Extracting strongly well-formed counterexamples to verification queries #
This file defines the function extract?, which turns interpretations
into concrete, strongly well-formed counterexamples to verification queries.
The function takes as input a list of expressions xs, an interpretation I,
and a symbolic environment εnv. Given these inputs, it returns an environment
env ∈ εnv such that env is strongly well-formed, and each term in
footprint xs εnv has the same interpretation under both I and every I'
for which f env ∼ εnv.interpret I'.
If I is the result of solving a verify* query (see Cedar.SymCC.Verifier),
then εnv.extract? xs I is a valid strongly well-formed counterexample
to that query. More generally, εnv.extract? xs I extracts such a
counterexample for any verification query that is expressed as a boolean
combination of (boolean) terms obtained by compiling xs with respect to εnv.
See Cedar.Thm.SymCC.Verification for how this is used to prove that verification
queries based on Cedar's compiler and hierarchy enforcer are correct.
Instances For
Equations
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- Cedar.SymCC.UUF.repairAncestors.default udf = match udf.out with | ty.set => Cedar.SymCC.Term.set Cedar.Data.Set.empty ty | x => udf.default
Instances For
Equations
- Cedar.SymCC.Interpretation.repair footprint εnv I = { vars := I.vars, funs := Cedar.SymCC.Interpretation.repair.funs footprint εnv I, partials := I.partials }
Instances For
Equations
- Cedar.SymCC.Interpretation.repair.footprintUIDs footprint I = List.mapUnion (Cedar.SymCC.Term.entityUIDs ∘ Cedar.SymCC.Term.interpret I) footprint.elts
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Cedar.SymCC.Interpretation.repair.funs footprint εnv I f = match (Cedar.SymCC.Interpretation.repair.footprintAncestors footprint εnv I).find? f with | some udf => udf | x => I.funs f
Instances For
Equations
- One or more equations did not get rendered due to their size.