ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- 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)
R S T U : Mon_ C
P : Bimod R S
Q : Bimod S T
L : Bimod T U
\u22a2 P.X ◁ coequalizer.π (Q.actRight ▷ L.X) ((α_ Q.X T.X L.X).hom ≫ Q.X ◁ L.actLeft) ≫ coequalizer.π (P.actRight ▷ coequalizer (Q.actRight ▷ L.X) ((α_ Q.X T.X L.X).hom ≫ Q.X ◁ L.actLeft)) ((α_ P.X S.X (coequalizer (Q.actRight ▷ L.X) ((α_ Q.X T.X L.X).hom ≫ Q.X ◁ L.actLeft))).hom ≫ P.X ◁ TensorBimod.actLeft Q L) = P.X ◁ coequalizer.π (Q.actRight ▷ L.X) ((α_ Q.X T.X L.X).hom ≫ Q.X ◁ L.actLeft) ≫ coequalizer.π (P.actRight ▷ (Q.tensorBimod L).X) ((α_ P.X S.X (Q.tensorBimod L).X).hom ≫ P.X ◁ (Q.tensorBimod L).actLeft)
-- Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : CommMonoid α
inst✝ : OrderedCommMonoid β
f : α → β
p : α → Prop
h_one : f 1 = 1
hp_one : p 1
h_mul : ∀ (a b : α), p a → p b → f (a * b) ≤ f a * f b
hp_mul : ∀ (a b : α), p a → p b → p (a * b)
\u22a2 ∀ (s : Multiset α), (∀ a ∈ s, p a) → f s.prod ≤ (map f s).prod
-- Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : CommMonoid α
inst✝ : OrderedCommMonoid β
f : α → β
p : α → Prop
h_one : f 1 = 1
hp_one : p 1
h_mul : ∀ (a b : α), p a → p b → f (a * b) ≤ f a * f b
hp_mul : ∀ (a b : α), p a → p b → p (a * b)
\u22a2 (∀ a ∈ 0, p a) → f (prod 0) ≤ (map f 0).prod
-- Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : CommMonoid α
inst✝ : OrderedCommMonoid β
f : α → β
p : α → Prop
h_one : f 1 = 1
hp_one : p 1
h_mul : ∀ (a b : α), p a → p b → f (a * b) ≤ f a * f b
hp_mul : ∀ (a b : α), p a → p b → p (a * b)
\u22a2 ∀ (a : α) (s : Multiset α), ((∀ a ∈ s, p a) → f s.prod ≤ (map f s).prod) → (∀ a_2 ∈ a ::ₘ s, p a_2) → f (a ::ₘ s).prod ≤ (map f (a ::ₘ s)).prod
-- Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : CommMonoid α
inst✝ : OrderedCommMonoid β
f : α → β
p : α → Prop
h_one : f 1 = 1
hp_one : p 1
h_mul : ∀ (a b : α), p a → p b → f (a * b) ≤ f a * f b
hp_mul : ∀ (a b : α), p a → p b → p (a * b)
a : α
s : Multiset α
hs : (∀ a ∈ s, p a) → f s.prod ≤ (map f s).prod
hpsa : ∀ a_1 ∈ a ::ₘ s, p a_1
\u22a2 f (a ::ₘ s).prod ≤ (map f (a ::ₘ s)).prod
-- Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : CommMonoid α
inst✝ : OrderedCommMonoid β
f : α → β
p : α → Prop
h_one : f 1 = 1
hp_one : p 1
h_mul : ∀ (a b : α), p a → p b → f (a * b) ≤ f a * f b
hp_mul : ∀ (a b : α), p a → p b → p (a * b)
a : α
s : Multiset α
hs : (∀ a ∈ s, p a) → f s.prod ≤ (map f s).prod
hpsa : ∀ a_1 ∈ a ::ₘ s, p a_1
hps : ∀ x ∈ s, p x
\u22a2 f (a ::ₘ s).prod ≤ (map f (a ::ₘ s)).prod
-- Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : CommMonoid α
inst✝ : OrderedCommMonoid β
f : α → β
p : α → Prop
h_one : f 1 = 1
hp_one : p 1
h_mul : ∀ (a b : α), p a → p b → f (a * b) ≤ f a * f b
hp_mul : ∀ (a b : α), p a → p b → p (a * b)
a : α
s : Multiset α
hs : (∀ a ∈ s, p a) → f s.prod ≤ (map f s).prod
hpsa : ∀ a_1 ∈ a ::ₘ s, p a_1
hps : ∀ x ∈ s, p x
hp_prod : p s.prod
\u22a2 f (a ::ₘ s).prod ≤ (map f (a ::ₘ s)).prod
-- Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : CommMonoid α
inst✝ : OrderedCommMonoid β
f : α → β
p : α → Prop
h_one : f 1 = 1
hp_one : p 1
h_mul : ∀ (a b : α), p a → p b → f (a * b) ≤ f a * f b
hp_mul : ∀ (a b : α), p a → p b → p (a * b)
a : α
s : Multiset α
hs : (∀ a ∈ s, p a) → f s.prod ≤ (map f s).prod
hpsa : ∀ a_1 ∈ a ::ₘ s, p a_1
hps : ∀ x ∈ s, p x
hp_prod : p s.prod
\u22a2 f (a * s.prod) ≤ f a * (map f s).prod
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b : β
f : α → β → m (ForInStep β)
x✝¹ : 0 ≤ as.size
x✝ : β
\u22a2 forIn.loop as f 0 x✝¹ x✝ = forIn (List.drop as.data.length as.data) x✝ f
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b : β
f : α → β → m (ForInStep β)
x✝¹ : 0 ≤ as.size
x✝ : β
\u22a2 forIn.loop as f 0 x✝¹ x✝ = forIn [] x✝ f
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b : β
f : α → β → m (ForInStep β)
i : Nat
x✝¹ : i + 1 ≤ as.size
x✝ : β
j : Nat
ij : j + (i + 1) = as.size
\u22a2 (do let __do_lift ← f as[as.size - 1 - i] x✝ match __do_lift with | ForInStep.done b => pure b | ForInStep.yield b => forIn.loop as f i ⋯ b) = forIn (List.drop j as.data) x✝ f
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b : β
f : α → β → m (ForInStep β)
i : Nat
x✝¹ : i + 1 ≤ as.size
x✝ : β
j : Nat
ij : j + (i + 1) = as.size
j_eq : j = as.size - 1 - i
\u22a2 (do let __do_lift ← f as[as.size - 1 - i] x✝ match __do_lift with | ForInStep.done b => pure b | ForInStep.yield b => forIn.loop as f i ⋯ b) = forIn (List.drop j as.data) x✝ f
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b : β
f : α → β → m (ForInStep β)
i : Nat
x✝¹ : i + 1 ≤ as.size
x✝ : β
j : Nat
ij : j + (i + 1) = as.size
j_eq : j = as.size - 1 - i
this : as.size - 1 - i < as.size
\u22a2 (do let __do_lift ← f as[as.size - 1 - i] x✝ match __do_lift with | ForInStep.done b => pure b | ForInStep.yield b => forIn.loop as f i ⋯ b) = forIn (List.drop j as.data) x✝ f
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b : β
f : α → β → m (ForInStep β)
i : Nat
x✝¹ : i + 1 ≤ as.size
x✝ : β
j : Nat
ij : j + (i + 1) = as.size
j_eq : j = as.size - 1 - i
this✝ : as.size - 1 - i < as.size
this : as[as.size - 1 - i] :: List.drop (j + 1) as.data = List.drop j as.data
\u22a2 (do let __do_lift ← f as[as.size - 1 - i] x✝ match __do_lift with | ForInStep.done b => pure b | ForInStep.yield b => forIn.loop as f i ⋯ b) = forIn (List.drop j as.data) x✝ f
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b : β
f : α → β → m (ForInStep β)
i : Nat
x✝¹ : i + 1 ≤ as.size
x✝ : β
j : Nat
ij : j + (i + 1) = as.size
j_eq : j = as.size - 1 - i
this✝ : as.size - 1 - i < as.size
this : as[as.size - 1 - i] :: List.drop (j + 1) as.data = List.drop j as.data
\u22a2 (do let __do_lift ← f as[as.size - 1 - i] x✝ match __do_lift with | ForInStep.done b => pure b | ForInStep.yield b => forIn.loop as f i ⋯ b) = do let x ← f as[as.size - 1 - i] x✝ match x with | ForInStep.done b => pure b | ForInStep.yield b => forIn (List.drop (j + 1) as.data) b f
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b : β
f : α → β → m (ForInStep β)
i : Nat
x✝¹ : i + 1 ≤ as.size
x✝ : β
j : Nat
ij : j + (i + 1) = as.size
j_eq : j = as.size - 1 - i
this✝ : as.size - 1 - i < as.size
this : as[as.size - 1 - i] :: List.drop (j + 1) as.data = List.drop j as.data
\u22a2 (fun __do_lift => match __do_lift with | ForInStep.done b => pure b | ForInStep.yield b => forIn.loop as f i ⋯ b) = fun x => match x with | ForInStep.done b => pure b | ForInStep.yield b => forIn (List.drop (j + 1) as.data) b f
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b : β
f : α → β → m (ForInStep β)
i : Nat
x✝¹ : i + 1 ≤ as.size
x✝ : β
j : Nat
ij : j + (i + 1) = as.size
j_eq : j = as.size - 1 - i
this✝ : as.size - 1 - i < as.size
this : as[as.size - 1 - i] :: List.drop (j + 1) as.data = List.drop j as.data
x : ForInStep β
\u22a2 (match x with | ForInStep.done b => pure b | ForInStep.yield b => forIn.loop as f i ⋯ b) = match x with | ForInStep.done b => pure b | ForInStep.yield b => forIn (List.drop (j + 1) as.data) b f
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b : β
f : α → β → m (ForInStep β)
i : Nat
x✝¹ : i + 1 ≤ as.size
x✝ : β
j : Nat
ij : j + (i + 1) = as.size
j_eq : j = as.size - 1 - i
this✝ : as.size - 1 - i < as.size
this : as[as.size - 1 - i] :: List.drop (j + 1) as.data = List.drop j as.data
x : ForInStep β
\u22a2 (fun b => forIn.loop as f i ⋯ b) = fun b => forIn (List.drop (j + 1) as.data) b f
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b✝ : β
f : α → β → m (ForInStep β)
i : Nat
x✝¹ : i + 1 ≤ as.size
x✝ : β
j : Nat
ij : j + (i + 1) = as.size
j_eq : j = as.size - 1 - i
this✝ : as.size - 1 - i < as.size
this : as[as.size - 1 - i] :: List.drop (j + 1) as.data = List.drop j as.data
x : ForInStep β
b : β
\u22a2 forIn.loop as f i ⋯ b = forIn (List.drop (j + 1) as.data) b f
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b✝ : β
f : α → β → m (ForInStep β)
i : Nat
x✝¹ : i + 1 ≤ as.size
x✝ : β
j : Nat
ij : j + (i + 1) = as.size
j_eq : j = as.size - 1 - i
this✝ : as.size - 1 - i < as.size
this : as[as.size - 1 - i] :: List.drop (j + 1) as.data = List.drop j as.data
x : ForInStep β
b : β
\u22a2 j + 1 + i = as.size
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b✝ : β
f : α → β → m (ForInStep β)
i : Nat
x✝¹ : i + 1 ≤ as.size
x✝ : β
j : Nat
ij : j + (i + 1) = as.size
j_eq : j = as.size - 1 - i
this✝ : as.size - 1 - i < as.size
this : as[as.size - 1 - i] :: List.drop (j + 1) as.data = List.drop j as.data
x : ForInStep β
b : β
\u22a2 (j + i).succ = j + (i + 1)
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b : β
f : α → β → m (ForInStep β)
\u22a2 forIn.loop as f as.size ⋯ b = forIn as.data b f
-- .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean
m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
as : Array α
b : β
f : α → β → m (ForInStep β)
\u22a2 forIn (List.drop 0 as.data) b f = forIn as.data b f
-- Mathlib/Data/Set/Image.lean
α : Type u_1
s : Set α
t : Set ↑s
x : α
x✝ : x ∈ val '' t
y : { x // x ∈ s }
left✝ : y ∈ t
yvaleq : ↑y = x
\u22a2 ↑y ∈ s
-- Mathlib/Algebra/Polynomial/BigOperators.lean
R : Type u
ι : Type w
inst✝ : CommSemiring R
f✝ : ι → R[X]
t : Multiset R[X]
f : ι → R[X]
n : ℕ
l : Multiset ι
hl : l.Nodup
h : ∀ p ∈ { val := l, nodup := hl }, (f p).natDegree ≤ n
\u22a2 (∏ i ∈ { val := l, nodup := hl }, f i).coeff ({ val := l, nodup := hl }.card * n) = ∏ i ∈ { val := l, nodup := hl }, (f i).coeff n
-- Mathlib/Algebra/Polynomial/BigOperators.lean
R : Type u
ι : Type w
inst✝ : CommSemiring R
f✝ : ι → R[X]
t : Multiset R[X]
f : ι → R[X]
n : ℕ
l : Multiset ι
hl : l.Nodup
h : ∀ p ∈ { val := l, nodup := hl }, (f p).natDegree ≤ n
\u22a2 { val := l, nodup := hl }.card = Multiset.card (Multiset.map f l)
-- Mathlib/Algebra/Polynomial/BigOperators.lean
R : Type u
ι : Type w
inst✝ : CommSemiring R
f✝ : ι → R[X]
t : Multiset R[X]
f : ι → R[X]
n : ℕ
l : Multiset ι
hl : l.Nodup
h : ∀ p ∈ { val := l, nodup := hl }, (f p).natDegree ≤ n
\u22a2 ∏ i ∈ { val := l, nodup := hl }, (f i).coeff n = (Multiset.map (fun p => p.coeff n) (Multiset.map f l)).prod
-- Mathlib/Algebra/Polynomial/BigOperators.lean
R : Type u
ι : Type w
inst✝ : CommSemiring R
f✝ : ι → R[X]
t : Multiset R[X]
f : ι → R[X]
n : ℕ
l : Multiset ι
hl : l.Nodup
h : ∀ p ∈ { val := l, nodup := hl }, (f p).natDegree ≤ n
\u22a2 ∀ p ∈ Multiset.map f l, p.natDegree ≤ n
-- Mathlib/Algebra/GroupWithZero/Center.lean
M₀ : Type u_1
G₀ : Type u_2
inst✝ : GroupWithZero G₀
s : Set G₀
a b : G₀
\u22a2 center G₀ˣ ⊆ Units.val ⁻¹' center G₀
-- Mathlib/Algebra/GroupWithZero/Center.lean
M₀ : Type u_1
G₀ : Type u_2
inst✝ : GroupWithZero G₀
s : Set G₀
a b : G₀
\u22a2 ∀ (x : G₀ˣ), (∀ (g : G₀ˣ), g * x = x * g) → ∀ (g : G₀), g * ↑x = ↑x * g
-- Mathlib/Algebra/GroupWithZero/Center.lean
M₀ : Type u_1
G₀ : Type u_2
inst✝ : GroupWithZero G₀
s : Set G₀
a✝ b : G₀
u : G₀ˣ
hu : ∀ (g : G₀ˣ), g * u = u * g
a : G₀
\u22a2 a * ↑u = ↑u * a
-- Mathlib/Algebra/GroupWithZero/Center.lean
M₀ : Type u_1
G₀ : Type u_2
inst✝ : GroupWithZero G₀
s : Set G₀
a b : G₀
u : G₀ˣ
hu : ∀ (g : G₀ˣ), g * u = u * g
\u22a2 0 * ↑u = ↑u * 0
-- Mathlib/Algebra/GroupWithZero/Center.lean
M₀ : Type u_1
G₀ : Type u_2
inst✝ : GroupWithZero G₀
s : Set G₀
a✝ b : G₀
u : G₀ˣ
hu : ∀ (g : G₀ˣ), g * u = u * g
a : G₀
ha : a ≠ 0
\u22a2 a * ↑u = ↑u * a
-- Mathlib/GroupTheory/Perm/Support.lean
α : Type u_1
p q : Perm α
x : α
\u22a2 x ∈ {x | p⁻¹ x ≠ x} ↔ x ∈ {x | p x ≠ x}
-- Mathlib/GroupTheory/Perm/Support.lean
α : Type u_1
p q : Perm α
x : α
\u22a2 ¬p⁻¹ x = x ↔ ¬p x = x
-- Mathlib/Algebra/Homology/ShortComplex/Homology.lean
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
e : S₁ ≅ S₂
inst✝¹ : S₁.HasHomology
inst✝ : S₂.HasHomology
\u22a2 homologyMap e.hom ≫ homologyMap e.inv = 𝟙 S₁.homology
-- Mathlib/Algebra/Homology/ShortComplex/Homology.lean
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
e : S₁ ≅ S₂
inst✝¹ : S₁.HasHomology
inst✝ : S₂.HasHomology
\u22a2 homologyMap e.inv ≫ homologyMap e.hom = 𝟙 S₂.homology
-- Mathlib/Geometry/Manifold/LocalInvariantProperties.lean
H✝ : Type u_1
M : Type u_2
H' : Type u_3
M' : Type u_4
X : Type u_5
inst✝¹⁴ : TopologicalSpace H✝
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace H✝ M
inst✝¹¹ : TopologicalSpace H'
inst✝¹⁰ : TopologicalSpace M'
inst✝⁹ : ChartedSpace H' M'
inst✝⁸ : TopologicalSpace X
G : StructureGroupoid H✝
G' : StructureGroupoid H'
e✝ e'✝ : PartialHomeomorph M H✝
f✝ f'✝ : PartialHomeomorph M' H'
P : (H✝ → H') → Set H✝ → H✝ → Prop
g g' : M → M'
s t : Set M
x : M
Q : (H✝ → H✝) → Set H✝ → H✝ → Prop
H₁ : Type u_6
inst✝⁷ : TopologicalSpace H₁
H₂ : Type u_7
inst✝⁶ : TopologicalSpace H₂
H₃ : Type u_8
inst✝⁵ : TopologicalSpace H₃
inst✝⁴ : ChartedSpace H₁ H₂
inst✝³ : ChartedSpace H₂ H₃
G₁ : StructureGroupoid H₁
inst✝² : HasGroupoid H₂ G₁
inst✝¹ : ClosedUnderRestriction G₁
G₂ : StructureGroupoid H₂
inst✝ : HasGroupoid H₃ G₂
H : ∀ e ∈ G₂, LiftPropOn G₁.IsLocalStructomorphWithinAt (↑e) e.source
x✝ : ChartedSpace H₁ H₃ := ChartedSpace.comp H₁ H₂ H₃
e : PartialHomeomorph H₃ H₂
he : e ∈ atlas H₂ H₃
f : PartialHomeomorph H₂ H₁
hf : f ∈ atlas H₁ H₂
e' : PartialHomeomorph H₃ H₂
he' : e' ∈ atlas H₂ H₃
f' : PartialHomeomorph H₂ H₁
hf' : f' ∈ atlas H₁ H₂
\u22a2 (e ≫ₕ f).symm ≫ₕ e' ≫ₕ f' ∈ G₁
-- Mathlib/Geometry/Manifold/LocalInvariantProperties.lean
H✝ : Type u_1
M : Type u_2
H' : Type u_3
M' : Type u_4
X : Type u_5
inst✝¹⁴ : TopologicalSpace H✝
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace H✝ M
inst✝¹¹ : TopologicalSpace H'
inst✝¹⁰ : TopologicalSpace M'
inst✝⁹ : ChartedSpace H' M'
inst✝⁸ : TopologicalSpace X
G : StructureGroupoid H✝
G' : StructureGroupoid H'
e✝ e'✝ : PartialHomeomorph M H✝
f✝ f'✝ : PartialHomeomorph M' H'
P : (H✝ → H') → Set H✝ → H✝ → Prop
g g' : M → M'
s t : Set M
x : M
Q : (H✝ → H✝) → Set H✝ → H✝ → Prop
H₁ : Type u_6
inst✝⁷ : TopologicalSpace H₁
H₂ : Type u_7
inst✝⁶ : TopologicalSpace H₂
H₃ : Type u_8
inst✝⁵ : TopologicalSpace H₃
inst✝⁴ : ChartedSpace H₁ H₂
inst✝³ : ChartedSpace H₂ H₃
G₁ : StructureGroupoid H₁
inst✝² : HasGroupoid H₂ G₁
inst✝¹ : ClosedUnderRestriction G₁
G₂ : StructureGroupoid H₂
inst✝ : HasGroupoid H₃ G₂
H : ∀ e ∈ G₂, LiftPropOn G₁.IsLocalStructomorphWithinAt (↑e) e.source
x✝ : ChartedSpace H₁ H₃ := ChartedSpace.comp H₁ H₂ H₃
e : PartialHomeomorph H₃ H₂
he : e ∈ atlas H₂ H₃
f : PartialHomeomorph H₂ H₁
hf : f ∈ atlas H₁ H₂
e' : PartialHomeomorph H₃ H₂
he' : e' ∈ atlas H₂ H₃
f' : PartialHomeomorph H₂ H₁
hf' : f' ∈ atlas H₁ H₂
\u22a2 ∀ x ∈ ((e ≫ₕ f).symm ≫ₕ e' ≫ₕ f').source, ∃ s, IsOpen s ∧ x ∈ s ∧ ((e ≫ₕ f).symm ≫ₕ e' ≫ₕ f').restr s ∈ G₁
-- Mathlib/Geometry/Manifold/LocalInvariantProperties.lean
H✝ : Type u_1
M : Type u_2
H' : Type u_3
M' : Type u_4
X : Type u_5
inst✝¹⁴ : TopologicalSpace H✝
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace H✝ M
inst✝¹¹ : TopologicalSpace H'
inst✝¹⁰ : TopologicalSpace M'
inst✝⁹ : ChartedSpace H' M'
inst✝⁸ : TopologicalSpace X
G : StructureGroupoid H✝
G' : StructureGroupoid H'
e✝ e'✝ : PartialHomeomorph M H✝
f✝ f'✝ : PartialHomeomorph M' H'
P : (H✝ → H') → Set H✝ → H✝ → Prop
g g' : M → M'
s t : Set M
x✝¹ : M
Q : (H✝ → H✝) → Set H✝ → H✝ → Prop
H₁ : Type u_6
inst✝⁷ : TopologicalSpace H₁
H₂ : Type u_7
inst✝⁶ : TopologicalSpace H₂
H₃ : Type u_8
inst✝⁵ : TopologicalSpace H₃
inst✝⁴ : ChartedSpace H₁ H₂
inst✝³ : ChartedSpace H₂ H₃
G₁ : StructureGroupoid H₁
inst✝² : HasGroupoid H₂ G₁
inst✝¹ : ClosedUnderRestriction G₁
G₂ : StructureGroupoid H₂
inst✝ : HasGroupoid H₃ G₂
H : ∀ e ∈ G₂, LiftPropOn G₁.IsLocalStructomorphWithinAt (↑e) e.source
x✝ : ChartedSpace H₁ H₃ := ChartedSpace.comp H₁ H₂ H₃
e : PartialHomeomorph H₃ H₂
he : e ∈ atlas H₂ H₃
f : PartialHomeomorph H₂ H₁
hf : f ∈ atlas H₁ H₂
e' : PartialHomeomorph H₃ H₂
he' : e' ∈ atlas H₂ H₃
f' : PartialHomeomorph H₂ H₁
hf' : f' ∈ atlas H₁ H₂
x : H₁
hx : (x ∈ f.target ∧ ↑f.symm x ∈ e.target) ∧ ↑e.symm (↑f.symm x) ∈ e'.source ∧ ↑e' (↑e.symm (↑f.symm x)) ∈ f'.source
hxs : x ∈ ↑f.symm ⁻¹' (e.symm ≫ₕ e').source
hxs' : x ∈ f.target ∩ ↑f.symm ⁻¹' ((e.symm ≫ₕ e').source ∩ ↑(e.symm ≫ₕ e') ⁻¹' f'.source)
\u22a2 ∃ s, IsOpen s ∧ x ∈ s ∧ ((e ≫ₕ f).symm ≫ₕ e' ≫ₕ f').restr s ∈ G₁
-- Mathlib/Geometry/Manifold/LocalInvariantProperties.lean
H✝ : Type u_1
M : Type u_2
H' : Type u_3
M' : Type u_4
X : Type u_5
inst✝¹⁴ : TopologicalSpace H✝
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace H✝ M
inst✝¹¹ : TopologicalSpace H'
inst✝¹⁰ : TopologicalSpace M'
inst✝⁹ : ChartedSpace H' M'
inst✝⁸ : TopologicalSpace X
G : StructureGroupoid H✝
G' : StructureGroupoid H'
e✝ e'✝ : PartialHomeomorph M H✝
f✝ f'✝ : PartialHomeomorph M' H'
P : (H✝ → H') → Set H✝ → H✝ → Prop
g g' : M → M'
s t : Set M
x✝¹ : M
Q : (H✝ → H✝) → Set H✝ → H✝ → Prop
H₁ : Type u_6
inst✝⁷ : TopologicalSpace H₁
H₂ : Type u_7
inst✝⁶ : TopologicalSpace H₂
H₃ : Type u_8
inst✝⁵ : TopologicalSpace H₃
inst✝⁴ : ChartedSpace H₁ H₂
inst✝³ : ChartedSpace H₂ H₃
G₁ : StructureGroupoid H₁
inst✝² : HasGroupoid H₂ G₁
inst✝¹ : ClosedUnderRestriction G₁
G₂ : StructureGroupoid H₂
inst✝ : HasGroupoid H₃ G₂
H : ∀ e ∈ G₂, LiftPropOn G₁.IsLocalStructomorphWithinAt (↑e) e.source
x✝ : ChartedSpace H₁ H₃ := ChartedSpace.comp H₁ H₂ H₃
e : PartialHomeomorph H₃ H₂
he : e ∈ atlas H₂ H₃
f : PartialHomeomorph H₂ H₁
hf : f ∈ atlas H₁ H₂
e' : PartialHomeomorph H₃ H₂
he' : e' ∈ atlas H₂ H₃
f' : PartialHomeomorph H₂ H₁
hf' : f' ∈ atlas H₁ H₂
x : H₁
hx : (x ∈ f.target ∧ ↑f.symm x ∈ e.target) ∧ ↑e.symm (↑f.symm x) ∈ e'.source ∧ ↑e' (↑e.symm (↑f.symm x)) ∈ f'.source
hxs : x ∈ ↑f.symm ⁻¹' (e.symm ≫ₕ e').source
hxs' : x ∈ f.target ∩ ↑f.symm ⁻¹' ((e.symm ≫ₕ e').source ∩ ↑(e.symm ≫ₕ e') ⁻¹' f'.source)
φ : PartialHomeomorph H₁ H₁
hφG₁ : φ ∈ G₁
hφ : EqOn (↑f' ∘ ↑(e.symm ≫ₕ e') ∘ ↑f.symm) (↑φ.toPartialEquiv) (↑f.symm ⁻¹' (e.symm ≫ₕ e').source ∩ φ.source)
hφ_dom : x ∈ φ.source
\u22a2 ∃ s, IsOpen s ∧ x ∈ s ∧ ((e ≫ₕ f).symm ≫ₕ e' ≫ₕ f').restr s ∈ G₁
-- Mathlib/Geometry/Manifold/LocalInvariantProperties.lean
H✝ : Type u_1
M : Type u_2
H' : Type u_3
M' : Type u_4
X : Type u_5
inst✝¹⁴ : TopologicalSpace H✝
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace H✝ M
inst✝¹¹ : TopologicalSpace H'
inst✝¹⁰ : TopologicalSpace M'
inst✝⁹ : ChartedSpace H' M'
inst✝⁸ : TopologicalSpace X
G : StructureGroupoid H✝
G' : StructureGroupoid H'
e✝ e'✝ : PartialHomeomorph M H✝
f✝ f'✝ : PartialHomeomorph M' H'
P : (H✝ → H') → Set H✝ → H✝ → Prop
g g' : M → M'
s t : Set M
x✝¹ : M
Q : (H✝ → H✝) → Set H✝ → H✝ → Prop
H₁ : Type u_6
inst✝⁷ : TopologicalSpace H₁
H₂ : Type u_7
inst✝⁶ : TopologicalSpace H₂
H₃ : Type u_8
inst✝⁵ : TopologicalSpace H₃
inst✝⁴ : ChartedSpace H₁ H₂
inst✝³ : ChartedSpace H₂ H₃
G₁ : StructureGroupoid H₁
inst✝² : HasGroupoid H₂ G₁
inst✝¹ : ClosedUnderRestriction G₁
G₂ : StructureGroupoid H₂
inst✝ : HasGroupoid H₃ G₂
H : ∀ e ∈ G₂, LiftPropOn G₁.IsLocalStructomorphWithinAt (↑e) e.source
x✝ : ChartedSpace H₁ H₃ := ChartedSpace.comp H₁ H₂ H₃
e : PartialHomeomorph H₃ H₂
he : e ∈ atlas H₂ H₃
f : PartialHomeomorph H₂ H₁
hf : f ∈ atlas H₁ H₂
e' : PartialHomeomorph H₃ H₂
he' : e' ∈ atlas H₂ H₃
f' : PartialHomeomorph H₂ H₁
hf' : f' ∈ atlas H₁ H₂
x : H₁
hx : (x ∈ f.target ∧ ↑f.symm x ∈ e.target) ∧ ↑e.symm (↑f.symm x) ∈ e'.source ∧ ↑e' (↑e.symm (↑f.symm x)) ∈ f'.source
hxs : x ∈ ↑f.symm ⁻¹' (e.symm ≫ₕ e').source
hxs' : x ∈ f.target ∩ ↑f.symm ⁻¹' ((e.symm ≫ₕ e').source ∩ ↑(e.symm ≫ₕ e') ⁻¹' f'.source)
φ : PartialHomeomorph H₁ H₁
hφG₁ : φ ∈ G₁
hφ_dom : x ∈ φ.source
hφ : EqOn (↑(f.symm ≫ₕ e.symm ≫ₕ e' ≫ₕ f')) (↑φ.toPartialEquiv) (↑f.symm ⁻¹' (e.symm ≫ₕ e').source ∩ φ.source)
\u22a2 ∃ s, IsOpen s ∧ x ∈ s ∧ ((e ≫ₕ f).symm ≫ₕ e' ≫ₕ f').restr s ∈ G₁
-- Mathlib/Geometry/Manifold/LocalInvariantProperties.lean
H✝ : Type u_1
M : Type u_2
H' : Type u_3
M' : Type u_4
X : Type u_5
inst✝¹⁴ : TopologicalSpace H✝
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace H✝ M
inst✝¹¹ : TopologicalSpace H'
inst✝¹⁰ : TopologicalSpace M'
inst✝⁹ : ChartedSpace H' M'
inst✝⁸ : TopologicalSpace X
G : StructureGroupoid H✝
G' : StructureGroupoid H'
e✝ e'✝ : PartialHomeomorph M H✝
f✝ f'✝ : PartialHomeomorph M' H'
P : (H✝ → H') → Set H✝ → H✝ → Prop
g g' : M → M'
s t : Set M
x✝¹ : M
Q : (H✝ → H✝) → Set H✝ → H✝ → Prop
H₁ : Type u_6
inst✝⁷ : TopologicalSpace H₁
H₂ : Type u_7
inst✝⁶ : TopologicalSpace H₂
H₃ : Type u_8
inst✝⁵ : TopologicalSpace H₃
inst✝⁴ : ChartedSpace H₁ H₂
inst✝³ : ChartedSpace H₂ H₃
G₁ : StructureGroupoid H₁
inst✝² : HasGroupoid H₂ G₁
inst✝¹ : ClosedUnderRestriction G₁
G₂ : StructureGroupoid H₂
inst✝ : HasGroupoid H₃ G₂
H : ∀ e ∈ G₂, LiftPropOn G₁.IsLocalStructomorphWithinAt (↑e) e.source
x✝ : ChartedSpace H₁ H₃ := ChartedSpace.comp H₁ H₂ H₃
e : PartialHomeomorph H₃ H₂
he : e ∈ atlas H₂ H₃
f : PartialHomeomorph H₂ H₁
hf : f ∈ atlas H₁ H₂
e' : PartialHomeomorph H₃ H₂
he' : e' ∈ atlas H₂ H₃
f' : PartialHomeomorph H₂ H₁
hf' : f' ∈ atlas H₁ H₂
x : H₁
hx : (x ∈ f.target ∧ ↑f.symm x ∈ e.target) ∧ ↑e.symm (↑f.symm x) ∈ e'.source ∧ ↑e' (↑e.symm (↑f.symm x)) ∈ f'.source
hxs : x ∈ ↑f.symm ⁻¹' (e.symm ≫ₕ e').source
hxs' : x ∈ f.target ∩ ↑f.symm ⁻¹' ((e.symm ≫ₕ e').source ∩ ↑(e.symm ≫ₕ e') ⁻¹' f'.source)
φ : PartialHomeomorph H₁ H₁
hφG₁ : φ ∈ G₁
hφ_dom : x ∈ φ.source
hφ : EqOn (↑(f.symm ≫ₕ e.symm ≫ₕ e' ≫ₕ f')) (↑φ.toPartialEquiv) (↑f.symm ⁻¹' (e.symm ≫ₕ e').source ∩ φ.source)
\u22a2 ∃ s, IsOpen s ∧ x ∈ s ∧ (f.symm ≫ₕ e.symm ≫ₕ e' ≫ₕ f').restr s ∈ G₁