Documentation

Lean.Compiler.IR.ToIR

  • nextId : Nat
  • We keep around a substitution here because we run a second trivial structure elimination when converting to IR. This elimination is aware of the fact that Void is irrelevant while the first one in LCNF isn't because LCNF is still pure. However, IR does not allow us to have bindings of the form let x := y which might occur when for example projecting out of a trivial structure where previously a binding would've been let x := proj y i and now becomes let x := y. For this reason we carry around these kinds of bindings in this substitution and apply it whenever we access an fvar in the conversion.

Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    def Lean.IR.ToIR.M.run {α : Type} (x : M α) :
    Equations
    Instances For
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        Equations
        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def Lean.IR.ToIR.bindVarToVarId (fvarId : FVarId) (varId : VarId) :
            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
                    Instances For
                      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