Documentation

Cedar.SymCC.ExtFun

This file contains the symbolic encoding (factory functions) for extension operators.

The extension functions are total. If given well-formed and type-correct arguments, an extension function will return a well-formed and type-correct output. Otherwise, the output is an arbitrary term.

This design lets us minimize the number of error paths in the overall specification of symbolic compilation, which makes for nicer code and proofs, and it more closely tracks the specification of the concrete evaluator.

See Compiler.lean to see how the symbolic compiler uses this API. See also Factory.lean.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def Cedar.SymCC.IPAddr.range (w : Nat) (ipAddr ipPre : Term) :
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Cedar.SymCC.IPAddr.inRange (range : Term → Term × Term) (t₁ t₂ : Term) :
      Equations
      Instances For
        def Cedar.SymCC.IPAddr.inRangeV (isIp : Term → Term) (range : Term → Term × Term) (t₁ t₂ : Term) :
        Equations
        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def Cedar.SymCC.IPAddr.inRangeVs (isIp : Term → Term) (range : Term → Term × Term) (t : Term) (ts : List Term) :

            Variadic inRangeV: t is isIp and in range of any of ts (each of which must also be isIp). Left-folds the per-range checks with or.

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

              Variadic isInRange: t₁ is in range of any of ts. A single top-level or of the ipv4 and ipv6 inRangeVs checks, each folding over all ranges. With a single range this reduces to the binary isInRange.

              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
                  • 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
                      • 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