Documentation

KernelHom.Tactic.Hom.KernelHom

kernel_hom tactic #

This file implements the kernel_hom tactic, which transforms equalities of kernels into equivalent equalities in the monoidal category.

Main declarations #

def check_unitors (κ : Lean.Expr) (offset : ) (prod : Lean.Name) :

Check if a kernel expression corresponds to a left or right unitor.

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

    Check if a kernel expression corresponds to a left unitor.

    Equations
    Instances For

      Check if a kernel expression corresponds to a right unitor.

      Equations
      Instances For

        Recursively decompose a product type into SFinKer objects with monoidal tensor structure.

        Compute the SFinKer object corresponding to a measurable space.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def construct_unitors (X Y : Lean.Expr) (yLvl maxLvl : Lean.Level) (offset : ) :

          Construct the left or right unitor morphism.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def check_Whiskers (κ : Lean.Expr) (offset : ) :

            Check if a kernel expression corresponds to a left or right whisker.

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

              Check if a kernel expression corresponds to a left whisker.

              Equations
              Instances For

                Check if a kernel expression corresponds to a right whisker.

                Equations
                Instances For

                  Construct the relevant data for converting a kernel expression to its whisker morphism representation.

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

                    Check if a kernel expression corresponds to an associator morphism or its inverse.

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

                      Check if a kernel expression corresponds to an associator morphism.

                      Equations
                      Instances For

                        Check if a kernel expression corresponds to an inverse associator morphism.

                        Equations
                        Instances For

                          Get the types and universe levels from a expression of the form X × Y × Z.

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

                            Construct the associator morphism or its inverse.

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

                              Construct the associator morphism.

                              Equations
                              Instances For

                                Construct the inverse associator morphism.

                                Equations
                                Instances For

                                  Recursive transformation from kernel expressions to morphism expressions in the SFinKer category.

                                  def mkKernelHomEqProof (eqProofType rhs lhs : Lean.Expr) (maxLvl : Lean.Level) (op_data : List CategoryOP) :

                                  Construct the proof of equivalence between the original equality and the transformed one.

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

                                    The kernel_hom tactic transforms a kernel equality to an equivalent equality in the category of measurable spaces and s-finite kernels.

                                    The tactic supports location specifiers like rw or simp:

                                    • kernel_hom — applies to the goal
                                    • kernel_hom at h — applies to hypothesis h
                                    • kernel_hom at h₁ h₂ — applies to multiple hypotheses
                                    • kernel_hom at h ⊢ — applies to hypothesis h and the goal
                                    • kernel_hom at * — applies to all hypotheses and the goal

                                    Example:

                                    example {W X Y Z : Type*} [MeasurableSpace X] [MeasurableSpace Y] [MeasurableSpace Z]
                                        [MeasurableSpace W] (κ : Kernel X Y) (η : Kernel Y Z) (ξ : Kernel Z W)
                                        [IsFiniteKernel ξ] [IsSFiniteKernel κ] [IsSFiniteKernel η] :
                                        ξ ∘ₖ (η ∘ₖ κ) = ξ ∘ₖ η ∘ₖ κ := by
                                      kernel_hom
                                      exact Category.assoc _ _ _
                                    
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For

                                      The kernel_hom tactic transforms a kernel equality to an equivalent equality in the category of measurable spaces and s-finite kernels.

                                      The tactic supports location specifiers like rw or simp:

                                      • kernel_hom — applies to the goal
                                      • kernel_hom at h — applies to hypothesis h
                                      • kernel_hom at h₁ h₂ — applies to multiple hypotheses
                                      • kernel_hom at h ⊢ — applies to hypothesis h and the goal
                                      • kernel_hom at * — applies to all hypotheses and the goal

                                      Example:

                                      example {W X Y Z : Type*} [MeasurableSpace X] [MeasurableSpace Y] [MeasurableSpace Z]
                                          [MeasurableSpace W] (κ : Kernel X Y) (η : Kernel Y Z) (ξ : Kernel Z W)
                                          [IsFiniteKernel ξ] [IsSFiniteKernel κ] [IsSFiniteKernel η] :
                                          ξ ∘ₖ (η ∘ₖ κ) = ξ ∘ₖ η ∘ₖ κ := by
                                        kernel_hom
                                        exact Category.assoc _ _ _
                                      
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For