ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Mathlib/Topology/ContinuousFunction/Bounded.lean
F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : SeminormedAddCommGroup β
f✝ g : α →ᵇ β
x : α
C : ℝ
inst✝ : CompactSpace α
f : α →ᵇ β
M : ℝ
M0 : 0 < M

⊢ dist f 0 < M ↔ ∀ (x : α), dist (f x) 0 < M
-- Mathlib/Geometry/Manifold/ContMDiff/Basic.lean
𝕜 : Type u_1
inst✝¹⁹ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : NormedSpace 𝕜 E
H : Type u_3
inst✝¹⁶ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹⁵ : TopologicalSpace M
inst✝¹⁴ : ChartedSpace H M
inst✝¹³ : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝¹⁰ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝⁹ : TopologicalSpace M'
inst✝⁸ : ChartedSpace H' M'
inst✝⁷ : SmoothManifoldWithCorners I' M'
E'' : Type u_8
inst✝⁶ : NormedAddCommGroup E''
inst✝⁵ : NormedSpace 𝕜 E''
H'' : Type u_9
inst✝⁴ : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M'' : Type u_10
inst✝³ : TopologicalSpace M''
inst✝² : ChartedSpace H'' M''
e✝ : PartialHomeomorph M H
e'✝ : PartialHomeomorph M' H'
f f₁ : M → M'
s s₁ t : Set M
x : M
m n✝ : ℕ∞
inst✝¹ : Nonempty M
e : M → H
h : OpenEmbedding e
inst✝ : Nonempty M'
e' : M' → H'
h' : OpenEmbedding e'
n : WithTop ℕ

⊢ ContMDiffOn I I n (↑(OpenEmbedding.toPartialHomeomorph e h).symm) (range e)
-- Mathlib/Geometry/Manifold/ContMDiff/Basic.lean
𝕜 : Type u_1
inst✝¹⁹ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : NormedSpace 𝕜 E
H : Type u_3
inst✝¹⁶ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹⁵ : TopologicalSpace M
inst✝¹⁴ : ChartedSpace H M
inst✝¹³ : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝¹⁰ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝⁹ : TopologicalSpace M'
inst✝⁸ : ChartedSpace H' M'
inst✝⁷ : SmoothManifoldWithCorners I' M'
E'' : Type u_8
inst✝⁶ : NormedAddCommGroup E''
inst✝⁵ : NormedSpace 𝕜 E''
H'' : Type u_9
inst✝⁴ : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M'' : Type u_10
inst✝³ : TopologicalSpace M''
inst✝² : ChartedSpace H'' M''
e✝ : PartialHomeomorph M H
e'✝ : PartialHomeomorph M' H'
f f₁ : M → M'
s s₁ t : Set M
x : M
m n✝ : ℕ∞
inst✝¹ : Nonempty M
e : M → H
h : OpenEmbedding e
inst✝ : Nonempty M'
e' : M' → H'
h' : OpenEmbedding e'
n : WithTop ℕ
this : SmoothManifoldWithCorners I M

⊢ ContMDiffOn I I n (↑(OpenEmbedding.toPartialHomeomorph e h).symm) (range e)
-- Mathlib/Geometry/Manifold/ContMDiff/Basic.lean
𝕜 : Type u_1
inst✝¹⁹ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : NormedSpace 𝕜 E
H : Type u_3
inst✝¹⁶ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹⁵ : TopologicalSpace M
inst✝¹⁴ : ChartedSpace H M
inst✝¹³ : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝¹⁰ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝⁹ : TopologicalSpace M'
inst✝⁸ : ChartedSpace H' M'
inst✝⁷ : SmoothManifoldWithCorners I' M'
E'' : Type u_8
inst✝⁶ : NormedAddCommGroup E''
inst✝⁵ : NormedSpace 𝕜 E''
H'' : Type u_9
inst✝⁴ : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M'' : Type u_10
inst✝³ : TopologicalSpace M''
inst✝² : ChartedSpace H'' M''
e✝ : PartialHomeomorph M H
e'✝ : PartialHomeomorph M' H'
f f₁ : M → M'
s s₁ t : Set M
x : M
m n✝ : ℕ∞
inst✝¹ : Nonempty M
e : M → H
h : OpenEmbedding e
inst✝ : Nonempty M'
e' : M' → H'
h' : OpenEmbedding e'
n : WithTop ℕ
this : SmoothManifoldWithCorners I M

⊢ ContinuousOn (↑(OpenEmbedding.toPartialHomeomorph e h).symm) (range e) ∧ ∀ (x : H) (y : M), ContDiffOn 𝕜 n (↑(extChartAt I y) ∘ ↑(OpenEmbedding.toPartialHomeomorph e h).symm ∘ ↑(extChartAt I x).symm) ((extChartAt I x).target ∩ ↑(extChartAt I x).symm ⁻¹' (range e ∩ ↑(OpenEmbedding.toPartialHomeomorph e h).symm ⁻¹' (extChartAt I y).source))
-- Mathlib/Geometry/Manifold/PartitionOfUnity.lean
ι : Type uι
E : Type uE
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : FiniteDimensional ℝ E
F : Type uF
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
H : Type uH
inst✝⁶ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : SmoothManifoldWithCorners I M
inst✝² : T2Space M
inst✝¹ : NormalSpace M
inst✝ : SigmaCompactSpace M
s t : Set M
hs : IsClosed s
ht : IsClosed t
hd : Disjoint s t

⊢ ∃ f, (∀ᶠ (x : M) in 𝓝ˢ s, f x = 0) ∧ (∀ᶠ (x : M) in 𝓝ˢ t, f x = 1) ∧ ∀ (x : M), f x ∈ Icc 0 1
-- Mathlib/Geometry/Manifold/PartitionOfUnity.lean
ι : Type uι
E : Type uE
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : FiniteDimensional ℝ E
F : Type uF
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
H : Type uH
inst✝⁶ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : SmoothManifoldWithCorners I M
inst✝² : T2Space M
inst✝¹ : NormalSpace M
inst✝ : SigmaCompactSpace M
s t : Set M
hs : IsClosed s
ht : IsClosed t
hd : Disjoint s t
u : Set M
u_op : IsOpen u
hsu : s ⊆ u
hut : closure u ⊆ tᶜ

⊢ ∃ f, (∀ᶠ (x : M) in 𝓝ˢ s, f x = 0) ∧ (∀ᶠ (x : M) in 𝓝ˢ t, f x = 1) ∧ ∀ (x : M), f x ∈ Icc 0 1
-- Mathlib/Geometry/Manifold/PartitionOfUnity.lean
ι : Type uι
E : Type uE
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : FiniteDimensional ℝ E
F : Type uF
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
H : Type uH
inst✝⁶ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : SmoothManifoldWithCorners I M
inst✝² : T2Space M
inst✝¹ : NormalSpace M
inst✝ : SigmaCompactSpace M
s t : Set M
hs : IsClosed s
ht : IsClosed t
hd : Disjoint s t
u : Set M
u_op : IsOpen u
hsu : s ⊆ u
hut : closure u ⊆ tᶜ
v : Set M
v_op : IsOpen v
htv : t ⊆ v
hvu : closure v ⊆ (closure u)ᶜ

⊢ ∃ f, (∀ᶠ (x : M) in 𝓝ˢ s, f x = 0) ∧ (∀ᶠ (x : M) in 𝓝ˢ t, f x = 1) ∧ ∀ (x : M), f x ∈ Icc 0 1
-- Mathlib/Geometry/Manifold/PartitionOfUnity.lean
ι : Type uι
E : Type uE
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : FiniteDimensional ℝ E
F : Type uF
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
H : Type uH
inst✝⁶ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : SmoothManifoldWithCorners I M
inst✝² : T2Space M
inst✝¹ : NormalSpace M
inst✝ : SigmaCompactSpace M
s t : Set M
hs : IsClosed s
ht : IsClosed t
hd : Disjoint s t
u : Set M
u_op : IsOpen u
hsu : s ⊆ u
hut : closure u ⊆ tᶜ
v : Set M
v_op : IsOpen v
htv : t ⊆ v
hvu : closure v ⊆ (closure u)ᶜ
f : C^⊤⟮I, M; 𝓘(ℝ, ℝ), ℝ⟯
hfu : EqOn (⇑f) 0 (closure u)
hfv : EqOn (⇑f) 1 (closure v)
hf : ∀ (x : M), f x ∈ Icc 0 1

⊢ ∃ f, (∀ᶠ (x : M) in 𝓝ˢ s, f x = 0) ∧ (∀ᶠ (x : M) in 𝓝ˢ t, f x = 1) ∧ ∀ (x : M), f x ∈ Icc 0 1
-- Mathlib/Analysis/Normed/Ring/Units.lean
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : Rˣ

⊢ (fun t => inverse (↑x + t) - ↑x⁻¹ + ↑x⁻¹ * t * ↑x⁻¹) =O[𝓝 0] fun t => ‖t‖ ^ 2
-- Mathlib/Analysis/Normed/Ring/Units.lean
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : Rˣ
x✝ : R

⊢ inverse (↑x + x✝) - ↑x⁻¹ + ↑x⁻¹ * x✝ * ↑x⁻¹ = inverse (↑x + x✝) - (∑ i ∈ range 2, (-↑x⁻¹ * x✝) ^ i) * ↑x⁻¹
-- Mathlib/Topology/LocalAtTarget.lean
α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
s✝ : Set β
ι : Type u_3
U : ι → Opens β
hU : iSup U = ⊤
s : Set β

⊢ IsClosed s ↔ ∀ (i : ι), IsClosed (Subtype.val ⁻¹' s)
-- Mathlib/Algebra/MvPolynomial/Cardinal.lean
σ R : Type u
inst✝ : CommSemiring R

⊢ max (max (lift.{u, u} #R) (lift.{u, u} #σ)) ℵ₀ ≤ max (max #R #σ) ℵ₀
-- Mathlib/Algebra/Algebra/Subalgebra/Basic.lean
R' : Type u'
R : Type u
A : Type v
B : Type w
C : Type w'
inst✝⁶ : CommSemiring R
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : Semiring C
inst✝ : Algebra R C
S T : Subalgebra R A
h : S.toSubsemiring = T.toSubsemiring
x : A

⊢ x ∈ S ↔ x ∈ T
-- Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean
α : Type u
β : Type u_1
inst✝² : Semiring α
inst✝¹ : LinearOrder α
a b c d : α
inst✝ : MulPosStrictMono α
h : 0 < c

⊢ 0 ≤ b * c ↔ 0 ≤ b
-- Mathlib/LinearAlgebra/QuadraticForm/Basic.lean
S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
A : Type u_7
inst✝⁷ : CommSemiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
inst✝⁴ : AddCommMonoid N
inst✝³ : Module R N
Q : QuadraticMap R M N
inst✝² : IsCancelAdd R
inst✝¹ : NoZeroDivisors R
inst✝ : CharZero R
B : BilinMap R M R
x y : M
h : LinearMap.IsSymm B

⊢ B.toQuadraticMap.IsOrtho x y ↔ LinearMap.IsOrtho B x y
-- Mathlib/LinearAlgebra/QuadraticForm/Basic.lean
S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
A : Type u_7
inst✝⁷ : CommSemiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
inst✝⁴ : AddCommMonoid N
inst✝³ : Module R N
Q : QuadraticMap R M N
inst✝² : IsCancelAdd R
inst✝¹ : NoZeroDivisors R
inst✝ : CharZero R
B : BilinMap R M R
x y : M
h : LinearMap.IsSymm B
this : AddCancelMonoid R := let __src := inst✝²; let __src_1 := inferInstanceAs (AddCommMonoid R); AddCancelMonoid.mk ⋯

⊢ B.toQuadraticMap.IsOrtho x y ↔ LinearMap.IsOrtho B x y
-- Mathlib/LinearAlgebra/QuadraticForm/Basic.lean
S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
A : Type u_7
inst✝⁷ : CommSemiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
inst✝⁴ : AddCommMonoid N
inst✝³ : Module R N
Q : QuadraticMap R M N
inst✝² : IsCancelAdd R
inst✝¹ : NoZeroDivisors R
inst✝ : CharZero R
B : BilinMap R M R
x y : M
h : LinearMap.IsSymm B
this : AddCancelMonoid R := let __src := inst✝²; let __src_1 := inferInstanceAs (AddCommMonoid R); AddCancelMonoid.mk ⋯

⊢ (B x) x + (B y) y + ((B y) x + (B x) y) = (B x) x + (B y) y ↔ (B x) y = 0
-- Mathlib/RingTheory/PowerSeries/Order.lean
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
φ ψ : R⟦X⟧

⊢ (φ * ψ).order = φ.order + ψ.order
-- Mathlib/Analysis/InnerProductSpace/LinearPMap.lean
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 F
T : E →ₗ.[𝕜] F
S : F →ₗ.[𝕜] E
hT : Dense ↑T.domain
inst✝ : CompleteSpace E
y : ↥T.adjointDomain
x : ↥T.domain

⊢ ⟪(adjointAux hT) y, ↑x⟫_𝕜 = ⟪↑y, ↑T x⟫_𝕜
-- Mathlib/Analysis/InnerProductSpace/LinearPMap.lean
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 F
T : E →ₗ.[𝕜] F
S : F →ₗ.[𝕜] E
hT : Dense ↑T.domain
inst✝ : CompleteSpace E
y : ↥T.adjointDomain
x : ↥T.domain

⊢ ⟪{ toFun := fun y => (InnerProductSpace.toDual 𝕜 E).symm (adjointDomainMkCLMExtend hT y), map_add' := ⋯ } y, ↑x⟫_𝕜 = ⟪↑y, ↑T x⟫_𝕜
-- Mathlib/Analysis/InnerProductSpace/LinearPMap.lean
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 F
T : E →ₗ.[𝕜] F
S : F →ₗ.[𝕜] E
hT : Dense ↑T.domain
inst✝ : CompleteSpace E
y : ↥T.adjointDomain
x : ↥T.domain

⊢ (adjointDomainMkCLMExtend hT y) ↑x = ⟪↑y, ↑T x⟫_𝕜
-- Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean
k : Type u_1
V1 : Type u_2
P1 : Type u_3
V2 : Type u_4
P2 : Type u_5
V3 : Type u_6
P3 : Type u_7
V4 : Type u_8
P4 : Type u_9
inst✝¹³ : Ring k
inst✝¹² : AddCommGroup V1
inst✝¹¹ : Module k V1
inst✝¹⁰ : AffineSpace V1 P1
inst✝⁹ : AddCommGroup V2
inst✝⁸ : Module k V2
inst✝⁷ : AffineSpace V2 P2
inst✝⁶ : AddCommGroup V3
inst✝⁵ : Module k V3
inst✝⁴ : AffineSpace V3 P3
inst✝³ : AddCommGroup V4
inst✝² : Module k V4
inst✝¹ : AffineSpace V4 P4
inst✝ : NoZeroSMulDivisors k V1
p₀ p₁ : P1
c : k

⊢ (lineMap p₀ p₁) c = p₁ ↔ p₀ = p₁ ∨ c = 1
-- Mathlib/FieldTheory/SeparableDegree.lean
F : Type u
E : Type v
inst✝⁴ : Field F
inst✝³ : Field E
inst✝² : Algebra F E
K : Type w
inst✝¹ : Field K
inst✝ : Algebra F K
α : E
halg : ¬IsAlgebraic F α

⊢ finSepDegree F ↥F⟮α⟯ ∣ finrank F ↥F⟮α⟯
-- Mathlib/FieldTheory/SeparableDegree.lean
F : Type u
E : Type v
inst✝⁴ : Field F
inst✝³ : Field E
inst✝² : Algebra F E
K : Type w
inst✝¹ : Field K
inst✝ : Algebra F K
α : E
halg : ¬IsAlgebraic F α
this : finrank F ↥F⟮α⟯ = 0

⊢ finSepDegree F ↥F⟮α⟯ ∣ finrank F ↥F⟮α⟯
-- Mathlib/FieldTheory/SeparableDegree.lean
F : Type u
E : Type v
inst✝⁴ : Field F
inst✝³ : Field E
inst✝² : Algebra F E
K : Type w
inst✝¹ : Field K
inst✝ : Algebra F K
α : E
halg : ¬IsAlgebraic F α
this : finrank F ↥F⟮α⟯ = 0

⊢ finSepDegree F ↥F⟮α⟯ ∣ 0
-- Mathlib/Order/Interval/Set/Basic.lean
α : Type u_1
β : Type u_2
inst✝ : PartialOrder α
a b c x : α

⊢ x ∈ Ioi a ∪ {a} ↔ x ∈ Ici a
-- Mathlib/CategoryTheory/CommSq.lean
C : Type u_1
inst✝ : Category.{u_2, u_1} C
W✝ X✝ Y✝ Z✝ : C
f✝ : W✝ ⟶ X✝
g✝ : W✝ ⟶ Y✝
h✝ : X✝ ⟶ Z✝
i✝ : Y✝ ⟶ Z✝
W X X' Y Z Z' : C
f : W ⟶ X
f' : X ⟶ X'
g : W ⟶ Y
h : X ⟶ Z
h' : X' ⟶ Z'
i : Y ⟶ Z
i' : Z ⟶ Z'
hsq₁ : CommSq f g h i
hsq₂ : CommSq f' h h' i'

⊢ (f ≫ f') ≫ h' = g ≫ i ≫ i'
-- Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean
V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : Wbtw ℝ p₁ p₂ p₃
hp₂p₁ : ¬p₂ = p₁
hp₃p₁ : ¬p₃ = p₁

⊢ ∡ p₂ p₁ p₃ = 0
-- Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean
V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : Wbtw ℝ p₁ p₂ p₃
hp₂p₁ : ¬p₂ = p₁
hp₃p₁ : ¬p₃ = p₁

⊢ ∠ p₂ p₁ p₃ = 0
-- Mathlib/Data/Finite/Card.lean
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Finite α
this : Fintype α

⊢ Nat.card (Option α) = Nat.card α + 1
-- Mathlib/CategoryTheory/Limits/VanKampen.lean
J : Type v'
inst✝⁹ : Category.{u', v'} J
C : Type u
inst✝⁸ : Category.{v, u} C
K : Type u_1
inst✝⁷ : Category.{?u.207926, u_1} K
D : Type u_2
inst✝⁶ : Category.{u_3, u_2} D
inst✝⁵ : HasColimitsOfShape J C
Gl : C ⥤ D
Gr : D ⥤ C
adj : Gl ⊣ Gr
inst✝⁴ : Gr.Full
inst✝³ : Gr.Faithful
F : J ⥤ D
c : Cocone (F ⋙ Gr)
H : IsVanKampenColimit c
inst✝² : ∀ (X : D) (f : X ⟶ Gl.obj c.pt), HasPullback (Gr.map f) (adj.unit.app c.pt)
inst✝¹ : (X : D) → (f : X ⟶ Gl.obj c.pt) → PreservesLimit (cospan (Gr.map f) (adj.unit.app c.pt)) Gl
inst✝ : (X : C) → (i : J) → (f : X ⟶ c.pt) → PreservesLimit (cospan f (c.ι.app i)) Gl
this✝ : PreservesLimitsOfSize.{?u.211386, ?u.211385, u_3, v, u_2, u} Gr
this : PreservesColimitsOfSize.{u', v', v, u_3, u, u_2} Gl
F' : J ⥤ D
c' : Cocone F'
α : F' ⟶ (F ⋙ Gr) ⋙ Gl
f : c'.pt ⟶ (Gl.mapCocone c).pt
h : α ≫ (Gl.mapCocone c).ι = c'.ι ≫ (Functor.const J).map f
hα : NatTrans.Equifibered α

⊢ Nonempty (IsColimit c') ↔ ∀ (j : J), IsPullback (c'.ι.app j) (α.app j) f ((Gl.mapCocone c).ι.app j)
-- Mathlib/CategoryTheory/Limits/VanKampen.lean
J : Type v'
inst✝⁹ : Category.{u', v'} J
C : Type u
inst✝⁸ : Category.{v, u} C
K : Type u_1
inst✝⁷ : Category.{?u.207926, u_1} K
D : Type u_2
inst✝⁶ : Category.{u_3, u_2} D
inst✝⁵ : HasColimitsOfShape J C
Gl : C ⥤ D
Gr : D ⥤ C
adj : Gl ⊣ Gr
inst✝⁴ : Gr.Full
inst✝³ : Gr.Faithful
F : J ⥤ D
c : Cocone (F ⋙ Gr)
H : IsVanKampenColimit c
inst✝² : ∀ (X : D) (f : X ⟶ Gl.obj c.pt), HasPullback (Gr.map f) (adj.unit.app c.pt)
inst✝¹ : (X : D) → (f : X ⟶ Gl.obj c.pt) → PreservesLimit (cospan (Gr.map f) (adj.unit.app c.pt)) Gl
inst✝ : (X : C) → (i : J) → (f : X ⟶ c.pt) → PreservesLimit (cospan f (c.ι.app i)) Gl
this✝ : PreservesLimitsOfSize.{?u.211386, ?u.211385, u_3, v, u_2, u} Gr
this : PreservesColimitsOfSize.{u', v', v, u_3, u, u_2} Gl
F' : J ⥤ D
c' : Cocone F'
α : F' ⟶ (F ⋙ Gr) ⋙ Gl
f : c'.pt ⟶ (Gl.mapCocone c).pt
h : α ≫ (Gl.mapCocone c).ι = c'.ι ≫ (Functor.const J).map f
hα : NatTrans.Equifibered α

⊢ Nonempty (IsColimit c') → ∀ (j : J), IsPullback (c'.ι.app j) (α.app j) f ((Gl.mapCocone c).ι.app j)
-- Mathlib/CategoryTheory/Limits/VanKampen.lean
J : Type v'
inst✝⁹ : Category.{u', v'} J
C : Type u
inst✝⁸ : Category.{v, u} C
K : Type u_1
inst✝⁷ : Category.{?u.207926, u_1} K
D : Type u_2
inst✝⁶ : Category.{u_3, u_2} D
inst✝⁵ : HasColimitsOfShape J C
Gl : C ⥤ D
Gr : D ⥤ C
adj : Gl ⊣ Gr
inst✝⁴ : Gr.Full
inst✝³ : Gr.Faithful
F : J ⥤ D
c : Cocone (F ⋙ Gr)
H : IsVanKampenColimit c
inst✝² : ∀ (X : D) (f : X ⟶ Gl.obj c.pt), HasPullback (Gr.map f) (adj.unit.app c.pt)
inst✝¹ : (X : D) → (f : X ⟶ Gl.obj c.pt) → PreservesLimit (cospan (Gr.map f) (adj.unit.app c.pt)) Gl
inst✝ : (X : C) → (i : J) → (f : X ⟶ c.pt) → PreservesLimit (cospan f (c.ι.app i)) Gl
this✝ : PreservesLimitsOfSize.{?u.211386, ?u.211385, u_3, v, u_2, u} Gr
this : PreservesColimitsOfSize.{u', v', v, u_3, u, u_2} Gl
F' : J ⥤ D
c' : Cocone F'
α : F' ⟶ (F ⋙ Gr) ⋙ Gl
f : c'.pt ⟶ (Gl.mapCocone c).pt
h : α ≫ (Gl.mapCocone c).ι = c'.ι ≫ (Functor.const J).map f
hα : NatTrans.Equifibered α
hc' : IsColimit c'
j : J
α' : F' ⟶ F := α ≫ (F.associator Gr Gl).hom ≫ whiskerLeft F adj.counit ≫ F.rightUnitor.hom

⊢ IsPullback (c'.ι.app j) (α.app j) f ((Gl.mapCocone c).ι.app j)
-- Mathlib/CategoryTheory/Limits/VanKampen.lean
J : Type v'
inst✝⁹ : Category.{u', v'} J
C : Type u
inst✝⁸ : Category.{v, u} C
K : Type u_1
inst✝⁷ : Category.{?u.207926, u_1} K
D : Type u_2
inst✝⁶ : Category.{u_3, u_2} D
inst✝⁵ : HasColimitsOfShape J C
Gl : C ⥤ D
Gr : D ⥤ C
adj : Gl ⊣ Gr
inst✝⁴ : Gr.Full
inst✝³ : Gr.Faithful
F : J ⥤ D
c : Cocone (F ⋙ Gr)
H : IsVanKampenColimit c
inst✝² : ∀ (X : D) (f : X ⟶ Gl.obj c.pt), HasPullback (Gr.map f) (adj.unit.app c.pt)
inst✝¹ : (X : D) → (f : X ⟶ Gl.obj c.pt) → PreservesLimit (cospan (Gr.map f) (adj.unit.app c.pt)) Gl
inst✝ : (X : C) → (i : J) → (f : X ⟶ c.pt) → PreservesLimit (cospan f (c.ι.app i)) Gl
this✝ : PreservesLimitsOfSize.{?u.211386, ?u.211385, u_3, v, u_2, u} Gr
this : PreservesColimitsOfSize.{u', v', v, u_3, u, u_2} Gl
F' : J ⥤ D
c' : Cocone F'
α : F' ⟶ (F ⋙ Gr) ⋙ Gl
f : c'.pt ⟶ (Gl.mapCocone c).pt
h : α ≫ (Gl.mapCocone c).ι = c'.ι ≫ (Functor.const J).map f
hα : NatTrans.Equifibered α
hc' : IsColimit c'
j : J
α' : F' ⟶ F := α ≫ (F.associator Gr Gl).hom ≫ whiskerLeft F adj.counit ≫ F.rightUnitor.hom
hα' : NatTrans.Equifibered α'

⊢ IsPullback (c'.ι.app j) (α.app j) f ((Gl.mapCocone c).ι.app j)
-- Mathlib/CategoryTheory/Limits/VanKampen.lean
J : Type v'
inst✝⁹ : Category.{u', v'} J
C : Type u
inst✝⁸ : Category.{v, u} C
K : Type u_1
inst✝⁷ : Category.{?u.207926, u_1} K
D : Type u_2
inst✝⁶ : Category.{u_3, u_2} D
inst✝⁵ : HasColimitsOfShape J C
Gl : C ⥤ D
Gr : D ⥤ C
adj : Gl ⊣ Gr
inst✝⁴ : Gr.Full
inst✝³ : Gr.Faithful
F : J ⥤ D
c : Cocone (F ⋙ Gr)
H : IsVanKampenColimit c
inst✝² : ∀ (X : D) (f : X ⟶ Gl.obj c.pt), HasPullback (Gr.map f) (adj.unit.app c.pt)
inst✝¹ : (X : D) → (f : X ⟶ Gl.obj c.pt) → PreservesLimit (cospan (Gr.map f) (adj.unit.app c.pt)) Gl
inst✝ : (X : C) → (i : J) → (f : X ⟶ c.pt) → PreservesLimit (cospan f (c.ι.app i)) Gl
this✝ : PreservesLimitsOfSize.{?u.211386, ?u.211385, u_3, v, u_2, u} Gr
this : PreservesColimitsOfSize.{u', v', v, u_3, u, u_2} Gl
F' : J ⥤ D
c' : Cocone F'
α : F' ⟶ (F ⋙ Gr) ⋙ Gl
f : c'.pt ⟶ (Gl.mapCocone c).pt
h : α ≫ (Gl.mapCocone c).ι = c'.ι ≫ (Functor.const J).map f
hα : NatTrans.Equifibered α
hc' : IsColimit c'
j : J
α' : F' ⟶ F := α ≫ (F.associator Gr Gl).hom ≫ whiskerLeft F adj.counit ≫ F.rightUnitor.hom
hα' : NatTrans.Equifibered α'
hα'' : ∀ (j : J), Gl.map (Gr.map (α'.app j)) = adj.counit.app (F'.toPrefunctor.1 j) ≫ α.app j

⊢ IsPullback (c'.ι.app j) (α.app j) f ((Gl.mapCocone c).ι.app j)
-- Mathlib/CategoryTheory/Limits/VanKampen.lean
J : Type v'
inst✝⁹ : Category.{u', v'} J
C : Type u
inst✝⁸ : Category.{v, u} C
K : Type u_1
inst✝⁷ : Category.{?u.207926, u_1} K
D : Type u_2
inst✝⁶ : Category.{u_3, u_2} D
inst✝⁵ : HasColimitsOfShape J C
Gl : C ⥤ D
Gr : D ⥤ C
adj : Gl ⊣ Gr
inst✝⁴ : Gr.Full
inst✝³ : Gr.Faithful
F : J ⥤ D
c : Cocone (F ⋙ Gr)
H : IsVanKampenColimit c
inst✝² : ∀ (X : D) (f : X ⟶ Gl.obj c.pt), HasPullback (Gr.map f) (adj.unit.app c.pt)
inst✝¹ : (X : D) → (f : X ⟶ Gl.obj c.pt) → PreservesLimit (cospan (Gr.map f) (adj.unit.app c.pt)) Gl
inst✝ : (X : C) → (i : J) → (f : X ⟶ c.pt) → PreservesLimit (cospan f (c.ι.app i)) Gl
this✝² : PreservesLimitsOfSize.{?u.211386, ?u.211385, u_3, v, u_2, u} Gr
this✝¹ : PreservesColimitsOfSize.{u', v', v, u_3, u, u_2} Gl
F' : J ⥤ D
c' : Cocone F'
α : F' ⟶ (F ⋙ Gr) ⋙ Gl
f : c'.pt ⟶ (Gl.mapCocone c).pt
h : α ≫ (Gl.mapCocone c).ι = c'.ι ≫ (Functor.const J).map f
hα : NatTrans.Equifibered α
hc' : IsColimit c'
j : J
α' : F' ⟶ F := α ≫ (F.associator Gr Gl).hom ≫ whiskerLeft F adj.counit ≫ F.rightUnitor.hom
hα' : NatTrans.Equifibered α'
hα'' : ∀ (j : J), Gl.map (Gr.map (α'.app j)) = adj.counit.app (F'.toPrefunctor.1 j) ≫ α.app j
β : F' ⋙ Gr ⋙ Gl ≅ F' := isoWhiskerLeft F' (asIso adj.counit) ≪≫ F'.rightUnitor
hl : IsColimit ((Cocones.precompose β.hom).obj c') := (IsColimit.precomposeHomEquiv β c').symm hc'
hr : IsColimit (Gl.mapCocone (colimit.cocone (F' ⋙ Gr))) := isColimitOfPreserves Gl (colimit.isColimit (F' ⋙ Gr))
this✝ : α.app j = β.inv.app j ≫ Gl.map (Gr.map (α'.app j))
this : f = (hl.coconePointUniqueUpToIso hr).hom ≫ Gl.map (colimit.desc (F' ⋙ Gr) { pt := c.pt, ι := whiskerRight α' Gr ≫ c.ι })

⊢ IsPullback (c'.ι.app j) (β.inv.app j ≫ Gl.map (Gr.map (α'.app j))) ((hl.coconePointUniqueUpToIso hr).hom ≫ Gl.map (colimit.desc (F' ⋙ Gr) { pt := c.pt, ι := whiskerRight α' Gr ≫ c.ι })) ((Gl.mapCocone c).ι.app j)
-- Mathlib/CategoryTheory/Limits/VanKampen.lean
J : Type v'
inst✝⁹ : Category.{u', v'} J
C : Type u
inst✝⁸ : Category.{v, u} C
K : Type u_1
inst✝⁷ : Category.{?u.207926, u_1} K
D : Type u_2
inst✝⁶ : Category.{u_3, u_2} D
inst✝⁵ : HasColimitsOfShape J C
Gl : C ⥤ D
Gr : D ⥤ C
adj : Gl ⊣ Gr
inst✝⁴ : Gr.Full
inst✝³ : Gr.Faithful
F : J ⥤ D
c : Cocone (F ⋙ Gr)
H : IsVanKampenColimit c
inst✝² : ∀ (X : D) (f : X ⟶ Gl.obj c.pt), HasPullback (Gr.map f) (adj.unit.app c.pt)
inst✝¹ : (X : D) → (f : X ⟶ Gl.obj c.pt) → PreservesLimit (cospan (Gr.map f) (adj.unit.app c.pt)) Gl
inst✝ : (X : C) → (i : J) → (f : X ⟶ c.pt) → PreservesLimit (cospan f (c.ι.app i)) Gl
this✝³ : PreservesLimitsOfSize.{0, 0, u_3, v, u_2, u} Gr
this✝² : PreservesColimitsOfSize.{u', v', v, u_3, u, u_2} Gl
F' : J ⥤ D
c' : Cocone F'
α : F' ⟶ (F ⋙ Gr) ⋙ Gl
f : c'.pt ⟶ (Gl.mapCocone c).pt
h : α ≫ (Gl.mapCocone c).ι = c'.ι ≫ (Functor.const J).map f
hα : NatTrans.Equifibered α
hc' : IsColimit c'
j : J
α' : F' ⟶ F := α ≫ (F.associator Gr Gl).hom ≫ whiskerLeft F adj.counit ≫ F.rightUnitor.hom
hα' : NatTrans.Equifibered α'
hα'' : ∀ (j : J), Gl.map (Gr.map (α'.app j)) = adj.counit.app (F'.toPrefunctor.1 j) ≫ α.app j
β : F' ⋙ Gr ⋙ Gl ≅ F' := isoWhiskerLeft F' (asIso adj.counit) ≪≫ F'.rightUnitor
hl : IsColimit ((Cocones.precompose β.hom).obj c') := (IsColimit.precomposeHomEquiv β c').symm hc'
hr : IsColimit (Gl.mapCocone (colimit.cocone (F' ⋙ Gr))) := isColimitOfPreserves Gl (colimit.isColimit (F' ⋙ Gr))
this✝¹ : α.app j = β.inv.app j ≫ Gl.map (Gr.map (α'.app j))
this✝ : f = (hl.coconePointUniqueUpToIso hr).hom ≫ Gl.map (colimit.desc (F' ⋙ Gr) { pt := c.pt, ι := whiskerRight α' Gr ≫ c.ι })
this : IsPullback (Gl.map ((colimit.cocone (F' ⋙ Gr)).ι.app j)) (Gl.map ((whiskerRight α' Gr).app j)) (Gl.map (colimit.desc (F' ⋙ Gr) { pt := c.pt, ι := whiskerRight α' Gr ≫ c.ι })) (Gl.map (c.ι.app j))

⊢ IsPullback (c'.ι.app j) (β.inv.app j ≫ Gl.map (Gr.map (α'.app j))) ((hl.coconePointUniqueUpToIso hr).hom ≫ Gl.map (colimit.desc (F' ⋙ Gr) { pt := c.pt, ι := whiskerRight α' Gr ≫ c.ι })) ((Gl.mapCocone c).ι.app j)