Documentation

Cedar.SymCC.Compiler

This file defines the Cedar symbolic compiler.

The symbolic compiler takes as input a Cedar expression and a symbolic environment. Given these inputs, it produces a Term encoding of the expression.

If the compiler returns a Term, this Term represents a sound and complete encoding of the input expression's semantics with respect to the given environment: using this Term for verification will neither miss bugs (soundness) nor produce false positives (completeness).

def Cedar.SymCC.compileApp₂ (op₂ : Spec.BinaryOp) (t₁ t₂ : Term) (εs : SymEntities) :
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
        • One or more equations did not get rendered due to their size.
        Instances For
          def Cedar.SymCC.compileIf (t₁ : Term) (r₂ r₃ : Result Term) :
          Equations
          Instances For
            Equations
            Instances For
              def Cedar.SymCC.compileCall₀ {α : Type u_1} [Coe α Spec.Ext] (mk : StringOption α) :
              Equations
              Instances For
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  Equations
                  Instances For
                    def Cedar.SymCC.compileCallWithError₂ (xty₁ xty₂ : Validation.ExtType) (enc : TermTermTerm) (t₁ t₂ : Term) :
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def Cedar.SymCC.compileCall₂ (xty : Validation.ExtType) (enc : TermTermTerm) (t₁ t₂ : Term) :
                      Equations
                      Instances For
                        Equations
                        Instances For
                          @[irreducible]

                          Given an expression x that has type τ with respect to a type environment Γ, and given a well-formed symbolic environment εnv that conforms to Γ, compile x εnv succeeds and produces a well-formed term of type .option τ.toTermType.

                          Equations
                          Instances For