1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CstarRing.norm_coe_unitary_mul
File: Mathlib/Analysis/NormedSpace/Star/Basic.lean

tactic: nontriviality E
state_before: 𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
U : ↥(unitary E)
A : E
⊢ ‖↑U * A‖ = ‖A‖
state_after: 𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
U : ↥(unitary E)
A : E
a✝ : Nontrivial E
⊢ ‖↑U * A‖ = ‖A‖

tactic: refine le_antisymm ?_ ?_
state_before: 𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
U : ↥(unitary E)
A : E
a✝ : Nontrivial E
⊢ ‖↑U * A‖ = ‖A‖
state_after: case refine_1
𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
U : ↥(unitary E)
A : E
a✝ : Nontrivial E
⊢ ‖↑U * A‖ ≤ ‖A‖

case refine_2
𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
U : ↥(unitary E)
A : E
a✝ : Nontrivial E
⊢ ‖A‖ ≤ ‖↑U * A‖

tactic: calc
  _ ≤ ‖(U : E)‖ * ‖A‖ := norm_mul_le _ _
  _ = ‖A‖ := by rw [norm_coe_unitary, one_mul]
state_before: case refine_1
𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
U : ↥(unitary E)
A : E
a✝ : Nontrivial E
⊢ ‖↑U * A‖ ≤ ‖A‖
state_after: no goals

tactic: rw [norm_coe_unitary, one_mul]
state_before: 𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
U : ↥(unitary E)
A : E
a✝ : Nontrivial E
⊢ ‖↑U‖ * ‖A‖ = ‖A‖
state_after: no goals

tactic: calc
  _ = ‖(U : E)⋆ * U * A‖ := by rw [unitary.coe_star_mul_self U, one_mul]
  _ ≤ ‖(U : E)⋆‖ * ‖(U : E) * A‖ := by
    rw [mul_assoc]
    exact norm_mul_le _ _
  _ = ‖(U : E) * A‖ := by rw [norm_star, norm_coe_unitary, one_mul]
state_before: case refine_2
𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
U : ↥(unitary E)
A : E
a✝ : Nontrivial E
⊢ ‖A‖ ≤ ‖↑U * A‖
state_after: no goals

tactic: rw [unitary.coe_star_mul_self U, one_mul]
state_before: 𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
U : ↥(unitary E)
A : E
a✝ : Nontrivial E
⊢ ‖A‖ = ‖(↑U)⋆ * ↑U * A‖
state_after: no goals

tactic: rw [mul_assoc]
state_before: 𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
U : ↥(unitary E)
A : E
a✝ : Nontrivial E
⊢ ‖(↑U)⋆ * ↑U * A‖ ≤ ‖(↑U)⋆‖ * ‖↑U * A‖
state_after: 𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
U : ↥(unitary E)
A : E
a✝ : Nontrivial E
⊢ ‖(↑U)⋆ * (↑U * A)‖ ≤ ‖(↑U)⋆‖ * ‖↑U * A‖

tactic: exact norm_mul_le _ _
state_before: 𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
U : ↥(unitary E)
A : E
a✝ : Nontrivial E
⊢ ‖(↑U)⋆ * (↑U * A)‖ ≤ ‖(↑U)⋆‖ * ‖↑U * A‖
state_after: no goals

tactic: rw [norm_star, norm_coe_unitary, one_mul]
state_before: 𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
U : ↥(unitary E)
A : E
a✝ : Nontrivial E
⊢ ‖(↑U)⋆‖ * ‖↑U * A‖ = ‖↑U * A‖
state_after: no goals
Theorem: Finset.disjoint_product
File: Mathlib/Data/Finset/Prod.lean

tactic: simp_rw [← disjoint_coe, coe_product, Set.disjoint_prod]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s s' : Finset α
t t' : Finset β
a : α
b : β
⊢ _root_.Disjoint (s ×ˢ t) (s' ×ˢ t') ↔ _root_.Disjoint s s' ∨ _root_.Disjoint t t'
state_after: no goals
Theorem: Primrec.option_isSome
File: Mathlib/Computability/Primrec.lean

tactic: cases o <;> rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
σ : Type u_5
inst✝⁴ : Primcodable α
inst✝³ : Primcodable β
inst✝² : Primcodable γ
inst✝¹ : Primcodable δ
inst✝ : Primcodable σ
o : Option α
⊢ (Option.casesOn (id o) false fun b => true) = o.isSome
state_after: no goals
Theorem: Nat.floor_le_ceil
File: Mathlib/Algebra/Order/Floor.lean

tactic: obtain ha | ha := le_total a 0
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a✝ : α
n : ℕ
a : α
⊢ ⌊a⌋₊ ≤ ⌈a⌉₊
state_after: case inl
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a✝ : α
n : ℕ
a : α
ha : a ≤ 0
⊢ ⌊a⌋₊ ≤ ⌈a⌉₊

case inr
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a✝ : α
n : ℕ
a : α
ha : 0 ≤ a
⊢ ⌊a⌋₊ ≤ ⌈a⌉₊

tactic: rw [floor_of_nonpos ha]
state_before: case inl
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a✝ : α
n : ℕ
a : α
ha : a ≤ 0
⊢ ⌊a⌋₊ ≤ ⌈a⌉₊
state_after: case inl
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a✝ : α
n : ℕ
a : α
ha : a ≤ 0
⊢ 0 ≤ ⌈a⌉₊

tactic: exact Nat.zero_le _
state_before: case inl
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a✝ : α
n : ℕ
a : α
ha : a ≤ 0
⊢ 0 ≤ ⌈a⌉₊
state_after: no goals

tactic: exact cast_le.1 ((floor_le ha).trans <| le_ceil _)
state_before: case inr
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a✝ : α
n : ℕ
a : α
ha : 0 ≤ a
⊢ ⌊a⌋₊ ≤ ⌈a⌉₊
state_after: no goals
Theorem: LinearMap.baseChange_mul
File: Mathlib/RingTheory/TensorProduct/Basic.lean

tactic: ext
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
inst✝¹⁰ : CommSemiring R
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : Semiring B
inst✝⁶ : Algebra R B
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
r : R
f✝ g✝ : M →ₗ[R] N
f g : Module.End R M
⊢ baseChange A (f * g) = baseChange A f * baseChange A g
state_after: case a.h.h
R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
inst✝¹⁰ : CommSemiring R
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : Semiring B
inst✝⁶ : Algebra R B
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
r : R
f✝ g✝ : M →ₗ[R] N
f g : Module.End R M
x✝ : M
⊢ ((AlgebraTensorModule.curry (baseChange A (f * g))) 1) x✝ =
    ((AlgebraTensorModule.curry (baseChange A f * baseChange A g)) 1) x✝

tactic: simp
state_before: case a.h.h
R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
inst✝¹⁰ : CommSemiring R
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : Semiring B
inst✝⁶ : Algebra R B
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
r : R
f✝ g✝ : M →ₗ[R] N
f g : Module.End R M
x✝ : M
⊢ ((AlgebraTensorModule.curry (baseChange A (f * g))) 1) x✝ =
    ((AlgebraTensorModule.curry (baseChange A f * baseChange A g)) 1) x✝
state_after: no goals
Theorem: Sym.count_coe_fill_of_ne
File: Mathlib/Data/Sym/Basic.lean

tactic: suffices x ∉ Multiset.replicate i a by simp [coe_fill, coe_replicate, this]
state_before: α : Type u_1
β : Type u_2
n n' m : ℕ
s✝ : Sym α n
a✝ b : α
inst✝ : DecidableEq α
a x : α
i : Fin (n + 1)
s : Sym α (n - ↑i)
hx : x ≠ a
⊢ count x ↑(fill a i s) = count x ↑s
state_after: α : Type u_1
β : Type u_2
n n' m : ℕ
s✝ : Sym α n
a✝ b : α
inst✝ : DecidableEq α
a x : α
i : Fin (n + 1)
s : Sym α (n - ↑i)
hx : x ≠ a
⊢ x ∉ Multiset.replicate (↑i) a

tactic: simp [Multiset.mem_replicate, hx]
state_before: α : Type u_1
β : Type u_2
n n' m : ℕ
s✝ : Sym α n
a✝ b : α
inst✝ : DecidableEq α
a x : α
i : Fin (n + 1)
s : Sym α (n - ↑i)
hx : x ≠ a
⊢ x ∉ Multiset.replicate (↑i) a
state_after: no goals

tactic: simp [coe_fill, coe_replicate, this]
state_before: α : Type u_1
β : Type u_2
n n' m : ℕ
s✝ : Sym α n
a✝ b : α
inst✝ : DecidableEq α
a x : α
i : Fin (n + 1)
s : Sym α (n - ↑i)
hx : x ≠ a
this : x ∉ Multiset.replicate (↑i) a
⊢ count x ↑(fill a i s) = count x ↑s
state_after: no goals
Theorem: SimpleGraph.Walk.darts_append
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: induction p <;> simp [*]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v w : V
p : G.Walk u v
p' : G.Walk v w
⊢ (p.append p').darts = p.darts ++ p'.darts
state_after: no goals
Theorem: Ordinal.mul_isLimit_left
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rcases zero_or_succ_or_limit b with (rfl | ⟨b, rfl⟩ | lb)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal.{u_4}
l : a.IsLimit
b0 : 0 < b
⊢ (a * b).IsLimit
state_after: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a : Ordinal.{u_4}
l : a.IsLimit
b0 : 0 < 0
⊢ (a * 0).IsLimit

case inr.inl.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a : Ordinal.{u_4}
l : a.IsLimit
b : Ordinal.{u_4}
b0 : 0 < succ b
⊢ (a * succ b).IsLimit

case inr.inr
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal.{u_4}
l : a.IsLimit
b0 : 0 < b
lb : b.IsLimit
⊢ (a * b).IsLimit

tactic: exact b0.false.elim
state_before: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a : Ordinal.{u_4}
l : a.IsLimit
b0 : 0 < 0
⊢ (a * 0).IsLimit
state_after: no goals

tactic: rw [mul_succ]
state_before: case inr.inl.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a : Ordinal.{u_4}
l : a.IsLimit
b : Ordinal.{u_4}
b0 : 0 < succ b
⊢ (a * succ b).IsLimit
state_after: case inr.inl.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a : Ordinal.{u_4}
l : a.IsLimit
b : Ordinal.{u_4}
b0 : 0 < succ b
⊢ (a * b + a).IsLimit

tactic: exact add_isLimit _ l
state_before: case inr.inl.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a : Ordinal.{u_4}
l : a.IsLimit
b : Ordinal.{u_4}
b0 : 0 < succ b
⊢ (a * b + a).IsLimit
state_after: no goals

tactic: exact mul_isLimit l.pos lb
state_before: case inr.inr
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal.{u_4}
l : a.IsLimit
b0 : 0 < b
lb : b.IsLimit
⊢ (a * b).IsLimit
state_after: no goals
Theorem: CategoryTheory.Abelian.epi_snd_of_isLimit
File: Mathlib/CategoryTheory/Abelian/Basic.lean

tactic: haveI : Epi (NatTrans.app (limit.cone (cospan f g)).π WalkingCospan.right) :=
  Abelian.epi_pullback_of_epi_f f g
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Abelian C
inst✝¹ : HasPullbacks C
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : Epi f
s : PullbackCone f g
hs : IsLimit s
⊢ Epi s.snd
state_after: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Abelian C
inst✝¹ : HasPullbacks C
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : Epi f
s : PullbackCone f g
hs : IsLimit s
this : Epi ((limit.cone (cospan f g)).π.app WalkingCospan.right)
⊢ Epi s.snd

tactic: apply epi_of_epi_fac (IsLimit.conePointUniqueUpToIso_hom_comp (limit.isLimit _) hs _)
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Abelian C
inst✝¹ : HasPullbacks C
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : Epi f
s : PullbackCone f g
hs : IsLimit s
this : Epi ((limit.cone (cospan f g)).π.app WalkingCospan.right)
⊢ Epi s.snd
state_after: no goals
Theorem: contDiff_top
File: Mathlib/Analysis/Calculus/ContDiff/Defs.lean

tactic: simp [contDiffOn_univ.symm, contDiffOn_top]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
⊢ ContDiff 𝕜 ⊤ f ↔ ∀ (n : ℕ), ContDiff 𝕜 (↑n) f
state_after: no goals
Theorem: LSeries.norm_term_eq
File: Mathlib/NumberTheory/LSeries/Basic.lean

tactic: rcases eq_or_ne n 0 with rfl | hn
state_before: f : ℕ → ℂ
s : ℂ
n : ℕ
⊢ ‖term f s n‖ = if n = 0 then 0 else ‖f n‖ / ↑n ^ s.re
state_after: case inl
f : ℕ → ℂ
s : ℂ
⊢ ‖term f s 0‖ = if 0 = 0 then 0 else ‖f 0‖ / ↑0 ^ s.re

case inr
f : ℕ → ℂ
s : ℂ
n : ℕ
hn : n ≠ 0
⊢ ‖term f s n‖ = if n = 0 then 0 else ‖f n‖ / ↑n ^ s.re

tactic: simp only [term_zero, norm_zero, ↓reduceIte]
state_before: case inl
f : ℕ → ℂ
s : ℂ
⊢ ‖term f s 0‖ = if 0 = 0 then 0 else ‖f 0‖ / ↑0 ^ s.re
state_after: no goals

tactic: rw [if_neg hn, term_of_ne_zero hn, norm_div, norm_natCast_cpow_of_pos <| Nat.pos_of_ne_zero hn]
state_before: case inr
f : ℕ → ℂ
s : ℂ
n : ℕ
hn : n ≠ 0
⊢ ‖term f s n‖ = if n = 0 then 0 else ‖f n‖ / ↑n ^ s.re
state_after: no goals
Theorem: CategoryTheory.Presieve.isSheafFor_singleton_iso
File: Mathlib/CategoryTheory/Sites/IsSheafFor.lean

tactic: intro x _
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
P : Cᵒᵖ ⥤ Type w
⊢ IsSheafFor P (singleton (𝟙 X))
state_after: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P (singleton (𝟙 X))
a✝ : x.Compatible
⊢ ∃! t, x.IsAmalgamation t

tactic: refine ⟨x _ (Presieve.singleton_self _), ?_, ?_⟩
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P (singleton (𝟙 X))
a✝ : x.Compatible
⊢ ∃! t, x.IsAmalgamation t
state_after: case refine_1
C : Type u₁
inst✝ : Category.{v₁, u₁} C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P (singleton (𝟙 X))
a✝ : x.Compatible
⊢ (fun t => x.IsAmalgamation t) (x (𝟙 X) ⋯)

case refine_2
C : Type u₁
inst✝ : Category.{v₁, u₁} C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P (singleton (𝟙 X))
a✝ : x.Compatible
⊢ ∀ (y : P.obj { unop := X }), (fun t => x.IsAmalgamation t) y → y = x (𝟙 X) ⋯

tactic: rintro _ _ ⟨rfl, rfl⟩
state_before: case refine_1
C : Type u₁
inst✝ : Category.{v₁, u₁} C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P (singleton (𝟙 X))
a✝ : x.Compatible
⊢ (fun t => x.IsAmalgamation t) (x (𝟙 X) ⋯)
state_after: case refine_1.mk
C : Type u₁
inst✝ : Category.{v₁, u₁} C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y✝ : C
S : Sieve X
R : Presieve X
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P (singleton (𝟙 X))
a✝ : x.Compatible
Y : C
⊢ P.map (𝟙 X).op (x (𝟙 X) ⋯) = x (𝟙 X) ⋯

tactic: simp
state_before: case refine_1.mk
C : Type u₁
inst✝ : Category.{v₁, u₁} C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y✝ : C
S : Sieve X
R : Presieve X
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P (singleton (𝟙 X))
a✝ : x.Compatible
Y : C
⊢ P.map (𝟙 X).op (x (𝟙 X) ⋯) = x (𝟙 X) ⋯
state_after: no goals

tactic: intro t ht
state_before: case refine_2
C : Type u₁
inst✝ : Category.{v₁, u₁} C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P (singleton (𝟙 X))
a✝ : x.Compatible
⊢ ∀ (y : P.obj { unop := X }), (fun t => x.IsAmalgamation t) y → y = x (𝟙 X) ⋯
state_after: case refine_2
C : Type u₁
inst✝ : Category.{v₁, u₁} C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P (singleton (𝟙 X))
a✝ : x.Compatible
t : P.obj { unop := X }
ht : x.IsAmalgamation t
⊢ t = x (𝟙 X) ⋯

tactic: simpa using ht _ (Presieve.singleton_self _)
state_before: case refine_2
C : Type u₁
inst✝ : Category.{v₁, u₁} C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P (singleton (𝟙 X))
a✝ : x.Compatible
t : P.obj { unop := X }
ht : x.IsAmalgamation t
⊢ t = x (𝟙 X) ⋯
state_after: no goals
Theorem: FirstOrder.Language.Substructure.reduct_withConstants
File: Mathlib/ModelTheory/Substructures.lean

tactic: ext
state_before: L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
S : L.Substructure M
A s : Set M
h : A ⊆ ↑S
⊢ (L.lhomWithConstants ↑A).substructureReduct (S.withConstants h) = S
state_after: case h
L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
S : L.Substructure M
A s : Set M
h : A ⊆ ↑S
x✝ : M
⊢ x✝ ∈ (L.lhomWithConstants ↑A).substructureReduct (S.withConstants h) ↔ x✝ ∈ S

tactic: simp
state_before: case h
L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
S : L.Substructure M
A s : Set M
h : A ⊆ ↑S
x✝ : M
⊢ x✝ ∈ (L.lhomWithConstants ↑A).substructureReduct (S.withConstants h) ↔ x✝ ∈ S
state_after: no goals
Theorem: RCLike.abs_re_le_norm
File: Mathlib/Analysis/RCLike/Basic.lean

tactic: rw [mul_self_le_mul_self_iff (abs_nonneg _) (norm_nonneg _), abs_mul_abs_self, mul_self_norm]
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z : K
⊢ |re z| ≤ ‖z‖
state_after: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z : K
⊢ re z * re z ≤ normSq z

tactic: apply re_sq_le_normSq
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z : K
⊢ re z * re z ≤ normSq z
state_after: no goals
Theorem: RCLike.im_eq_zero_of_le
File: Mathlib/Analysis/RCLike/Basic.lean

tactic: simpa only [mul_self_norm a, normSq_apply, self_eq_add_right, mul_self_eq_zero]
  using congr_arg (fun z => z * z) ((re_le_norm a).antisymm h)
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z a : K
h : ‖a‖ ≤ re a
⊢ im a = 0
state_after: no goals
Theorem: IsHomeomorphicTrivialFiberBundle.continuous_proj
File: Mathlib/Topology/FiberBundle/IsHomeomorphicTrivialBundle.lean

tactic: obtain ⟨e, rfl⟩ := h.proj_eq
state_before: B : Type u_1
F : Type u_2
Z : Type u_3
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : TopologicalSpace Z
proj : Z → B
h : IsHomeomorphicTrivialFiberBundle F proj
⊢ Continuous proj
state_after: case intro
B : Type u_1
F : Type u_2
Z : Type u_3
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : TopologicalSpace Z
e : Z ≃ₜ B × F
h : IsHomeomorphicTrivialFiberBundle F (Prod.fst ∘ ⇑e)
⊢ Continuous (Prod.fst ∘ ⇑e)

tactic: exact continuous_fst.comp e.continuous
state_before: case intro
B : Type u_1
F : Type u_2
Z : Type u_3
inst✝² : TopologicalSpace B
inst✝¹ : TopologicalSpace F
inst✝ : TopologicalSpace Z
e : Z ≃ₜ B × F
h : IsHomeomorphicTrivialFiberBundle F (Prod.fst ∘ ⇑e)
⊢ Continuous (Prod.fst ∘ ⇑e)
state_after: no goals
Theorem: Language.le_mul_congr
File: Mathlib/Computability/Language.lean

tactic: intro h₁ h₂ x hx
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
l m : Language α
a b x : List α
l₁ l₂ m₁ m₂ : Language α
⊢ l₁ ≤ m₁ → l₂ ≤ m₂ → l₁ * l₂ ≤ m₁ * m₂
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
l m : Language α
a b x✝ : List α
l₁ l₂ m₁ m₂ : Language α
h₁ : l₁ ≤ m₁
h₂ : l₂ ≤ m₂
x : List α
hx : x ∈ l₁ * l₂
⊢ x ∈ m₁ * m₂

tactic: simp only [mul_def, exists_and_left, mem_image2, image_prod] at hx ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
l m : Language α
a b x✝ : List α
l₁ l₂ m₁ m₂ : Language α
h₁ : l₁ ≤ m₁
h₂ : l₂ ≤ m₂
x : List α
hx : x ∈ l₁ * l₂
⊢ x ∈ m₁ * m₂
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
l m : Language α
a b x✝ : List α
l₁ l₂ m₁ m₂ : Language α
h₁ : l₁ ≤ m₁
h₂ : l₂ ≤ m₂
x : List α
hx : ∃ a ∈ l₁, ∃ b ∈ l₂, a ++ b = x
⊢ ∃ a ∈ m₁, ∃ b ∈ m₂, a ++ b = x

tactic: tauto
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
l m : Language α
a b x✝ : List α
l₁ l₂ m₁ m₂ : Language α
h₁ : l₁ ≤ m₁
h₂ : l₂ ≤ m₂
x : List α
hx : ∃ a ∈ l₁, ∃ b ∈ l₂, a ++ b = x
⊢ ∃ a ∈ m₁, ∃ b ∈ m₂, a ++ b = x
state_after: no goals
Theorem: Int.ceil_le_floor_add_one
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [ceil_le, Int.cast_add, Int.cast_one]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a : α
⊢ ⌈a⌉ ≤ ⌊a⌋ + 1
state_after: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a : α
⊢ a ≤ ↑⌊a⌋ + 1

tactic: exact (lt_floor_add_one a).le
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a : α
⊢ a ≤ ↑⌊a⌋ + 1
state_after: no goals
Theorem: ProbabilityTheory.indepFun_iff_indepSet_preimage
File: Mathlib/Probability/Independence/Basic.lean

tactic: simp only [IndepFun, IndepSet, kernel.indepFun_iff_indepSet_preimage hf hg, ae_dirac_eq,
  Filter.eventually_pure, kernel.const_apply]
state_before: Ω : Type u_1
ι : Type u_2
β✝ : Type u_3
γ✝ : Type u_4
κ : ι → Type u_5
β : Type u_6
β' : Type u_7
γ : Type u_8
γ' : Type u_9
_mΩ : MeasurableSpace Ω
μ : Measure Ω
f : Ω → β
g : Ω → β'
mβ : MeasurableSpace β
mβ' : MeasurableSpace β'
inst✝ : IsProbabilityMeasure μ
hf : Measurable f
hg : Measurable g
⊢ IndepFun f g μ ↔ ∀ (s : Set β) (t : Set β'), MeasurableSet s → MeasurableSet t → IndepSet (f ⁻¹' s) (g ⁻¹' t) μ
state_after: no goals
Theorem: one_le_norm_one
File: Mathlib/Analysis/Normed/Field/Basic.lean

tactic: simpa only [mul_one] using norm_mul_le (1 : β) 1
state_before: α : Type u_1
β✝ : Type u_2
γ : Type u_3
ι : Type u_4
inst✝² : NonUnitalSeminormedRing α
β : Type u_5
inst✝¹ : NormedRing β
inst✝ : Nontrivial β
⊢ ‖1‖ ≤ ‖1‖ * ‖1‖
state_after: no goals
Theorem: Localization.mk_zero
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: simp
state_before: M : Type u_1
inst✝² : CommMonoidWithZero M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoidWithZero N
P : Type u_3
inst✝ : CommMonoidWithZero P
x : ↥S
⊢ ↑(0, 1).2 * (0, x).1 = ↑(0, x).2 * (0, 1).1
state_after: no goals
Theorem: hasLineDerivWithinAt_smul_iff
File: Mathlib/Analysis/Calculus/LineDeriv/Basic.lean

tactic: simpa [smul_smul, inv_mul_cancel hc] using h.smul (c ⁻¹)
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → F
s : Set E
x v : E
f' : F
c : 𝕜
hc : c ≠ 0
h : HasLineDerivWithinAt 𝕜 f (c • f') s x (c • v)
⊢ HasLineDerivWithinAt 𝕜 f f' s x v
state_after: no goals
Theorem: WeierstrassCurve.VariableChange.map_injective
File: Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean

tactic: rcases mk.inj h with ⟨h, _, _, _⟩
state_before: R : Type u
inst✝¹ : CommRing R
W : WeierstrassCurve R
A : Type v
inst✝ : CommRing A
φ✝ : R →+* A
C : VariableChange R
φ : R →+* A
hφ : Function.Injective ⇑φ
x✝¹ x✝ : VariableChange R
h : map φ x✝¹ = map φ x✝
⊢ x✝¹ = x✝
state_after: case intro.intro.intro
R : Type u
inst✝¹ : CommRing R
W : WeierstrassCurve R
A : Type v
inst✝ : CommRing A
φ✝ : R →+* A
C : VariableChange R
φ : R →+* A
hφ : Function.Injective ⇑φ
x✝¹ x✝ : VariableChange R
h✝ : map φ x✝¹ = map φ x✝
h : (Units.map ↑φ) x✝¹.u = (Units.map ↑φ) x✝.u
left✝¹ : φ x✝¹.r = φ x✝.r
left✝ : φ x✝¹.s = φ x✝.s
right✝ : φ x✝¹.t = φ x✝.t
⊢ x✝¹ = x✝

tactic: replace h := (Units.mk.inj h).left
state_before: case intro.intro.intro
R : Type u
inst✝¹ : CommRing R
W : WeierstrassCurve R
A : Type v
inst✝ : CommRing A
φ✝ : R →+* A
C : VariableChange R
φ : R →+* A
hφ : Function.Injective ⇑φ
x✝¹ x✝ : VariableChange R
h✝ : map φ x✝¹ = map φ x✝
h : (Units.map ↑φ) x✝¹.u = (Units.map ↑φ) x✝.u
left✝¹ : φ x✝¹.r = φ x✝.r
left✝ : φ x✝¹.s = φ x✝.s
right✝ : φ x✝¹.t = φ x✝.t
⊢ x✝¹ = x✝
state_after: case intro.intro.intro
R : Type u
inst✝¹ : CommRing R
W : WeierstrassCurve R
A : Type v
inst✝ : CommRing A
φ✝ : R →+* A
C : VariableChange R
φ : R →+* A
hφ : Function.Injective ⇑φ
x✝¹ x✝ : VariableChange R
h✝ : map φ x✝¹ = map φ x✝
left✝¹ : φ x✝¹.r = φ x✝.r
left✝ : φ x✝¹.s = φ x✝.s
right✝ : φ x✝¹.t = φ x✝.t
h : ↑φ ↑x✝¹.u = ↑φ ↑x✝.u
⊢ x✝¹ = x✝

tactic: ext <;> apply_fun _ using hφ <;> assumption
state_before: case intro.intro.intro
R : Type u
inst✝¹ : CommRing R
W : WeierstrassCurve R
A : Type v
inst✝ : CommRing A
φ✝ : R →+* A
C : VariableChange R
φ : R →+* A
hφ : Function.Injective ⇑φ
x✝¹ x✝ : VariableChange R
h✝ : map φ x✝¹ = map φ x✝
left✝¹ : φ x✝¹.r = φ x✝.r
left✝ : φ x✝¹.s = φ x✝.s
right✝ : φ x✝¹.t = φ x✝.t
h : ↑φ ↑x✝¹.u = ↑φ ↑x✝.u
⊢ x✝¹ = x✝
state_after: no goals