TorchLean API

NN.Proofs.Autograd.FDeriv.Elementwise

Elementwise #

OpSpecFDerivCorrect instances for elementwise (map) ops on Euclidean vectors.

The generic coordinatewise calculus (elemwiseVec, elemwiseDerivCLM, hasFDerivAt_elemwiseVec_at) lives in NN.Proofs.Autograd.FDeriv.Core. This file turns the scalar calculus lemmas in NN/Proofs/Gradients/Activation.lean into OpSpecFDerivCorrect instances for vector-valued ops (sigmoid/tanh/softplus/…).

@[simp]
theorem Proofs.Autograd.getScalar_map_spec_ofFnE {n : ℕ} (f : ℝ → ℝ) (xV : Vec n) (i : Fin n) :

Evaluation lemma: converting an elementwise-mapped tensor back to coordinates agrees with applying f to the corresponding Euclidean coordinate.

@[simp]

Vectorized form of the previous lemma: mapping f over a tensor is elemwiseVec f on vectors.

This is the statement that lets an elementwise operation's derivative be proved once on EuclideanSpace and then transported to every tensor of vector shape.

exp as an OpSpecFDerivCorrect instance (elementwise Real.exp).

Instances For

    square as an OpSpecFDerivCorrect instance (elementwise x ↦ x^2).

    Instances For

      sinh as an OpSpecFDerivCorrect instance (elementwise).

      Instances For

        cosh as an OpSpecFDerivCorrect instance (elementwise).

        Instances For

          tanh as an OpSpecFDerivCorrect instance (elementwise).

          Instances For

            sigmoid as an OpSpecFDerivCorrect instance (elementwise).

            Instances For

              softplus as an OpSpecFDerivCorrect instance (elementwise).

              Instances For

                SiLU as an OpSpecFDerivCorrect instance (elementwise).

                Instances For

                  Tanh-approximate GELU as an OpSpecFDerivCorrect instance (elementwise).

                  Instances For
                    noncomputable def Proofs.Autograd.OpSpecFDerivCorrect.safeLog {n : ℕ} (ε : ℝ) (hε : 0 < ε) :

                    safeLog as an OpSpecFDerivCorrect instance (elementwise), assuming ε > 0.

                    This is the differentiable calculus fact; the corresponding dot-level VJP correctness lives in NN.Proofs.Autograd.Core.RealCorrectness.

                    Instances For
                      noncomputable def Proofs.Autograd.OpSpecFDerivCorrect.smoothAbs {n : ℕ} (ε : ℝ) (hε : 0 < ε) :

                      smoothAbs as an OpSpecFDerivCorrect instance (elementwise), assuming ε > 0.

                      This is a differentiable approximation to abs.

                      Instances For