Documentation

EqLift.Tactic.Kernel.Utils

Kernel lifting utilities #

This file provides helper functions for lifting and unlifting kernel expressions: type extraction, construction of measurable equivalences, and explicit constructors for kernel operations and Kernel.lift. The constructors build the applications directly (mkAppN with explicit universe levels and instances) instead of going through mkAppM, whose unification is the main cost of the transformations.

Main declarations #

structure Carrier :

A measurable space: the carrier type and its universe level.

Instances For

    The MeasurableSpace instance of a carrier (cached).

    Equations
    Instances For

      Extract (X, Y, u, v) from an expression of type Kernel X Y.

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

        Extract the source and target carriers of a kernel.

        Equations
        Instances For

          Build the measurable equivalence X' ≃ᵐ X between the lift X' of e to the universe maxLvl and e itself, recursively on products. Returns the equivalence and X'.

          Same as constructMeasurableEquiv, for a carrier.

          Equations
          Instances For

            Get the original type from a lifted type.

            Explicit constructors #

            η ∘ₖ κ with κ : Kernel X Y and η : Kernel Y Z.

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

              κ ∥ₖ η with κ : Kernel X Y and η : Kernel Z T.

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

                κ ×ₖ η with κ : Kernel X Y and η : Kernel X Z.

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

                  κ ⊗ₖ η with κ : Kernel X Y and η : Kernel (X × Y) Z.

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

                    Kernel.id : Kernel X X.

                    Equations
                    Instances For

                      Kernel.copy X.

                      Equations
                      Instances For

                        Kernel.discard X : Kernel X PUnit.{punitLvl + 1}.

                        Equations
                        Instances For

                          Kernel.swap X Y.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def mkKernelLift (X Y X' Y' : Carrier) (ex ey κ : Lean.Expr) :

                            κ.lift (ex := ex) (ey := ey) : Kernel X' Y' with κ : Kernel X Y.

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