Documentation

Cedar.Thm.BatchedEvaluator

This file defines theorems related to the batched evaluator

@[reducible, inline]

A well behaved entity loader

  1. Loads all the requested entities, returning none for missing entities
  2. Refines the backing entity store

The first condition is required for convergence of batched evaluation, which has not been proven. It is unused in the code base at the moment.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[irreducible]
    theorem Cedar.Thm.batched_eval_loop_eq_evaluate {loader : TPE.EntityLoader} {iters : Nat} {x : Spec.Residual} {req : Spec.Request} (es : Spec.Entities) {current_store : TPE.PartialEntities} {env : Validation.TypeEnv} :
    EntityLoader.WellBehaved es loaderResidual.WellTyped env xRequestAndEntitiesRefine req es req.asPartialRequest current_storeInstanceOfWellFormedEnvironment req es envExcept.toOption ((TPE.batchedEvalLoop x req loader current_store iters).evaluate req es) = Except.toOption (x.evaluate req es)

    The main correctness theorem for batched evaluation: Batched evaluation with an entity loader produces the same result as normal evaluation with the complete entity store.