1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: innerDualCone_univ
File: Mathlib/Analysis/Convex/Cone/InnerDual.lean

tactic: suffices ∀ x : H, x ∈ (univ : Set H).innerDualCone → x = 0 by
  apply SetLike.coe_injective
  exact eq_singleton_iff_unique_mem.mpr ⟨fun x _ => (inner_zero_right _).ge, this⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
⊢ univ.innerDualCone = 0
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
⊢ ∀ x ∈ univ.innerDualCone, x = 0

tactic: exact fun x hx => by simpa [← real_inner_self_nonpos] using hx (-x) (mem_univ _)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
⊢ ∀ x ∈ univ.innerDualCone, x = 0
state_after: no goals

tactic: apply SetLike.coe_injective
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
this : ∀ x ∈ univ.innerDualCone, x = 0
⊢ univ.innerDualCone = 0
state_after: case a
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
this : ∀ x ∈ univ.innerDualCone, x = 0
⊢ ↑univ.innerDualCone = ↑0

tactic: exact eq_singleton_iff_unique_mem.mpr ⟨fun x _ => (inner_zero_right _).ge, this⟩
state_before: case a
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
this : ∀ x ∈ univ.innerDualCone, x = 0
⊢ ↑univ.innerDualCone = ↑0
state_after: no goals

tactic: simpa [← real_inner_self_nonpos] using hx (-x) (mem_univ _)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
x : H
hx : x ∈ univ.innerDualCone
⊢ x = 0
state_after: no goals
Theorem: WType.cardinal_mk_eq_sum'
File: Mathlib/Data/W/Cardinal.lean

tactic: simp_rw [mk_sigma, mk_arrow]
state_before: α : Type u
β : α → Type v
⊢ #((a : α) × (β a → WType β)) = sum fun a => #(WType β) ^ lift.{u, v} #(β a)
state_after: α : Type u
β : α → Type v
⊢ (sum fun i => lift.{v, max u v} #(WType β) ^ lift.{max u v, v} #(β i)) = sum fun a => #(WType β) ^ lift.{u, v} #(β a)

tactic: rw [lift_id'.{v, u}, lift_umax.{v, u}]
state_before: α : Type u
β : α → Type v
⊢ (sum fun i => lift.{v, max u v} #(WType β) ^ lift.{max u v, v} #(β i)) = sum fun a => #(WType β) ^ lift.{u, v} #(β a)
state_after: no goals
Theorem: Function.IsPeriodicPt.iterate
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: rw [IsPeriodicPt, ← iterate_mul, mul_comm, iterate_mul]
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m✝ n : ℕ
hf : IsPeriodicPt f n x
m : ℕ
⊢ IsPeriodicPt f^[m] n x
state_after: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m✝ n : ℕ
hf : IsPeriodicPt f n x
m : ℕ
⊢ IsFixedPt f^[n]^[m] x

tactic: exact hf.isFixedPt.iterate m
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m✝ n : ℕ
hf : IsPeriodicPt f n x
m : ℕ
⊢ IsFixedPt f^[n]^[m] x
state_after: no goals
Theorem: TopCat.Sheaf.extend_hom_app
File: Mathlib/Topology/Sheaves/SheafCondition/Sites.lean

tactic: nth_rw 2 [← (restrictHomEquivHom F F' h).left_inv α]
state_before: C : Type u
inst✝ : Category.{v, u} C
X : TopCat
ι : Type u_1
B : ι → Opens ↑X
F : Presheaf C X
F' : Sheaf C X
h : Opens.IsBasis (Set.range B)
α : (inducedFunctor B).op ⋙ F ⟶ (inducedFunctor B).op ⋙ F'.val
i : ι
⊢ ((restrictHomEquivHom F F' h) α).app { unop := B i } = α.app { unop := i }
state_after: C : Type u
inst✝ : Category.{v, u} C
X : TopCat
ι : Type u_1
B : ι → Opens ↑X
F : Presheaf C X
F' : Sheaf C X
h : Opens.IsBasis (Set.range B)
α : (inducedFunctor B).op ⋙ F ⟶ (inducedFunctor B).op ⋙ F'.val
i : ι
⊢ ((restrictHomEquivHom F F' h) α).app { unop := B i } =
    ((restrictHomEquivHom F F' h).invFun ((restrictHomEquivHom F F' h).toFun α)).app { unop := i }

tactic: rfl
state_before: C : Type u
inst✝ : Category.{v, u} C
X : TopCat
ι : Type u_1
B : ι → Opens ↑X
F : Presheaf C X
F' : Sheaf C X
h : Opens.IsBasis (Set.range B)
α : (inducedFunctor B).op ⋙ F ⟶ (inducedFunctor B).op ⋙ F'.val
i : ι
⊢ ((restrictHomEquivHom F F' h) α).app { unop := B i } =
    ((restrictHomEquivHom F F' h).invFun ((restrictHomEquivHom F F' h).toFun α)).app { unop := i }
state_after: no goals
Theorem: Rat.forall
File: Mathlib/Data/Rat/Lemmas.lean

tactic: have := h q.num q.den
state_before: p : ℚ → Prop
h : ∀ (a b : ℤ), p (↑a / ↑b)
q : ℚ
⊢ p q
state_after: p : ℚ → Prop
h : ∀ (a b : ℤ), p (↑a / ↑b)
q : ℚ
this : p (↑q.num / ↑↑q.den)
⊢ p q

tactic: rwa [Int.cast_natCast, num_div_den q] at this
state_before: p : ℚ → Prop
h : ∀ (a b : ℤ), p (↑a / ↑b)
q : ℚ
this : p (↑q.num / ↑↑q.den)
⊢ p q
state_after: no goals
Theorem: Set.infsep_triple
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: simp only [infsep, einfsep_triple hxy hyz hxz, ENNReal.toReal_inf, edist_ne_top x y,
  edist_ne_top x z, edist_ne_top y z, dist_edist, Ne, inf_eq_top_iff, and_self_iff,
  not_false_iff]
state_before: α : Type u_1
β : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
s t : Set α
hxy : x ≠ y
hyz : y ≠ z
hxz : x ≠ z
⊢ {x, y, z}.infsep = dist x y ⊓ dist x z ⊓ dist y z
state_after: no goals
Theorem: AlgHom.card_of_powerBasis
File: Mathlib/FieldTheory/Separable.lean

tactic: let _ := (PowerBasis.AlgHom.fintype pb : Fintype (S →ₐ[K] L))
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁵ : CommRing S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field F
inst✝¹ : Algebra K S
inst✝ : Algebra K L
pb : PowerBasis K S
h_sep : (minpoly K pb.gen).Separable
h_splits : Splits (algebraMap K L) (minpoly K pb.gen)
⊢ Fintype.card (S →ₐ[K] L) = pb.dim
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁵ : CommRing S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field F
inst✝¹ : Algebra K S
inst✝ : Algebra K L
pb : PowerBasis K S
h_sep : (minpoly K pb.gen).Separable
h_splits : Splits (algebraMap K L) (minpoly K pb.gen)
x✝ : Fintype (S →ₐ[K] L) := PowerBasis.AlgHom.fintype pb
⊢ Fintype.card (S →ₐ[K] L) = pb.dim

tactic: rw [Fintype.card_congr pb.liftEquiv', Fintype.card_of_subtype _ (fun x => Multiset.mem_toFinset),
  ← pb.natDegree_minpoly, natDegree_eq_card_roots h_splits, Multiset.toFinset_card_of_nodup]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁵ : CommRing S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field F
inst✝¹ : Algebra K S
inst✝ : Algebra K L
pb : PowerBasis K S
h_sep : (minpoly K pb.gen).Separable
h_splits : Splits (algebraMap K L) (minpoly K pb.gen)
x✝ : Fintype (S →ₐ[K] L) := PowerBasis.AlgHom.fintype pb
⊢ Fintype.card (S →ₐ[K] L) = pb.dim
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁵ : CommRing S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field F
inst✝¹ : Algebra K S
inst✝ : Algebra K L
pb : PowerBasis K S
h_sep : (minpoly K pb.gen).Separable
h_splits : Splits (algebraMap K L) (minpoly K pb.gen)
x✝ : Fintype (S →ₐ[K] L) := PowerBasis.AlgHom.fintype pb
⊢ ((minpoly K pb.gen).aroots L).Nodup

tactic: exact nodup_roots ((separable_map (algebraMap K L)).mpr h_sep)
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁵ : CommRing S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field F
inst✝¹ : Algebra K S
inst✝ : Algebra K L
pb : PowerBasis K S
h_sep : (minpoly K pb.gen).Separable
h_splits : Splits (algebraMap K L) (minpoly K pb.gen)
x✝ : Fintype (S →ₐ[K] L) := PowerBasis.AlgHom.fintype pb
⊢ ((minpoly K pb.gen).aroots L).Nodup
state_after: no goals
Theorem: DoubleCentralizer.norm_fst
File: Mathlib/Analysis/NormedSpace/Star/Multiplier.lean

tactic: simp only [norm_def, toProdHom_apply, Prod.norm_def, norm_fst_eq_snd, max_eq_right le_rfl]
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NonUnitalNormedRing A
inst✝⁴ : NormedSpace 𝕜 A
inst✝³ : SMulCommClass 𝕜 A A
inst✝² : IsScalarTower 𝕜 A A
inst✝¹ : StarRing A
inst✝ : CstarRing A
a : 𝓜(𝕜, A)
⊢ ‖a.toProd.1‖ = ‖a‖
state_after: no goals
Theorem: ProbabilityTheory.cgf_zero
File: Mathlib/Probability/Moments.lean

tactic: simp only [cgf_zero', measure_univ, ENNReal.one_toReal, log_one]
state_before: Ω : Type u_1
ι : Type u_2
m : MeasurableSpace Ω
X : Ω → ℝ
p : ℕ
μ : Measure Ω
t : ℝ
inst✝ : IsProbabilityMeasure μ
⊢ cgf X μ 0 = 0
state_after: no goals
Theorem: Associates.irreducible_iff_prime_iff
File: Mathlib/Algebra/Associated.lean

tactic: simp_rw [forall_associated, irreducible_mk, prime_mk]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CommMonoidWithZero α
⊢ (∀ (a : α), Irreducible a ↔ Prime a) ↔ ∀ (a : Associates α), Irreducible a ↔ Prime a
state_after: no goals
Theorem: Filter.hasBasis_iInf_principal
File: Mathlib/Order/Filter/Bases.lean

tactic: simpa only [true_and] using mem_iInf_of_directed (h.mono_comp monotone_principal.dual) t
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l l' : Filter α
p : ι → Prop
s✝ : ι → Set α
t✝ : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
s : ι → Set α
h : Directed (fun x x_1 => x ≥ x_1) s
inst✝ : Nonempty ι
t : Set α
⊢ t ∈ ⨅ i, 𝓟 (s i) ↔ ∃ i, True ∧ s i ⊆ t
state_after: no goals
Theorem: Option.map₂_assoc
File: Mathlib/Data/Option/NAry.lean

tactic: cases a <;> cases b <;> cases c <;> simp [h_assoc]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
f✝ : α → β → γ
a : Option α
b : Option β
c : Option γ
α' : Type u_5
β' : Type u_6
δ' : Type u_7
ε : Type u_8
ε' : Type u_9
f : δ → γ → ε
g : α → β → δ
f' : α → ε' → ε
g' : β → γ → ε'
h_assoc : ∀ (a : α) (b : β) (c : γ), f (g a b) c = f' a (g' b c)
⊢ map₂ f (map₂ g a b) c = map₂ f' a (map₂ g' b c)
state_after: no goals
Theorem: powers_eq_top_of_prime_card
File: Mathlib/GroupTheory/SpecificGroups/Cyclic.lean

tactic: ext x
state_before: α : Type u
a : α
inst✝¹ : Group α
G : Type u_1
inst✝ : Group G
x✝ : Fintype G
p : ℕ
hp : Fact (Nat.Prime p)
h : Fintype.card G = p
g : G
hg : g ≠ 1
⊢ Submonoid.powers g = ⊤
state_after: case h
α : Type u
a : α
inst✝¹ : Group α
G : Type u_1
inst✝ : Group G
x✝ : Fintype G
p : ℕ
hp : Fact (Nat.Prime p)
h : Fintype.card G = p
g : G
hg : g ≠ 1
x : G
⊢ x ∈ Submonoid.powers g ↔ x ∈ ⊤

tactic: simp [mem_powers_of_prime_card h hg]
state_before: case h
α : Type u
a : α
inst✝¹ : Group α
G : Type u_1
inst✝ : Group G
x✝ : Fintype G
p : ℕ
hp : Fact (Nat.Prime p)
h : Fintype.card G = p
g : G
hg : g ≠ 1
x : G
⊢ x ∈ Submonoid.powers g ↔ x ∈ ⊤
state_after: no goals
Theorem: HurwitzZeta.completedCosZeta_neg
File: Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean

tactic: simp only [completedCosZeta, hurwitzEvenFEPair_neg]
state_before: a : UnitAddCircle
s : ℂ
⊢ completedCosZeta (-a) s = completedCosZeta a s
state_after: no goals
Theorem: ModularGroup.abs_two_mul_re_lt_one_of_mem_fdo
File: Mathlib/NumberTheory/Modular.lean

tactic: rw [abs_mul, abs_two, ← lt_div_iff' (zero_lt_two' ℝ)]
state_before: g : SL(2, ℤ)
z : ℍ
h : z ∈ 𝒟ᵒ
⊢ |2 * z.re| < 1
state_after: g : SL(2, ℤ)
z : ℍ
h : z ∈ 𝒟ᵒ
⊢ |z.re| < 1 / 2

tactic: exact h.2
state_before: g : SL(2, ℤ)
z : ℍ
h : z ∈ 𝒟ᵒ
⊢ |z.re| < 1 / 2
state_after: no goals
Theorem: Subsemiring.mem_map_equiv
File: Mathlib/Algebra/Ring/Subsemiring/Basic.lean

tactic: convert @Set.mem_image_equiv _ _ (↑K) f.toEquiv x using 1
state_before: R : Type u
S : Type v
T : Type w
inst✝² : NonAssocSemiring R
M : Submonoid R
inst✝¹ : NonAssocSemiring S
inst✝ : NonAssocSemiring T
f : R ≃+* S
K : Subsemiring R
x : S
⊢ x ∈ map (↑f) K ↔ f.symm x ∈ K
state_after: no goals
Theorem: UV.compress_of_disjoint_of_le'
File: Mathlib/Combinatorics/SetFamily/Compression/UV.lean

tactic: rw [compress_of_disjoint_of_le disjoint_sdiff_self_right
    (le_sdiff.2 ⟨(le_sup_right : v ≤ a ⊔ v), hva.mono_right hua⟩),
  sdiff_sup_cancel (le_sup_of_le_left hua), hva.symm.sup_sdiff_cancel_right]
state_before: α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u v a b : α
hva : Disjoint v a
hua : u ≤ a
⊢ compress u v ((a ⊔ v) \ u) = a
state_after: no goals
Theorem: Int.sub_one_covBy
File: Mathlib/Data/Int/SuccPred.lean

tactic: rw [Int.covBy_iff_succ_eq, sub_add_cancel]
state_before: z : ℤ
⊢ z - 1 ⋖ z
state_after: no goals
Theorem: WithBot.lt_coe_iff
File: Mathlib/Order/WithBot.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a b : α
inst✝ : LT α
val✝ : α
⊢ ↑val✝ < ↑b ↔ ∀ (a : α), ↑val✝ = ↑a → a < b
state_after: no goals

tactic: simp [bot_lt_coe]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a b : α
inst✝ : LT α
⊢ ⊥ < ↑b ↔ ∀ (a : α), ⊥ = ↑a → a < b
state_after: no goals
Theorem: Polynomial.nthRoots_zero
File: Mathlib/Algebra/Polynomial/Roots.lean

tactic: simp only [empty_eq_zero, pow_zero, nthRoots, ← C_1, ← C_sub, roots_C]
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p q : R[X]
r : R
⊢ nthRoots 0 r = 0
state_after: no goals
Theorem: DFinsupp.zipWith_def
File: Mathlib/Data/DFinsupp/Basic.lean

tactic: ext i
state_before: ι✝ : Type u
γ : Type w
β✝ : ι✝ → Type v
β₁✝ : ι✝ → Type v₁
β₂✝ : ι✝ → Type v₂
inst✝¹¹ : DecidableEq ι✝
inst✝¹⁰ : (i : ι✝) → Zero (β✝ i)
inst✝⁹ : (i : ι✝) → (x : β✝ i) → Decidable (x ≠ 0)
inst✝⁸ : (i : ι✝) → Zero (β₁✝ i)
inst✝⁷ : (i : ι✝) → Zero (β₂✝ i)
inst✝⁶ : (i : ι✝) → (x : β₁✝ i) → Decidable (x ≠ 0)
inst✝⁵ : (i : ι✝) → (x : β₂✝ i) → Decidable (x ≠ 0)
ι : Type u
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝⁴ : (i : ι) → Zero (β i)
inst✝³ : (i : ι) → Zero (β₁ i)
inst✝² : (i : ι) → Zero (β₂ i)
inst✝¹ : (i : ι) → (x : β₁ i) → Decidable (x ≠ 0)
inst✝ : (i : ι) → (x : β₂ i) → Decidable (x ≠ 0)
f : (i : ι) → β₁ i → β₂ i → β i
hf : ∀ (i : ι), f i 0 0 = 0
g₁ : Π₀ (i : ι), β₁ i
g₂ : Π₀ (i : ι), β₂ i
⊢ zipWith f hf g₁ g₂ = mk (g₁.support ∪ g₂.support) fun i => f (↑i) (g₁ ↑i) (g₂ ↑i)
state_after: case h
ι✝ : Type u
γ : Type w
β✝ : ι✝ → Type v
β₁✝ : ι✝ → Type v₁
β₂✝ : ι✝ → Type v₂
inst✝¹¹ : DecidableEq ι✝
inst✝¹⁰ : (i : ι✝) → Zero (β✝ i)
inst✝⁹ : (i : ι✝) → (x : β✝ i) → Decidable (x ≠ 0)
inst✝⁸ : (i : ι✝) → Zero (β₁✝ i)
inst✝⁷ : (i : ι✝) → Zero (β₂✝ i)
inst✝⁶ : (i : ι✝) → (x : β₁✝ i) → Decidable (x ≠ 0)
inst✝⁵ : (i : ι✝) → (x : β₂✝ i) → Decidable (x ≠ 0)
ι : Type u
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝⁴ : (i : ι) → Zero (β i)
inst✝³ : (i : ι) → Zero (β₁ i)
inst✝² : (i : ι) → Zero (β₂ i)
inst✝¹ : (i : ι) → (x : β₁ i) → Decidable (x ≠ 0)
inst✝ : (i : ι) → (x : β₂ i) → Decidable (x ≠ 0)
f : (i : ι) → β₁ i → β₂ i → β i
hf : ∀ (i : ι), f i 0 0 = 0
g₁ : Π₀ (i : ι), β₁ i
g₂ : Π₀ (i : ι), β₂ i
i : ι
⊢ (zipWith f hf g₁ g₂) i = (mk (g₁.support ∪ g₂.support) fun i => f (↑i) (g₁ ↑i) (g₂ ↑i)) i

tactic: by_cases h1 : g₁ i ≠ 0 <;> by_cases h2 : g₂ i ≠ 0 <;> simp only [not_not, Ne] at h1 h2 <;>
  simp [h1, h2, hf]
state_before: case h
ι✝ : Type u
γ : Type w
β✝ : ι✝ → Type v
β₁✝ : ι✝ → Type v₁
β₂✝ : ι✝ → Type v₂
inst✝¹¹ : DecidableEq ι✝
inst✝¹⁰ : (i : ι✝) → Zero (β✝ i)
inst✝⁹ : (i : ι✝) → (x : β✝ i) → Decidable (x ≠ 0)
inst✝⁸ : (i : ι✝) → Zero (β₁✝ i)
inst✝⁷ : (i : ι✝) → Zero (β₂✝ i)
inst✝⁶ : (i : ι✝) → (x : β₁✝ i) → Decidable (x ≠ 0)
inst✝⁵ : (i : ι✝) → (x : β₂✝ i) → Decidable (x ≠ 0)
ι : Type u
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝⁴ : (i : ι) → Zero (β i)
inst✝³ : (i : ι) → Zero (β₁ i)
inst✝² : (i : ι) → Zero (β₂ i)
inst✝¹ : (i : ι) → (x : β₁ i) → Decidable (x ≠ 0)
inst✝ : (i : ι) → (x : β₂ i) → Decidable (x ≠ 0)
f : (i : ι) → β₁ i → β₂ i → β i
hf : ∀ (i : ι), f i 0 0 = 0
g₁ : Π₀ (i : ι), β₁ i
g₂ : Π₀ (i : ι), β₂ i
i : ι
⊢ (zipWith f hf g₁ g₂) i = (mk (g₁.support ∪ g₂.support) fun i => f (↑i) (g₁ ↑i) (g₂ ↑i)) i
state_after: no goals
Theorem: Finset.Icc_erase_right
File: Mathlib/Order/Interval/Finset/Basic.lean

tactic: simp [← coe_inj]
state_before: ι : Type u_1
α : Type u_2
inst✝² : PartialOrder α
inst✝¹ : LocallyFiniteOrder α
a✝ b✝ c : α
inst✝ : DecidableEq α
a b : α
⊢ (Icc a b).erase b = Ico a b
state_after: no goals
Theorem: Complex.cos_two_mul
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [cos_two_mul', eq_sub_iff_add_eq.2 (sin_sq_add_cos_sq x), ← sub_add, sub_add_eq_add_sub,
  two_mul]
state_before: x y : ℂ
⊢ cos (2 * x) = 2 * cos x ^ 2 - 1
state_after: no goals
Theorem: Set.Ico_diff_left
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: simp [and_right_comm, ← lt_iff_le_and_ne, eq_comm]
state_before: α : Type u_1
β : Type u_2
inst✝ : PartialOrder α
a b c x : α
⊢ x ∈ Ico a b \ {a} ↔ x ∈ Ioo a b
state_after: no goals
Theorem: Fin.predAbove_rev_right
File: Mathlib/Data/Fin/Basic.lean

tactic: rw [predAbove_rev_left, rev_rev]
state_before: n m : ℕ
p : Fin n
i : Fin (n + 1)
⊢ p.predAbove i.rev = (p.rev.predAbove i).rev
state_after: no goals
Theorem: Finset.univ_filter_card_eq
File: Mathlib/Data/Fintype/Powerset.lean

tactic: ext
state_before: α : Type u_1
inst✝ : Fintype α
s : Finset α
k✝ k : ℕ
⊢ filter (fun s => s.card = k) univ = powersetCard k univ
state_after: case a
α : Type u_1
inst✝ : Fintype α
s : Finset α
k✝ k : ℕ
a✝ : Finset α
⊢ a✝ ∈ filter (fun s => s.card = k) univ ↔ a✝ ∈ powersetCard k univ

tactic: simp
state_before: case a
α : Type u_1
inst✝ : Fintype α
s : Finset α
k✝ k : ℕ
a✝ : Finset α
⊢ a✝ ∈ filter (fun s => s.card = k) univ ↔ a✝ ∈ powersetCard k univ
state_after: no goals
Theorem: Primrec₂.natPair
File: Mathlib/Computability/Primrec.lean

tactic: simp [Primrec₂, Primrec]
state_before: α : Type u_1
β : Type u_2
σ : Type u_3
inst✝² : Primcodable α
inst✝¹ : Primcodable β
inst✝ : Primcodable σ
⊢ Primrec₂ Nat.pair
state_after: α : Type u_1
β : Type u_2
σ : Type u_3
inst✝² : Primcodable α
inst✝¹ : Primcodable β
inst✝ : Primcodable σ
⊢ Nat.Primrec fun n => n + 1

tactic: constructor
state_before: α : Type u_1
β : Type u_2
σ : Type u_3
inst✝² : Primcodable α
inst✝¹ : Primcodable β
inst✝ : Primcodable σ
⊢ Nat.Primrec fun n => n + 1
state_after: no goals
Theorem: Matrix.mul_one
File: Mathlib/Data/Matrix/Basic.lean

tactic: ext
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : NonAssocSemiring α
inst✝¹ : Fintype n
inst✝ : DecidableEq n
M : Matrix m n α
⊢ M * 1 = M
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : NonAssocSemiring α
inst✝¹ : Fintype n
inst✝ : DecidableEq n
M : Matrix m n α
i✝ : m
j✝ : n
⊢ (M * 1) i✝ j✝ = M i✝ j✝

tactic: rw [← diagonal_one, mul_diagonal, mul_one]
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : NonAssocSemiring α
inst✝¹ : Fintype n
inst✝ : DecidableEq n
M : Matrix m n α
i✝ : m
j✝ : n
⊢ (M * 1) i✝ j✝ = M i✝ j✝
state_after: no goals
Theorem: semiconjBy_star_star_star
File: Mathlib/Algebra/Star/Basic.lean

tactic: simp_rw [SemiconjBy, ← star_mul, star_inj, eq_comm]
state_before: R : Type u
inst✝¹ : Mul R
inst✝ : StarMul R
x y z : R
⊢ SemiconjBy (star x) (star z) (star y) ↔ SemiconjBy x y z
state_after: no goals
Theorem: det_ne_zero_of_sum_col_lt_diag
File: Mathlib/LinearAlgebra/Matrix/Gershgorin.lean

tactic: rw [← Matrix.det_transpose]
state_before: K : Type u_1
n : Type u_2
inst✝² : NormedField K
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n K
h : ∀ (k : n), ∑ i ∈ Finset.univ.erase k, ‖A i k‖ < ‖A k k‖
⊢ A.det ≠ 0
state_after: K : Type u_1
n : Type u_2
inst✝² : NormedField K
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n K
h : ∀ (k : n), ∑ i ∈ Finset.univ.erase k, ‖A i k‖ < ‖A k k‖
⊢ A.transpose.det ≠ 0

tactic: exact det_ne_zero_of_sum_row_lt_diag (by simp_rw [Matrix.transpose_apply]; exact h)
state_before: K : Type u_1
n : Type u_2
inst✝² : NormedField K
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n K
h : ∀ (k : n), ∑ i ∈ Finset.univ.erase k, ‖A i k‖ < ‖A k k‖
⊢ A.transpose.det ≠ 0
state_after: no goals

tactic: simp_rw [Matrix.transpose_apply]
state_before: K : Type u_1
n : Type u_2
inst✝² : NormedField K
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n K
h : ∀ (k : n), ∑ i ∈ Finset.univ.erase k, ‖A i k‖ < ‖A k k‖
⊢ ∀ (k : n), ∑ j ∈ Finset.univ.erase k, ‖A.transpose k j‖ < ‖A.transpose k k‖
state_after: K : Type u_1
n : Type u_2
inst✝² : NormedField K
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n K
h : ∀ (k : n), ∑ i ∈ Finset.univ.erase k, ‖A i k‖ < ‖A k k‖
⊢ ∀ (k : n), ∑ x ∈ Finset.univ.erase k, ‖A x k‖ < ‖A k k‖

tactic: exact h
state_before: K : Type u_1
n : Type u_2
inst✝² : NormedField K
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n K
h : ∀ (k : n), ∑ i ∈ Finset.univ.erase k, ‖A i k‖ < ‖A k k‖
⊢ ∀ (k : n), ∑ x ∈ Finset.univ.erase k, ‖A x k‖ < ‖A k k‖
state_after: no goals
Theorem: StructureGroupoid.LocalInvariantProp.congr_iff_nhdsWithin
File: Mathlib/Geometry/Manifold/LocalInvariantProperties.lean

tactic: simp_rw [hG.is_local_nhds h1]
state_before: 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'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : G.LocalInvariantProp G' P
s : Set H
x : H
f g : H → H'
h1 : f =ᶠ[𝓝[s] x] g
h2 : f x = g x
⊢ P f s x ↔ P g s x
state_after: 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'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : G.LocalInvariantProp G' P
s : Set H
x : H
f g : H → H'
h1 : f =ᶠ[𝓝[s] x] g
h2 : f x = g x
⊢ P f (s ∩ {x | f x = g x}) x ↔ P g (s ∩ {x | f x = g x}) x

tactic: exact ⟨hG.congr_of_forall (fun y hy ↦ hy.2) h2, hG.congr_of_forall (fun y hy ↦ hy.2.symm) h2.symm⟩
state_before: 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'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : G.LocalInvariantProp G' P
s : Set H
x : H
f g : H → H'
h1 : f =ᶠ[𝓝[s] x] g
h2 : f x = g x
⊢ P f (s ∩ {x | f x = g x}) x ↔ P g (s ∩ {x | f x = g x}) x
state_after: no goals
Theorem: Cardinal.natCast_lt_toPartENat_iff
File: Mathlib/SetTheory/Cardinal/Finite.lean

tactic: simp only [← not_le, Cardinal.toPartENat_le_natCast_iff]
state_before: α : Type u_1
β : Type u_2
n : ℕ
c : Cardinal.{u_3}
⊢ ↑n < toPartENat c ↔ ↑n < c
state_after: no goals
Theorem: CategoryTheory.Limits.hasStrictInitialObjects_of_initial_is_strict
File: Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean

tactic: rw [← assoc, IsIso.hom_inv_id]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasInitial C
h : ∀ (A : C) (f : A ⟶ ⊥_ C), IsIso f
I A : C
f : A ⟶ I
hI : IsInitial I
this : IsIso (f ≫ hI.to (⊥_ C))
⊢ f ≫ hI.to (⊥_ C) ≫ inv (f ≫ hI.to (⊥_ C)) = 𝟙 A
state_after: no goals
Theorem: Sum.isLeft_iff
File: .lake/packages/batteries/Batteries/Data/Sum/Lemmas.lean

tactic: cases x <;> simp
state_before: α✝ : Type u_1
β✝ : Type u_2
x : α✝ ⊕ β✝
⊢ x.isLeft = true ↔ ∃ y, x = inl y
state_after: no goals