Documentation

SSA.Projects.LeanMlirCommon.UnTyped.Basic

VarName is the type of (human-readable) variable names

Equations
Instances For

    BlockLabel is the type of (human-readable) basic block labels

    Equations
    Instances For
      inductive MLIR.UnTyped.Expr (Op : Type) (T : Type) :

      An Expr binds the result of a single operation to a new variable. Morally, it represents $varName = $op($args) { $regions }

      Instances For
        inductive MLIR.UnTyped.Lets (Op : Type) (T : Type) :

        Lets is a sequence of operations (without terminator), which grows downwards. That is, the head of the list represents the first operation to be executed

        Instances For
          inductive MLIR.UnTyped.Body (Op : Type) (T : Type) :

          The Body of a basic block is a sequence of operations, followed by a terminator

          Instances For
            inductive MLIR.UnTyped.BasicBlock (Op : Type) (T : Type) :

            A basic block has a label, a set of arguments, and then a program

            Instances For
              inductive MLIR.UnTyped.Region (Op : Type) (T : Type) :

              A region consists of one or more basic blocks, where the first basic block is known as the entry block

              Instances For

                Projections #

                Equations
                Instances For
                  def MLIR.UnTyped.Expr.op {Op : Type} {T : Type} :
                  MLIR.UnTyped.Expr Op TOp
                  Equations
                  Instances For
                    @[simp]
                    theorem MLIR.UnTyped.Expr.op_mk {Op : Type} {T : Type} {varName : MLIR.VarName} {op : Op} {args : List MLIR.VarName} {regions : List (MLIR.UnTyped.Region Op T)} :
                    (MLIR.UnTyped.Expr.mk varName op args regions).op = op
                    @[simp]
                    theorem MLIR.UnTyped.Expr.varName_mk {Op : Type} {T : Type} {varName : MLIR.VarName} {op : Op} {args : List MLIR.VarName} {regions : List (MLIR.UnTyped.Region Op T)} :
                    (MLIR.UnTyped.Expr.mk varName op args regions).varName = varName
                    Equations
                    Instances For
                      @[simp]
                      theorem MLIR.UnTyped.Lets.mk_inner {Op : Type} {T : Type} (lets : MLIR.UnTyped.Lets Op T) :
                      MLIR.UnTyped.Lets.mk lets.inner = lets
                      @[simp]
                      theorem MLIR.UnTyped.Lets.inner_mk {Op : Type} {T : Type} (lets : List (MLIR.UnTyped.Expr Op T)) :
                      (MLIR.UnTyped.Lets.mk lets).inner = lets
                      Equations
                      Instances For
                        Equations
                        Instances For