Documentation

Auto.Translation.Lam2DAtomAsFVar

All the type atoms and term atoms are interpreted as fvars, which are let-declarations in the local context. We don't want the external prover to unfold these let-declarations, so we add these atoms as non-let free variables into the local context, run the external prover, abstract these free variables after the external prover has finished, and apply the abstracted expression to the value of these atoms to restore the requires expression.

Instances For
    Equations
    Instances For
      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
              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
                          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

                                The external prover should only see the local context and an array of Lean expressions, and should not see anything within ExternM, LamReif.ReifM, ULiftM or Reif.ReifM

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

                                  Given a list of non-dependent types ty₁, ty₂, ⋯, tyₙ, add free variables x₁ : ty₁, x₂ : ty₂, ⋯, xₙ : tyₙ into local context, and return #[x₁, x₂, ⋯, xₙ]

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

                                    Calling external provere with type atoms, atoms, etoms, inhabitation facts and lemmas as free variables

                                    Note that MetaState.withTemporaryLCtx is used to isolate the prover from the current local context. This is necessary because lean-auto assumes that the prover does not use free variables introduced during monomorphization

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