ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Mathlib/NumberTheory/Primorial.lean
n : ℕ
ihn : ∀ m < n + 1, m# ≤ 4 ^ m

⊢ (n + 1)# ≤ 4 ^ (n + 1)
-- Mathlib/NumberTheory/Primorial.lean
m : ℕ
ihn : ∀ m_1 < m + m + 1, m_1# ≤ 4 ^ m_1

⊢ (m + m + 1)# ≤ 4 ^ (m + m + 1)
-- Mathlib/NumberTheory/Primorial.lean
n : ℕ
ihn : ∀ m < n + 1, m# ≤ 4 ^ m
ho : Odd n

⊢ (n + 1)# ≤ 4 ^ (n + 1)
-- Mathlib/Data/Set/Image.lean
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s t : Set α
p : α → Prop
q : β → Prop
f : α → β
h : ∀ (x : α), p x → q (f x)
x : β
hx : q x

⊢ ⟨x, hx⟩ ∈ range (Subtype.map f h) ↔ ⟨x, hx⟩ ∈ Subtype.val ⁻¹' (f '' {x | p x})
-- Mathlib/Data/Set/Image.lean
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s t : Set α
p : α → Prop
q : β → Prop
f : α → β
h : ∀ (x : α), p x → q (f x)
x : β
hx : q x

⊢ (∃ a, ∃ (h_1 : p a), ⟨f a, ⋯⟩ = ⟨x, hx⟩) ↔ ∃ x_1 ∈ {x | p x}, f x_1 = x
-- Mathlib/LinearAlgebra/Basis/VectorSpace.lean
ι : Type u_1
ι' : Type u_2
K : Type u_3
V : Type u_4
V' : Type u_5
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x y z : V
p : Submodule K V
hp : p < ⊤

⊢ ∃ f, f ≠ 0 ∧ p ≤ ker f
-- Mathlib/LinearAlgebra/Basis/VectorSpace.lean
ι : Type u_1
ι' : Type u_2
K : Type u_3
V : Type u_4
V' : Type u_5
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v✝ : ι → V
s t : Set V
x y z : V
p : Submodule K V
hp : p < ⊤
v : V
hpv : v ∉ p

⊢ ∃ f, f ≠ 0 ∧ p ≤ ker f
-- Mathlib/LinearAlgebra/Basis/VectorSpace.lean
ι : Type u_1
ι' : Type u_2
K : Type u_3
V : Type u_4
V' : Type u_5
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v✝ : ι → V
s t : Set V
x y z : V
p : Submodule K V
v : V
hpv : v ∉ p

⊢ ∃ f, f ≠ 0 ∧ p ≤ ker f
-- Mathlib/LinearAlgebra/Basis/VectorSpace.lean
ι : Type u_1
ι' : Type u_2
K : Type u_3
V : Type u_4
V' : Type u_5
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v✝ : ι → V
s t : Set V
x y z : V
p : Submodule K V
v : V
hpv : v ∉ p
f : V →ₗ[K] K
hf : f ∘ₗ ({ domain := p, toFun := 0 }.supSpanSingleton v 1 hpv).domain.subtype = ({ domain := p, toFun := 0 }.supSpanSingleton v 1 hpv).toFun

⊢ ∃ f, f ≠ 0 ∧ p ≤ ker f
-- Mathlib/CategoryTheory/Monoidal/Bimod.lean
C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
inst✝³ : MonoidalCategory C
A B : Mon_ C
M✝ : Bimod A B
inst✝² : HasCoequalizers C
inst✝¹ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorLeft X)
inst✝ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorRight X)
V W X Y Z : Mon_ C
M : Bimod V W
N : Bimod W X
P : Bimod X Y
Q : Bimod Y Z

⊢ (whiskerRight (isoOfIso { hom := AssociatorBimod.hom M N P, inv := AssociatorBimod.inv M N P, hom_inv_id := ⋯, inv_hom_id := ⋯ } ⋯ ⋯).hom Q ≫ (isoOfIso { hom := AssociatorBimod.hom M (N.tensorBimod P) Q, inv := AssociatorBimod.inv M (N.tensorBimod P) Q, hom_inv_id := ⋯, inv_hom_id := ⋯ } ⋯ ⋯).hom ≫ M.whiskerLeft (isoOfIso { hom := AssociatorBimod.hom N P Q, inv := AssociatorBimod.inv N P Q, hom_inv_id := ⋯, inv_hom_id := ⋯ } ⋯ ⋯).hom).hom = ((isoOfIso { hom := AssociatorBimod.hom (M.tensorBimod N) P Q, inv := AssociatorBimod.inv (M.tensorBimod N) P Q, hom_inv_id := ⋯, inv_hom_id := ⋯ } ⋯ ⋯).hom ≫ (isoOfIso { hom := AssociatorBimod.hom M N (P.tensorBimod Q), inv := AssociatorBimod.inv M N (P.tensorBimod Q), hom_inv_id := ⋯, inv_hom_id := ⋯ } ⋯ ⋯).hom).hom
-- Mathlib/CategoryTheory/Monoidal/Bimod.lean
C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
inst✝³ : MonoidalCategory C
A B : Mon_ C
M✝ : Bimod A B
inst✝² : HasCoequalizers C
inst✝¹ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorLeft X)
inst✝ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorRight X)
V W X Y Z : Mon_ C
M : Bimod V W
N : Bimod W X
P : Bimod X Y
Q : Bimod Y Z

⊢ coequalizer.π (((M.tensorBimod N).tensorBimod P).actRight ▷ Q.X) ((α_ ((M.tensorBimod N).tensorBimod P).X Y.X Q.X).hom ≫ ((M.tensorBimod N).tensorBimod P).X ◁ Q.actLeft) ≫ (whiskerRight (isoOfIso { hom := AssociatorBimod.hom M N P, inv := AssociatorBimod.inv M N P, hom_inv_id := ⋯, inv_hom_id := ⋯ } ⋯ ⋯).hom Q ≫ (isoOfIso { hom := AssociatorBimod.hom M (N.tensorBimod P) Q, inv := AssociatorBimod.inv M (N.tensorBimod P) Q, hom_inv_id := ⋯, inv_hom_id := ⋯ } ⋯ ⋯).hom ≫ M.whiskerLeft (isoOfIso { hom := AssociatorBimod.hom N P Q, inv := AssociatorBimod.inv N P Q, hom_inv_id := ⋯, inv_hom_id := ⋯ } ⋯ ⋯).hom).hom = coequalizer.π (((M.tensorBimod N).tensorBimod P).actRight ▷ Q.X) ((α_ ((M.tensorBimod N).tensorBimod P).X Y.X Q.X).hom ≫ ((M.tensorBimod N).tensorBimod P).X ◁ Q.actLeft) ≫ ((isoOfIso { hom := AssociatorBimod.hom (M.tensorBimod N) P Q, inv := AssociatorBimod.inv (M.tensorBimod N) P Q, hom_inv_id := ⋯, inv_hom_id := ⋯ } ⋯ ⋯).hom ≫ (isoOfIso { hom := AssociatorBimod.hom M N (P.tensorBimod Q), inv := AssociatorBimod.inv M N (P.tensorBimod Q), hom_inv_id := ⋯, inv_hom_id := ⋯ } ⋯ ⋯).hom).hom
-- Mathlib/CategoryTheory/Monoidal/Bimod.lean
C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
inst✝³ : MonoidalCategory C
A B : Mon_ C
M✝ : Bimod A B
inst✝² : HasCoequalizers C
inst✝¹ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorLeft X)
inst✝ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorRight X)
V W X Y Z : Mon_ C
M : Bimod V W
N : Bimod W X
P : Bimod X Y
Q : Bimod Y Z

⊢ coequalizer.π (TensorBimod.actRight (M.tensorBimod N) P ▷ Q.X) ((α_ (TensorBimod.X (M.tensorBimod N) P) Y.X Q.X).hom ≫ TensorBimod.X (M.tensorBimod N) P ◁ Q.actLeft) ≫ colimMap (parallelPairHom (TensorBimod.actRight (M.tensorBimod N) P ▷ Q.X) ((α_ (TensorBimod.X (M.tensorBimod N) P) Y.X Q.X).hom ≫ TensorBimod.X (M.tensorBimod N) P ◁ Q.actLeft) (TensorBimod.actRight M (N.tensorBimod P) ▷ Q.X) ((α_ (TensorBimod.X M (N.tensorBimod P)) Y.X Q.X).hom ≫ TensorBimod.X M (N.tensorBimod P) ◁ Q.actLeft) (coequalizer.desc (AssociatorBimod.homAux M N P) ⋯ ▷ Y.X ▷ Q.X) (coequalizer.desc (AssociatorBimod.homAux M N P) ⋯ ▷ Q.X) ⋯ ⋯) ≫ coequalizer.desc (AssociatorBimod.homAux M (N.tensorBimod P) Q) ⋯ ≫ colimMap (parallelPairHom (M.actRight ▷ TensorBimod.X (N.tensorBimod P) Q) ((α_ M.X W.X (TensorBimod.X (N.tensorBimod P) Q)).hom ≫ M.X ◁ TensorBimod.actLeft (N.tensorBimod P) Q) (M.actRight ▷ TensorBimod.X N (P.tensorBimod Q)) ((α_ M.X W.X (TensorBimod.X N (P.tensorBimod Q))).hom ≫ M.X ◁ TensorBimod.actLeft N (P.tensorBimod Q)) ((M.X ⊗ W.X) ◁ coequalizer.desc (AssociatorBimod.homAux N P Q) ⋯) (M.X ◁ coequalizer.desc (AssociatorBimod.homAux N P Q) ⋯) ⋯ ⋯) = coequalizer.π (TensorBimod.actRight (M.tensorBimod N) P ▷ Q.X) ((α_ (TensorBimod.X (M.tensorBimod N) P) Y.X Q.X).hom ≫ TensorBimod.X (M.tensorBimod N) P ◁ Q.actLeft) ≫ coequalizer.desc (AssociatorBimod.homAux (M.tensorBimod N) P Q) ⋯ ≫ coequalizer.desc (AssociatorBimod.homAux M N (P.tensorBimod Q)) ⋯
-- Mathlib/CategoryTheory/Monoidal/Bimod.lean
C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
inst✝³ : MonoidalCategory C
A B : Mon_ C
M✝ : Bimod A B
inst✝² : HasCoequalizers C
inst✝¹ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorLeft X)
inst✝ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorRight X)
V W X Y Z : Mon_ C
M : Bimod V W
N : Bimod W X
P : Bimod X Y
Q : Bimod Y Z

⊢ ((coequalizer.desc (AssociatorBimod.homAux M N P) ⋯ ▷ Q.X ≫ colimit.ι (parallelPair (TensorBimod.actRight M (N.tensorBimod P) ▷ Q.X) ((α_ (TensorBimod.X M (N.tensorBimod P)) Y.X Q.X).hom ≫ TensorBimod.X M (N.tensorBimod P) ◁ Q.actLeft)) WalkingParallelPair.one) ≫ coequalizer.desc (AssociatorBimod.homAux M (N.tensorBimod P) Q) ⋯) ≫ colimMap (parallelPairHom (M.actRight ▷ TensorBimod.X (N.tensorBimod P) Q) ((α_ M.X W.X (TensorBimod.X (N.tensorBimod P) Q)).hom ≫ M.X ◁ TensorBimod.actLeft (N.tensorBimod P) Q) (M.actRight ▷ TensorBimod.X N (P.tensorBimod Q)) ((α_ M.X W.X (TensorBimod.X N (P.tensorBimod Q))).hom ≫ M.X ◁ TensorBimod.actLeft N (P.tensorBimod Q)) ((M.X ⊗ W.X) ◁ coequalizer.desc (AssociatorBimod.homAux N P Q) ⋯) (M.X ◁ coequalizer.desc (AssociatorBimod.homAux N P Q) ⋯) ⋯ ⋯) = coequalizer.π (TensorBimod.actRight (M.tensorBimod N) P ▷ Q.X) ((α_ (TensorBimod.X (M.tensorBimod N) P) Y.X Q.X).hom ≫ TensorBimod.X (M.tensorBimod N) P ◁ Q.actLeft) ≫ coequalizer.desc (AssociatorBimod.homAux (M.tensorBimod N) P Q) ⋯ ≫ coequalizer.desc (AssociatorBimod.homAux M N (P.tensorBimod Q)) ⋯
-- Mathlib/CategoryTheory/Monoidal/Bimod.lean
C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
inst✝³ : MonoidalCategory C
A B : Mon_ C
M✝ : Bimod A B
inst✝² : HasCoequalizers C
inst✝¹ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorLeft X)
inst✝ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorRight X)
V W X Y Z : Mon_ C
M : Bimod V W
N : Bimod W X
P : Bimod X Y
Q : Bimod Y Z

⊢ coequalizer.desc (AssociatorBimod.homAux M N P) ⋯ ▷ Q.X ≫ AssociatorBimod.homAux M (N.tensorBimod P) Q ≫ colimMap (parallelPairHom (M.actRight ▷ TensorBimod.X (N.tensorBimod P) Q) ((α_ M.X W.X (TensorBimod.X (N.tensorBimod P) Q)).hom ≫ M.X ◁ TensorBimod.actLeft (N.tensorBimod P) Q) (M.actRight ▷ TensorBimod.X N (P.tensorBimod Q)) ((α_ M.X W.X (TensorBimod.X N (P.tensorBimod Q))).hom ≫ M.X ◁ TensorBimod.actLeft N (P.tensorBimod Q)) ((M.X ⊗ W.X) ◁ coequalizer.desc (AssociatorBimod.homAux N P Q) ⋯) (M.X ◁ coequalizer.desc (AssociatorBimod.homAux N P Q) ⋯) ⋯ ⋯) = coequalizer.π (TensorBimod.actRight (M.tensorBimod N) P ▷ Q.X) ((α_ (TensorBimod.X (M.tensorBimod N) P) Y.X Q.X).hom ≫ TensorBimod.X (M.tensorBimod N) P ◁ Q.actLeft) ≫ coequalizer.desc (AssociatorBimod.homAux (M.tensorBimod N) P Q) ⋯ ≫ coequalizer.desc (AssociatorBimod.homAux M N (P.tensorBimod Q)) ⋯
-- Mathlib/CategoryTheory/Monoidal/Bimod.lean
C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
inst✝³ : MonoidalCategory C
A B : Mon_ C
M✝ : Bimod A B
inst✝² : HasCoequalizers C
inst✝¹ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorLeft X)
inst✝ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorRight X)
V W X Y Z : Mon_ C
M : Bimod V W
N : Bimod W X
P : Bimod X Y
Q : Bimod Y Z

⊢ coequalizer.desc (AssociatorBimod.homAux M N P) ⋯ ▷ Q.X ≫ AssociatorBimod.homAux M (N.tensorBimod P) Q ≫ colimMap (parallelPairHom (M.actRight ▷ TensorBimod.X (N.tensorBimod P) Q) ((α_ M.X W.X (TensorBimod.X (N.tensorBimod P) Q)).hom ≫ M.X ◁ TensorBimod.actLeft (N.tensorBimod P) Q) (M.actRight ▷ TensorBimod.X N (P.tensorBimod Q)) ((α_ M.X W.X (TensorBimod.X N (P.tensorBimod Q))).hom ≫ M.X ◁ TensorBimod.actLeft N (P.tensorBimod Q)) ((M.X ⊗ W.X) ◁ coequalizer.desc (AssociatorBimod.homAux N P Q) ⋯) (M.X ◁ coequalizer.desc (AssociatorBimod.homAux N P Q) ⋯) ⋯ ⋯) = AssociatorBimod.homAux (M.tensorBimod N) P Q ≫ coequalizer.desc (AssociatorBimod.homAux M N (P.tensorBimod Q)) ⋯
-- Mathlib/CategoryTheory/Monoidal/Bimod.lean
C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
inst✝³ : MonoidalCategory C
A B : Mon_ C
M✝ : Bimod A B
inst✝² : HasCoequalizers C
inst✝¹ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorLeft X)
inst✝ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorRight X)
V W X Y Z : Mon_ C
M : Bimod V W
N : Bimod W X
P : Bimod X Y
Q : Bimod Y Z

⊢ ((((PreservesCoequalizer.iso (tensorRight P.X) (M.actRight ▷ N.X) ((α_ M.X W.X N.X).hom ≫ M.X ◁ N.actLeft)).inv ≫ coequalizer.desc ((α_ M.X N.X P.X).hom ≫ M.X ◁ coequalizer.π (N.actRight ▷ P.X) ((α_ N.X X.X P.X).hom ≫ N.X ◁ P.actLeft) ≫ coequalizer.π (M.actRight ▷ TensorBimod.X N P) ((α_ M.X W.X (TensorBimod.X N P)).hom ≫ M.X ◁ TensorBimod.actLeft N P)) ⋯) ▷ Q.X ≫ (PreservesCoequalizer.iso (tensorRight Q.X) (M.actRight ▷ TensorBimod.X N P) ((α_ M.X W.X (TensorBimod.X N P)).hom ≫ M.X ◁ TensorBimod.actLeft N P)).inv) ≫ coequalizer.desc ((α_ M.X (TensorBimod.X N P) Q.X).hom ≫ M.X ◁ coequalizer.π (TensorBimod.actRight N P ▷ Q.X) ((α_ (TensorBimod.X N P) Y.X Q.X).hom ≫ TensorBimod.X N P ◁ Q.actLeft) ≫ coequalizer.π (M.actRight ▷ TensorBimod.X (N.tensorBimod P) Q) ((α_ M.X W.X (TensorBimod.X (N.tensorBimod P) Q)).hom ≫ M.X ◁ TensorBimod.actLeft (N.tensorBimod P) Q)) ⋯) ≫ colimMap (parallelPairHom (M.actRight ▷ TensorBimod.X (N.tensorBimod P) Q) ((α_ M.X W.X (TensorBimod.X (N.tensorBimod P) Q)).hom ≫ M.X ◁ TensorBimod.actLeft (N.tensorBimod P) Q) (M.actRight ▷ TensorBimod.X N (P.tensorBimod Q)) ((α_ M.X W.X (TensorBimod.X N (P.tensorBimod Q))).hom ≫ M.X ◁ TensorBimod.actLeft N (P.tensorBimod Q)) ((M.X ⊗ W.X) ◁ coequalizer.desc ((PreservesCoequalizer.iso (tensorRight Q.X) (N.actRight ▷ P.X) ((α_ N.X X.X P.X).hom ≫ N.X ◁ P.actLeft)).inv ≫ coequalizer.desc ((α_ N.X P.X Q.X).hom ≫ N.X ◁ coequalizer.π (P.actRight ▷ Q.X) ((α_ P.X Y.X Q.X).hom ≫ P.X ◁ Q.actLeft) ≫ coequalizer.π (N.actRight ▷ TensorBimod.X P Q) ((α_ N.X X.X (TensorBimod.X P Q)).hom ≫ N.X ◁ TensorBimod.actLeft P Q)) ⋯) ⋯) (M.X ◁ coequalizer.desc ((PreservesCoequalizer.iso (tensorRight Q.X) (N.actRight ▷ P.X) ((α_ N.X X.X P.X).hom ≫ N.X ◁ P.actLeft)).inv ≫ coequalizer.desc ((α_ N.X P.X Q.X).hom ≫ N.X ◁ coequalizer.π (P.actRight ▷ Q.X) ((α_ P.X Y.X Q.X).hom ≫ P.X ◁ Q.actLeft) ≫ coequalizer.π (N.actRight ▷ TensorBimod.X P Q) ((α_ N.X X.X (TensorBimod.X P Q)).hom ≫ N.X ◁ TensorBimod.actLeft P Q)) ⋯) ⋯) ⋯ ⋯) = (α_ (TensorBimod.X M N) P.X Q.X).hom ≫ TensorBimod.X M N ◁ coequalizer.π (P.actRight ▷ Q.X) ((α_ P.X Y.X Q.X).hom ≫ P.X ◁ Q.actLeft) ≫ (PreservesCoequalizer.iso (tensorRight (TensorBimod.X P Q)) (M.actRight ▷ N.X) ((α_ M.X W.X N.X).hom ≫ M.X ◁ N.actLeft)).inv ≫ coequalizer.desc ((α_ M.X N.X (TensorBimod.X P Q)).hom ≫ M.X ◁ coequalizer.π (N.actRight ▷ TensorBimod.X P Q) ((α_ N.X X.X (TensorBimod.X P Q)).hom ≫ N.X ◁ TensorBimod.actLeft P Q) ≫ coequalizer.π (M.actRight ▷ TensorBimod.X N (P.tensorBimod Q)) ((α_ M.X W.X (TensorBimod.X N (P.tensorBimod Q))).hom ≫ M.X ◁ TensorBimod.actLeft N (P.tensorBimod Q))) ⋯
-- Mathlib/CategoryTheory/Monoidal/Bimod.lean
C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
inst✝³ : MonoidalCategory C
A B : Mon_ C
M✝ : Bimod A B
inst✝² : HasCoequalizers C
inst✝¹ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorLeft X)
inst✝ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorRight X)
V W X Y Z : Mon_ C
M : Bimod V W
N : Bimod W X
P : Bimod X Y
Q : Bimod Y Z

⊢ coequalizer.π (M.actRight ▷ N.X) ((α_ M.X W.X N.X).hom ≫ M.X ◁ N.actLeft) ▷ P.X ▷ Q.X ≫ ((((PreservesCoequalizer.iso (tensorRight P.X) (M.actRight ▷ N.X) ((α_ M.X W.X N.X).hom ≫ M.X ◁ N.actLeft)).inv ≫ coequalizer.desc ((α_ M.X N.X P.X).hom ≫ M.X ◁ coequalizer.π (N.actRight ▷ P.X) ((α_ N.X X.X P.X).hom ≫ N.X ◁ P.actLeft) ≫ coequalizer.π (M.actRight ▷ TensorBimod.X N P) ((α_ M.X W.X (TensorBimod.X N P)).hom ≫ M.X ◁ TensorBimod.actLeft N P)) ⋯) ▷ Q.X ≫ (PreservesCoequalizer.iso (tensorRight Q.X) (M.actRight ▷ TensorBimod.X N P) ((α_ M.X W.X (TensorBimod.X N P)).hom ≫ M.X ◁ TensorBimod.actLeft N P)).inv) ≫ coequalizer.desc ((α_ M.X (TensorBimod.X N P) Q.X).hom ≫ M.X ◁ coequalizer.π (TensorBimod.actRight N P ▷ Q.X) ((α_ (TensorBimod.X N P) Y.X Q.X).hom ≫ TensorBimod.X N P ◁ Q.actLeft) ≫ coequalizer.π (M.actRight ▷ TensorBimod.X (N.tensorBimod P) Q) ((α_ M.X W.X (TensorBimod.X (N.tensorBimod P) Q)).hom ≫ M.X ◁ TensorBimod.actLeft (N.tensorBimod P) Q)) ⋯) ≫ colimMap (parallelPairHom (M.actRight ▷ TensorBimod.X (N.tensorBimod P) Q) ((α_ M.X W.X (TensorBimod.X (N.tensorBimod P) Q)).hom ≫ M.X ◁ TensorBimod.actLeft (N.tensorBimod P) Q) (M.actRight ▷ TensorBimod.X N (P.tensorBimod Q)) ((α_ M.X W.X (TensorBimod.X N (P.tensorBimod Q))).hom ≫ M.X ◁ TensorBimod.actLeft N (P.tensorBimod Q)) ((M.X ⊗ W.X) ◁ coequalizer.desc ((PreservesCoequalizer.iso (tensorRight Q.X) (N.actRight ▷ P.X) ((α_ N.X X.X P.X).hom ≫ N.X ◁ P.actLeft)).inv ≫ coequalizer.desc ((α_ N.X P.X Q.X).hom ≫ N.X ◁ coequalizer.π (P.actRight ▷ Q.X) ((α_ P.X Y.X Q.X).hom ≫ P.X ◁ Q.actLeft) ≫ coequalizer.π (N.actRight ▷ TensorBimod.X P Q) ((α_ N.X X.X (TensorBimod.X P Q)).hom ≫ N.X ◁ TensorBimod.actLeft P Q)) ⋯) ⋯) (M.X ◁ coequalizer.desc ((PreservesCoequalizer.iso (tensorRight Q.X) (N.actRight ▷ P.X) ((α_ N.X X.X P.X).hom ≫ N.X ◁ P.actLeft)).inv ≫ coequalizer.desc ((α_ N.X P.X Q.X).hom ≫ N.X ◁ coequalizer.π (P.actRight ▷ Q.X) ((α_ P.X Y.X Q.X).hom ≫ P.X ◁ Q.actLeft) ≫ coequalizer.π (N.actRight ▷ TensorBimod.X P Q) ((α_ N.X X.X (TensorBimod.X P Q)).hom ≫ N.X ◁ TensorBimod.actLeft P Q)) ⋯) ⋯) ⋯ ⋯) = coequalizer.π (M.actRight ▷ N.X) ((α_ M.X W.X N.X).hom ≫ M.X ◁ N.actLeft) ▷ P.X ▷ Q.X ≫ (α_ (TensorBimod.X M N) P.X Q.X).hom ≫ TensorBimod.X M N ◁ coequalizer.π (P.actRight ▷ Q.X) ((α_ P.X Y.X Q.X).hom ≫ P.X ◁ Q.actLeft) ≫ (PreservesCoequalizer.iso (tensorRight (TensorBimod.X P Q)) (M.actRight ▷ N.X) ((α_ M.X W.X N.X).hom ≫ M.X ◁ N.actLeft)).inv ≫ coequalizer.desc ((α_ M.X N.X (TensorBimod.X P Q)).hom ≫ M.X ◁ coequalizer.π (N.actRight ▷ TensorBimod.X P Q) ((α_ N.X X.X (TensorBimod.X P Q)).hom ≫ N.X ◁ TensorBimod.actLeft P Q) ≫ coequalizer.π (M.actRight ▷ TensorBimod.X N (P.tensorBimod Q)) ((α_ M.X W.X (TensorBimod.X N (P.tensorBimod Q))).hom ≫ M.X ◁ TensorBimod.actLeft N (P.tensorBimod Q))) ⋯
-- Mathlib/CategoryTheory/Monoidal/Bimod.lean
C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
inst✝³ : MonoidalCategory C
A B : Mon_ C
M✝ : Bimod A B
inst✝² : HasCoequalizers C
inst✝¹ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorLeft X)
inst✝ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorRight X)
V W X Y Z : Mon_ C
M : Bimod V W
N : Bimod W X
P : Bimod X Y
Q : Bimod Y Z

⊢ ((((α_ M.X N.X P.X).hom ▷ Q.X ≫ (M.X ◁ coequalizer.π (N.actRight ▷ P.X) ((α_ N.X X.X P.X).hom ≫ N.X ◁ P.actLeft)) ▷ Q.X ≫ coequalizer.π (M.actRight ▷ TensorBimod.X N P) ((α_ M.X W.X (TensorBimod.X N P)).hom ≫ M.X ◁ TensorBimod.actLeft N P) ▷ Q.X) ≫ (PreservesCoequalizer.iso (tensorRight Q.X) (M.actRight ▷ TensorBimod.X N P) ((α_ M.X W.X (TensorBimod.X N P)).hom ≫ M.X ◁ TensorBimod.actLeft N P)).inv) ≫ coequalizer.desc ((α_ M.X (TensorBimod.X N P) Q.X).hom ≫ M.X ◁ coequalizer.π (TensorBimod.actRight N P ▷ Q.X) ((α_ (TensorBimod.X N P) Y.X Q.X).hom ≫ TensorBimod.X N P ◁ Q.actLeft) ≫ coequalizer.π (M.actRight ▷ TensorBimod.X (N.tensorBimod P) Q) ((α_ M.X W.X (TensorBimod.X (N.tensorBimod P) Q)).hom ≫ M.X ◁ TensorBimod.actLeft (N.tensorBimod P) Q)) ⋯) ≫ colimMap (parallelPairHom (M.actRight ▷ TensorBimod.X (N.tensorBimod P) Q) ((α_ M.X W.X (TensorBimod.X (N.tensorBimod P) Q)).hom ≫ M.X ◁ TensorBimod.actLeft (N.tensorBimod P) Q) (M.actRight ▷ TensorBimod.X N (P.tensorBimod Q)) ((α_ M.X W.X (TensorBimod.X N (P.tensorBimod Q))).hom ≫ M.X ◁ TensorBimod.actLeft N (P.tensorBimod Q)) ((M.X ⊗ W.X) ◁ coequalizer.desc ((PreservesCoequalizer.iso (tensorRight Q.X) (N.actRight ▷ P.X) ((α_ N.X X.X P.X).hom ≫ N.X ◁ P.actLeft)).inv ≫ coequalizer.desc ((α_ N.X P.X Q.X).hom ≫ N.X ◁ coequalizer.π (P.actRight ▷ Q.X) ((α_ P.X Y.X Q.X).hom ≫ P.X ◁ Q.actLeft) ≫ coequalizer.π (N.actRight ▷ TensorBimod.X P Q) ((α_ N.X X.X (TensorBimod.X P Q)).hom ≫ N.X ◁ TensorBimod.actLeft P Q)) ⋯) ⋯) (M.X ◁ coequalizer.desc ((PreservesCoequalizer.iso (tensorRight Q.X) (N.actRight ▷ P.X) ((α_ N.X X.X P.X).hom ≫ N.X ◁ P.actLeft)).inv ≫ coequalizer.desc ((α_ N.X P.X Q.X).hom ≫ N.X ◁ coequalizer.π (P.actRight ▷ Q.X) ((α_ P.X Y.X Q.X).hom ≫ P.X ◁ Q.actLeft) ≫ coequalizer.π (N.actRight ▷ TensorBimod.X P Q) ((α_ N.X X.X (TensorBimod.X P Q)).hom ≫ N.X ◁ TensorBimod.actLeft P Q)) ⋯) ⋯) ⋯ ⋯) = coequalizer.π (M.actRight ▷ N.X) ((α_ M.X W.X N.X).hom ≫ M.X ◁ N.actLeft) ▷ P.X ▷ Q.X ≫ (α_ (TensorBimod.X M N) P.X Q.X).hom ≫ TensorBimod.X M N ◁ coequalizer.π (P.actRight ▷ Q.X) ((α_ P.X Y.X Q.X).hom ≫ P.X ◁ Q.actLeft) ≫ (PreservesCoequalizer.iso (tensorRight (TensorBimod.X P Q)) (M.actRight ▷ N.X) ((α_ M.X W.X N.X).hom ≫ M.X ◁ N.actLeft)).inv ≫ coequalizer.desc ((α_ M.X N.X (TensorBimod.X P Q)).hom ≫ M.X ◁ coequalizer.π (N.actRight ▷ TensorBimod.X P Q) ((α_ N.X X.X (TensorBimod.X P Q)).hom ≫ N.X ◁ TensorBimod.actLeft P Q) ≫ coequalizer.π (M.actRight ▷ TensorBimod.X N (P.tensorBimod Q)) ((α_ M.X W.X (TensorBimod.X N (P.tensorBimod Q))).hom ≫ M.X ◁ TensorBimod.actLeft N (P.tensorBimod Q))) ⋯
-- Mathlib/CategoryTheory/Monoidal/Bimod.lean
C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
inst✝³ : MonoidalCategory C
A B : Mon_ C
M✝ : Bimod A B
inst✝² : HasCoequalizers C
inst✝¹ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorLeft X)
inst✝ : (X : C) → PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorRight X)
V W X Y Z : Mon_ C
M : Bimod V W
N : Bimod W X
P : Bimod X Y
Q : Bimod Y Z

⊢ (α_ M.X N.X P.X).hom ▷ Q.X ≫ (M.X ◁ coequalizer.π (N.actRight ▷ P.X) ((α_ N.X X.X P.X).hom ≫ N.X ◁ P.actLeft)) ▷ Q.X ≫ ((α_ M.X (TensorBimod.X N P) Q.X).hom ≫ M.X ◁ coequalizer.π (TensorBimod.actRight N P ▷ Q.X) ((α_ (TensorBimod.X N P) Y.X Q.X).hom ≫ TensorBimod.X N P ◁ Q.actLeft) ≫ coequalizer.π (M.actRight ▷ TensorBimod.X (N.tensorBimod P) Q) ((α_ M.X W.X (TensorBimod.X (N.tensorBimod P) Q)).hom ≫ M.X ◁ TensorBimod.actLeft (N.tensorBimod P) Q)) ≫ colimMap (parallelPairHom (M.actRight ▷ TensorBimod.X (N.tensorBimod P) Q) ((α_ M.X W.X (TensorBimod.X (N.tensorBimod P) Q)).hom ≫ M.X ◁ TensorBimod.actLeft (N.tensorBimod P) Q) (M.actRight ▷ TensorBimod.X N (P.tensorBimod Q)) ((α_ M.X W.X (TensorBimod.X N (P.tensorBimod Q))).hom ≫ M.X ◁ TensorBimod.actLeft N (P.tensorBimod Q)) ((M.X ⊗ W.X) ◁ coequalizer.desc ((PreservesCoequalizer.iso (tensorRight Q.X) (N.actRight ▷ P.X) ((α_ N.X X.X P.X).hom ≫ N.X ◁ P.actLeft)).inv ≫ coequalizer.desc ((α_ N.X P.X Q.X).hom ≫ N.X ◁ coequalizer.π (P.actRight ▷ Q.X) ((α_ P.X Y.X Q.X).hom ≫ P.X ◁ Q.actLeft) ≫ coequalizer.π (N.actRight ▷ TensorBimod.X P Q) ((α_ N.X X.X (TensorBimod.X P Q)).hom ≫ N.X ◁ TensorBimod.actLeft P Q)) ⋯) ⋯) (M.X ◁ coequalizer.desc ((PreservesCoequalizer.iso (tensorRight Q.X) (N.actRight ▷ P.X) ((α_ N.X X.X P.X).hom ≫ N.X ◁ P.actLeft)).inv ≫ coequalizer.desc ((α_ N.X P.X Q.X).hom ≫ N.X ◁ coequalizer.π (P.actRight ▷ Q.X) ((α_ P.X Y.X Q.X).hom ≫ P.X ◁ Q.actLeft) ≫ coequalizer.π (N.actRight ▷ TensorBimod.X P Q) ((α_ N.X X.X (TensorBimod.X P Q)).hom ≫ N.X ◁ TensorBimod.actLeft P Q)) ⋯) ⋯) ⋯ ⋯) = coequalizer.π (M.actRight ▷ N.X) ((α_ M.X W.X N.X).hom ≫ M.X ◁ N.actLeft) ▷ P.X ▷ Q.X ≫ (α_ (TensorBimod.X M N) P.X Q.X).hom ≫ TensorBimod.X M N ◁ coequalizer.π (P.actRight ▷ Q.X) ((α_ P.X Y.X Q.X).hom ≫ P.X ◁ Q.actLeft) ≫ (PreservesCoequalizer.iso (tensorRight (TensorBimod.X P Q)) (M.actRight ▷ N.X) ((α_ M.X W.X N.X).hom ≫ M.X ◁ N.actLeft)).inv ≫ coequalizer.desc ((α_ M.X N.X (TensorBimod.X P Q)).hom ≫ M.X ◁ coequalizer.π (N.actRight ▷ TensorBimod.X P Q) ((α_ N.X X.X (TensorBimod.X P Q)).hom ≫ N.X ◁ TensorBimod.actLeft P Q) ≫ coequalizer.π (M.actRight ▷ TensorBimod.X N (P.tensorBimod Q)) ((α_ M.X W.X (TensorBimod.X N (P.tensorBimod Q))).hom ≫ M.X ◁ TensorBimod.actLeft N (P.tensorBimod Q))) ⋯