Documentation

GaudisCrypt.Lib.RO.Basic

@[reducible, inline]
abbrev state :

The ambient state of the development: the globals of a program state.

Equations
Instances For
    @[reducible, inline]
    abbrev Variable (a : Type u_1) :
    Type (max u_1 1)

    A Variable is a lens into the ambient state.

    Equations
    Instances For

      Random oracle primitives #

      The basic actors of the random oracle framework: the RO state lens, the two query primitives (lazy_query and random_oracle_query), and their respective initialisation routines (lazy_init and random_oracle_init).

      convert and everything related to converting one to the other lives in PlonkLean.RO.Transfer. The scratch state variables used by the adversary-driven oracle loops live in PlonkLean.RO.OracleLoop.

      @[implicit_reducible]
      Equations
      @[implicit_reducible]
      Equations
      @[implicit_reducible]
      Equations
      @[implicit_reducible]
      Equations
      @[implicit_reducible]
      noncomputable instance instDecidableEqOutput :
      Equations
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        instance instIsGlobalVarForallInputOptionOutputRandom_oracle_stateMk :
        random_oracle_state.IsGlobalVar { name := "random_oracle_state", type := input → Option output, nonempty := ⋯, key := 713378399182275658285732131237853839843770282773904064106845643925946252434248071926136423511862240783368323187, keyCorrect := ⋯ }
        @[implicit_reducible]
        Equations

        Sample the entire input → output function space uniformly and store it in the random oracle (as the eager initialisation).

        Equations
        Instances For

          Initialise the random oracle with no cached entries (lazy initialisation).

          Equations
          Instances For

            Lazy random-oracle query: return the cached output if present, otherwise sample uniformly and cache.

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

              Eager random-oracle query: read the (pre-sampled) value at inp.

              Equations
              Instances For

                lazy_query only reads and writes random_oracle_state (probabilistic footprint form, countability-free).