Documentation

GaudisCrypt.CounterExamples.FV

@[reducible, inline]
Equations
Instances For
    noncomputable def FV.fv_getter {a s : Type} (getter : GaudisCrypt.Getter a s) :
    Equations
    Instances For
      def FV.fv_reduce {a : Type u_1} {b : Type u_2} (lens : GaudisCrypt.Lens a b) (range : DetermFootprint b) :
      Equations
      Instances For
        def FV.fv_extend {a : Type u_1} {b : Type u_2} (lens : GaudisCrypt.Lens a b) (range : DetermFootprint a) :
        Equations
        Instances For

          Properties of fv_reduce / fv_extend needed for fv_proc_instantiate. #

          These are stated as axioms for review. Once fv_reduce/fv_extend have real definitions they should become theorems. Note: the proof of fv_proc_instantiate needs no properties of fv_getter/fv_setter — they are used opaquely.

          theorem FV.fv_reduce_sup {a : Type u_1} {b : Type u_2} (lens : GaudisCrypt.Lens a b) (r₁ r₂ : DetermFootprint b) :
          fv_reduce lens (r₁ ⊔ r₂) = fv_reduce lens r₁ ⊔ fv_reduce lens r₂
          theorem FV.fv_extend_sup [GaudisCrypt.ProgramSpec] {a : Type u_1} {b : Type u_2} (lens : GaudisCrypt.Lens a b) (r₁ r₂ : DetermFootprint a) :
          fv_extend lens (r₁ ⊔ r₂) = fv_extend lens r₁ ⊔ fv_extend lens r₂

          fv_extend distributes over joins.

          theorem FV.fv_extend_updates [GaudisCrypt.ProgramSpec] {a : Type u_1} {b : Type u_2} (lens : GaudisCrypt.Lens a b) (range : DetermFootprint a) :
          (fv_extend lens range).updates = lens.liftFunction '' range.updates
          theorem FV.fv_reduce_extend [GaudisCrypt.ProgramSpec] {a : Type u_1} {b : Type u_2} (lens : GaudisCrypt.Lens a b) (r : DetermFootprint a) :
          fv_reduce lens (fv_extend lens r) ≤ r

          fv_reduce is a retraction of fv_extend: pushing a footprint forward along a lens and pulling it back recovers it. (Only ≤ is used in the proof.)

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