The Core function for monoidal
and bicategory
tactics #
This file provides the function BicategoryLike.main
for proving equalities in monoidal categories
and bicategories. Using main
, we will define the following tactics:
monoidal
atMathlib.Tactic.CategoryTheory.Monoidal.Basic
bicategory
atMathlib.Tactic.CategoryTheory.Bicategory.Basic
The main
first normalizes the both sides using eval
, then compares the corresponding components.
It closes the goal at non-structural parts with rfl
and the goal at structural parts by
pureCoherence
.
def
Mathlib.Tactic.BicategoryLike.normalForm
(ρ : Type)
[Mathlib.Tactic.BicategoryLike.Context ρ]
[Mathlib.Tactic.BicategoryLike.MonadMor₁ (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
[Mathlib.Tactic.BicategoryLike.MonadMor₂Iso (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
[Mathlib.Tactic.BicategoryLike.MonadNormalExpr (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
[Mathlib.Tactic.BicategoryLike.MkEval (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
[Mathlib.Tactic.BicategoryLike.MkMor₂ (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
[Mathlib.Tactic.BicategoryLike.MonadMor₂ (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
(nm : Lean.Name)
(mvarId : Lean.MVarId)
:
Transform an equality between 2-morphisms into the equality between their normalizations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Mathlib.Tactic.BicategoryLike.mk_eq_of_cons
{C : Type u}
[CategoryTheory.CategoryStruct.{v, u} C]
{f₁ f₂ f₃ f₄ : C}
(α α' : f₁ ⟶ f₂)
(η η' : f₂ ⟶ f₃)
(ηs ηs' : f₃ ⟶ f₄)
(e_α : α = α')
(e_η : η = η')
(e_ηs : ηs = ηs')
:
Split the goal α ≫ η ≫ ηs = α' ≫ η' ≫ ηs'
into α = α'
, η = η'
, and ηs = ηs'
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
List.splitEvenOdd [0, 1, 2, 3, 4] = ([0, 2, 4], [1, 3])
Equations
- Mathlib.Tactic.BicategoryLike.List.splitEvenOdd [] = ([], [])
- Mathlib.Tactic.BicategoryLike.List.splitEvenOdd [a] = ([a], [])
- Mathlib.Tactic.BicategoryLike.List.splitEvenOdd (a :: b :: xs) = match Mathlib.Tactic.BicategoryLike.List.splitEvenOdd xs with | (as, bs) => (a :: as, b :: bs)
Instances For
def
Mathlib.Tactic.BicategoryLike.main
(ρ : Type)
[Mathlib.Tactic.BicategoryLike.Context ρ]
[Mathlib.Tactic.BicategoryLike.MonadMor₁ (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
[Mathlib.Tactic.BicategoryLike.MonadMor₂Iso (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
[Mathlib.Tactic.BicategoryLike.MonadNormalExpr (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
[Mathlib.Tactic.BicategoryLike.MkEval (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
[Mathlib.Tactic.BicategoryLike.MkMor₂ (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
[Mathlib.Tactic.BicategoryLike.MonadMor₂ (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
[Mathlib.Tactic.BicategoryLike.MonadCoherehnceHom (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
[Mathlib.Tactic.BicategoryLike.MonadNormalizeNaturality (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
[Mathlib.Tactic.BicategoryLike.MkEqOfNaturality (Mathlib.Tactic.BicategoryLike.CoherenceM ρ)]
(nm : Lean.Name)
(mvarId : Lean.MVarId)
:
The core function for monoidal
and bicategory
tactics.
Equations
- One or more equations did not get rendered due to their size.