1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.AEEqFun.coeFn_mk
File: Mathlib/MeasureTheory/Function/AEEqFun.lean

tactic: apply (AEStronglyMeasurable.ae_eq_mk _).symm.trans
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
μ ν : Measure α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
hf : AEStronglyMeasurable f μ
⊢ ↑(mk f hf) =ᶠ[ae μ] f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
μ ν : Measure α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
hf : AEStronglyMeasurable f μ
⊢ ↑(Quotient.out' (mk f hf)) =ᶠ[ae μ] f

tactic: exact @Quotient.mk_out' _ (μ.aeEqSetoid β) (⟨f, hf⟩ : { f // AEStronglyMeasurable f μ })
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
μ ν : Measure α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
hf : AEStronglyMeasurable f μ
⊢ ↑(Quotient.out' (mk f hf)) =ᶠ[ae μ] f
state_after: no goals
Theorem: AffineMap.pi_eq_zero
File: Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean

tactic: simp only [AffineMap.ext_iff, Function.funext_iff, pi_apply]
state_before: R : Type u_1
k : Type u_2
V1 : Type u_3
P1 : Type u_4
V2 : Type u_5
P2 : Type u_6
V3 : Type u_7
P3 : Type u_8
inst✝¹² : Ring k
inst✝¹¹ : AddCommGroup V1
inst✝¹⁰ : AffineSpace V1 P1
inst✝⁹ : AddCommGroup V2
inst✝⁸ : AffineSpace V2 P2
inst✝⁷ : AddCommGroup V3
inst✝⁶ : AffineSpace V3 P3
inst✝⁵ : Module k V1
inst✝⁴ : Module k V2
inst✝³ : Module k V3
ι : Type u_9
φv : ι → Type u_10
φp : ι → Type u_11
inst✝² : (i : ι) → AddCommGroup (φv i)
inst✝¹ : (i : ι) → Module k (φv i)
inst✝ : (i : ι) → AffineSpace (φv i) (φp i)
fp : (i : ι) → P1 →ᵃ[k] φp i
fv : (i : ι) → P1 →ᵃ[k] φv i
f' : ι → P1 →ᵃ[k] P2
⊢ pi fv = 0 ↔ ∀ (i : ι), fv i = 0
state_after: R : Type u_1
k : Type u_2
V1 : Type u_3
P1 : Type u_4
V2 : Type u_5
P2 : Type u_6
V3 : Type u_7
P3 : Type u_8
inst✝¹² : Ring k
inst✝¹¹ : AddCommGroup V1
inst✝¹⁰ : AffineSpace V1 P1
inst✝⁹ : AddCommGroup V2
inst✝⁸ : AffineSpace V2 P2
inst✝⁷ : AddCommGroup V3
inst✝⁶ : AffineSpace V3 P3
inst✝⁵ : Module k V1
inst✝⁴ : Module k V2
inst✝³ : Module k V3
ι : Type u_9
φv : ι → Type u_10
φp : ι → Type u_11
inst✝² : (i : ι) → AddCommGroup (φv i)
inst✝¹ : (i : ι) → Module k (φv i)
inst✝ : (i : ι) → AffineSpace (φv i) (φp i)
fp : (i : ι) → P1 →ᵃ[k] φp i
fv : (i : ι) → P1 →ᵃ[k] φv i
f' : ι → P1 →ᵃ[k] P2
⊢ (∀ (p : P1) (a : ι), (fv a) p = 0 p a) ↔ ∀ (i : ι) (p : P1), (fv i) p = 0 p

tactic: exact forall_comm
state_before: R : Type u_1
k : Type u_2
V1 : Type u_3
P1 : Type u_4
V2 : Type u_5
P2 : Type u_6
V3 : Type u_7
P3 : Type u_8
inst✝¹² : Ring k
inst✝¹¹ : AddCommGroup V1
inst✝¹⁰ : AffineSpace V1 P1
inst✝⁹ : AddCommGroup V2
inst✝⁸ : AffineSpace V2 P2
inst✝⁷ : AddCommGroup V3
inst✝⁶ : AffineSpace V3 P3
inst✝⁵ : Module k V1
inst✝⁴ : Module k V2
inst✝³ : Module k V3
ι : Type u_9
φv : ι → Type u_10
φp : ι → Type u_11
inst✝² : (i : ι) → AddCommGroup (φv i)
inst✝¹ : (i : ι) → Module k (φv i)
inst✝ : (i : ι) → AffineSpace (φv i) (φp i)
fp : (i : ι) → P1 →ᵃ[k] φp i
fv : (i : ι) → P1 →ᵃ[k] φv i
f' : ι → P1 →ᵃ[k] P2
⊢ (∀ (p : P1) (a : ι), (fv a) p = 0 p a) ↔ ∀ (i : ι) (p : P1), (fv i) p = 0 p
state_after: no goals
Theorem: CategoryTheory.cokernel.π_op
File: Mathlib/CategoryTheory/Abelian/Opposite.lean

tactic: simp [cokernelOpUnop]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Abelian C
X Y : C
f : X ⟶ Y
A B : Cᵒᵖ
g : A ⟶ B
⊢ (cokernel.π f.op).unop = (cokernelOpUnop f).hom ≫ kernel.ι f ≫ eqToHom ⋯
state_after: no goals
Theorem: lp.single_apply_ne
File: Mathlib/Analysis/NormedSpace/lpSpace.lean

tactic: rw [lp.single_apply, dif_neg hij]
state_before: α : Type u_1
E : α → Type u_2
p✝ q : ℝ≥0∞
inst✝⁴ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝³ : NormedRing 𝕜
inst✝² : (i : α) → Module 𝕜 (E i)
inst✝¹ : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝ : DecidableEq α
p : ℝ≥0∞
i : α
a : E i
j : α
hij : j ≠ i
⊢ ↑(lp.single p i a) j = 0
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.nonsingularLift_negMap
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: rcases P with ⟨_⟩
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P : PointClass F
hP : W.NonsingularLift P
⊢ W.NonsingularLift (W.negMap P)
state_after: case mk
R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P : PointClass F
a✝ : Fin 3 → F
hP : W.NonsingularLift (Quot.mk Setoid.r a✝)
⊢ W.NonsingularLift (W.negMap (Quot.mk Setoid.r a✝))

tactic: exact nonsingular_neg hP
state_before: case mk
R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P : PointClass F
a✝ : Fin 3 → F
hP : W.NonsingularLift (Quot.mk Setoid.r a✝)
⊢ W.NonsingularLift (W.negMap (Quot.mk Setoid.r a✝))
state_after: no goals
Theorem: SimpleGraph.cliqueFree_two
File: Mathlib/Combinatorics/SimpleGraph/Clique.lean

tactic: constructor
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
m n : ℕ
s : Finset α
⊢ G.CliqueFree 2 ↔ G = ⊥
state_after: case mp
α : Type u_1
β : Type u_2
G H : SimpleGraph α
m n : ℕ
s : Finset α
⊢ G.CliqueFree 2 → G = ⊥

case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
m n : ℕ
s : Finset α
⊢ G = ⊥ → G.CliqueFree 2

tactic: simp_rw [← edgeSet_eq_empty, Set.eq_empty_iff_forall_not_mem, Sym2.forall, mem_edgeSet]
state_before: case mp
α : Type u_1
β : Type u_2
G H : SimpleGraph α
m n : ℕ
s : Finset α
⊢ G.CliqueFree 2 → G = ⊥
state_after: case mp
α : Type u_1
β : Type u_2
G H : SimpleGraph α
m n : ℕ
s : Finset α
⊢ G.CliqueFree 2 → ∀ (x y : α), ¬G.Adj x y

tactic: exact fun h a b hab => h _ ⟨by simpa [hab.ne], card_pair hab.ne⟩
state_before: case mp
α : Type u_1
β : Type u_2
G H : SimpleGraph α
m n : ℕ
s : Finset α
⊢ G.CliqueFree 2 → ∀ (x y : α), ¬G.Adj x y
state_after: no goals

tactic: simpa [hab.ne]
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
m n : ℕ
s : Finset α
h : G.CliqueFree 2
a b : α
hab : G.Adj a b
⊢ G.IsClique ↑{a, b}
state_after: no goals

tactic: rintro rfl
state_before: case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
m n : ℕ
s : Finset α
⊢ G = ⊥ → G.CliqueFree 2
state_after: case mpr
α : Type u_1
β : Type u_2
H : SimpleGraph α
m n : ℕ
s : Finset α
⊢ ⊥.CliqueFree 2

tactic: exact cliqueFree_bot le_rfl
state_before: case mpr
α : Type u_1
β : Type u_2
H : SimpleGraph α
m n : ℕ
s : Finset α
⊢ ⊥.CliqueFree 2
state_after: no goals
Theorem: Finset.sup_lt_iff
File: Mathlib/Data/Finset/Lattice.lean

tactic: simpa only [sup_cons, sup_lt_iff, mem_cons, forall_eq_or_imp] using And.imp_right
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝¹ : LinearOrder α
inst✝ : OrderBot α
s : Finset ι
f : ι → α
a : α
ha : ⊥ < a
c : ι
t : Finset ι
hc : c ∉ t
⊢ ((∀ b ∈ t, f b < a) → t.sup f < a) → (∀ b ∈ cons c t hc, f b < a) → (cons c t hc).sup f < a
state_after: no goals
Theorem: Algebra.TensorProduct.lift_comp_includeLeft
File: Mathlib/RingTheory/TensorProduct/Basic.lean

tactic: simp
state_before: R : Type uR
S : Type uS
A : Type uA
B : Type uB
C : Type uC
D : Type uD
E : Type uE
F : Type uF
inst✝¹⁴ : CommSemiring R
inst✝¹³ : CommSemiring S
inst✝¹² : Algebra R S
inst✝¹¹ : Semiring A
inst✝¹⁰ : Algebra R A
inst✝⁹ : Algebra S A
inst✝⁸ : IsScalarTower R S A
inst✝⁷ : Semiring B
inst✝⁶ : Algebra R B
inst✝⁵ : Semiring C
inst✝⁴ : Algebra R C
inst✝³ : Algebra S C
inst✝² : Semiring D
inst✝¹ : Algebra R D
inst✝ : IsScalarTower R S C
f : A →ₐ[S] C
g : B →ₐ[R] C
hfg : ∀ (x : A) (y : B), Commute (f x) (g y)
⊢ ∀ (x : A), ((lift f g hfg).comp includeLeft) x = f x
state_after: no goals
Theorem: padicNorm.neg
File: Mathlib/NumberTheory/Padics/PadicNorm.lean

tactic: simp [hq]
state_before: p : ℕ
q : ℚ
hq : q = 0
⊢ padicNorm p (-q) = padicNorm p q
state_after: no goals

tactic: simp [padicNorm, hq]
state_before: p : ℕ
q : ℚ
hq : ¬q = 0
⊢ padicNorm p (-q) = padicNorm p q
state_after: no goals
Theorem: linearIndependent_le_span_finset
File: Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean

tactic: simpa only [Finset.coe_sort_coe, Fintype.card_coe] using linearIndependent_le_span v i w s
state_before: R : Type u
M : Type v
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι✝ : Type w
ι' : Type w'
inst✝ : StrongRankCondition R
ι : Type u_1
v : ι → M
i : LinearIndependent R v
w : Finset M
s : span R ↑w = ⊤
⊢ #ι ≤ ↑w.card
state_after: no goals
Theorem: MvPolynomial.pderiv_def
File: Mathlib/Algebra/MvPolynomial/PDeriv.lean

tactic: unfold pderiv
state_before: R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : DecidableEq σ
i : σ
⊢ pderiv i = mkDerivation R (Pi.single i 1)
state_after: R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : DecidableEq σ
i : σ
⊢ mkDerivation R (Pi.single i 1) = mkDerivation R (Pi.single i 1)

tactic: congr!
state_before: R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : DecidableEq σ
i : σ
⊢ mkDerivation R (Pi.single i 1) = mkDerivation R (Pi.single i 1)
state_after: no goals
Theorem: MeasureTheory.toFinite_apply
File: Mathlib/MeasureTheory/Measure/WithDensityFinite.lean

tactic: rw [Measure.toFinite, ProbabilityTheory.cond_apply _ MeasurableSet.univ, Set.univ_inter]
state_before: α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
s : Set α
⊢ μ.toFinite s = (μ.toFiniteAux Set.univ)⁻¹ * μ.toFiniteAux s
state_after: no goals
Theorem: LinearPMap.IsClosable.graph_closure_eq_closure_graph
File: Mathlib/Topology/Algebra/Module/LinearPMap.lean

tactic: rw [closure_def hf]
state_before: R : Type u_1
E : Type u_2
F : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : AddCommGroup E
inst✝⁹ : AddCommGroup F
inst✝⁸ : Module R E
inst✝⁷ : Module R F
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace F
inst✝⁴ : ContinuousAdd E
inst✝³ : ContinuousAdd F
inst✝² : TopologicalSpace R
inst✝¹ : ContinuousSMul R E
inst✝ : ContinuousSMul R F
f : E →ₗ.[R] F
hf : f.IsClosable
⊢ f.graph.topologicalClosure = f.closure.graph
state_after: R : Type u_1
E : Type u_2
F : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : AddCommGroup E
inst✝⁹ : AddCommGroup F
inst✝⁸ : Module R E
inst✝⁷ : Module R F
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace F
inst✝⁴ : ContinuousAdd E
inst✝³ : ContinuousAdd F
inst✝² : TopologicalSpace R
inst✝¹ : ContinuousSMul R E
inst✝ : ContinuousSMul R F
f : E →ₗ.[R] F
hf : f.IsClosable
⊢ f.graph.topologicalClosure = (Exists.choose hf).graph

tactic: exact hf.choose_spec
state_before: R : Type u_1
E : Type u_2
F : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : AddCommGroup E
inst✝⁹ : AddCommGroup F
inst✝⁸ : Module R E
inst✝⁷ : Module R F
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace F
inst✝⁴ : ContinuousAdd E
inst✝³ : ContinuousAdd F
inst✝² : TopologicalSpace R
inst✝¹ : ContinuousSMul R E
inst✝ : ContinuousSMul R F
f : E →ₗ.[R] F
hf : f.IsClosable
⊢ f.graph.topologicalClosure = (Exists.choose hf).graph
state_after: no goals
Theorem: Filter.tendsto_pow_atTop_iff
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: simp only [hn, pow_zero, not_tendsto_const_atTop] at h
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : LinearOrderedSemiring α
l : Filter β
f : β → α
n : ℕ
h : Tendsto (fun x => x ^ n) atTop atTop
hn : n = 0
⊢ False
state_after: no goals
Theorem: Set.mem_uIoc
File: Mathlib/Order/Interval/Set/UnorderedInterval.lean

tactic: rw [uIoc_eq_union, mem_union, mem_Ioc, mem_Ioc]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
s : Set α
a a₁ a₂ b b₁ b₂ c d x : α
⊢ a ∈ Ι b c ↔ b < a ∧ a ≤ c ∨ c < a ∧ a ≤ b
state_after: no goals
Theorem: SetTheory.PGame.neg_lt_neg_iff
File: Mathlib/SetTheory/Game/PGame.lean

tactic: rw [lt_iff_le_and_lf, lt_iff_le_and_lf, neg_le_neg_iff, neg_lf_neg_iff]
state_before: xl xr : Type u
x y : PGame
⊢ -y < -x ↔ x < y
state_after: no goals
Theorem: Nat.not_mem_of_lt_sInf
File: Mathlib/Data/Nat/Lattice.lean

tactic: cases eq_empty_or_nonempty s with
| inl h => subst h; apply not_mem_empty
| inr h => rw [Nat.sInf_def h] at hm; exact Nat.find_min h hm
state_before: s : Set ℕ
m : ℕ
hm : m < sInf s
⊢ m ∉ s
state_after: no goals

tactic: subst h
state_before: case inl
s : Set ℕ
m : ℕ
hm : m < sInf s
h : s = ∅
⊢ m ∉ s
state_after: case inl
m : ℕ
hm : m < sInf ∅
⊢ m ∉ ∅

tactic: apply not_mem_empty
state_before: case inl
m : ℕ
hm : m < sInf ∅
⊢ m ∉ ∅
state_after: no goals

tactic: rw [Nat.sInf_def h] at hm
state_before: case inr
s : Set ℕ
m : ℕ
hm : m < sInf s
h : s.Nonempty
⊢ m ∉ s
state_after: case inr
s : Set ℕ
m : ℕ
h : s.Nonempty
hm : m < Nat.find h
⊢ m ∉ s

tactic: exact Nat.find_min h hm
state_before: case inr
s : Set ℕ
m : ℕ
h : s.Nonempty
hm : m < Nat.find h
⊢ m ∉ s
state_after: no goals
Theorem: Finset.partiallyWellOrderedOn_bUnion
File: Mathlib/Order/WellFoundedSet.lean

tactic: simpa only [Finset.sup_eq_iSup] using s.partiallyWellOrderedOn_sup
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
π : ι → Type u_5
r : α → α → Prop
s : Finset ι
f : ι → Set α
⊢ (⋃ i ∈ s, f i).PartiallyWellOrderedOn r ↔ ∀ i ∈ s, (f i).PartiallyWellOrderedOn r
state_after: no goals
Theorem: idealFactorsEquivOfQuotEquiv_is_dvd_iso
File: Mathlib/RingTheory/DedekindDomain/Ideal.lean

tactic: suffices
  idealFactorsEquivOfQuotEquiv f ⟨M, hM⟩ ≤ idealFactorsEquivOfQuotEquiv f ⟨L, hL⟩ ↔
    (⟨M, hM⟩ : { p : Ideal R | p ∣ I }) ≤ ⟨L, hL⟩
  by rw [dvd_iff_le, dvd_iff_le, Subtype.coe_le_coe, this, Subtype.mk_le_mk]
state_before: R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDedekindDomain A
I : Ideal R
J : Ideal A
B : Type u_4
inst✝² : CommRing B
inst✝¹ : IsDedekindDomain B
L✝ : Ideal B
inst✝ : IsDedekindDomain R
f : R ⧸ I ≃+* A ⧸ J
L M : Ideal R
hL : L ∣ I
hM : M ∣ I
⊢ ↑((idealFactorsEquivOfQuotEquiv f) ⟨L, hL⟩) ∣ ↑((idealFactorsEquivOfQuotEquiv f) ⟨M, hM⟩) ↔ L ∣ M
state_after: R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDedekindDomain A
I : Ideal R
J : Ideal A
B : Type u_4
inst✝² : CommRing B
inst✝¹ : IsDedekindDomain B
L✝ : Ideal B
inst✝ : IsDedekindDomain R
f : R ⧸ I ≃+* A ⧸ J
L M : Ideal R
hL : L ∣ I
hM : M ∣ I
⊢ (idealFactorsEquivOfQuotEquiv f) ⟨M, hM⟩ ≤ (idealFactorsEquivOfQuotEquiv f) ⟨L, hL⟩ ↔ ⟨M, hM⟩ ≤ ⟨L, hL⟩

tactic: exact (idealFactorsEquivOfQuotEquiv f).le_iff_le
state_before: R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDedekindDomain A
I : Ideal R
J : Ideal A
B : Type u_4
inst✝² : CommRing B
inst✝¹ : IsDedekindDomain B
L✝ : Ideal B
inst✝ : IsDedekindDomain R
f : R ⧸ I ≃+* A ⧸ J
L M : Ideal R
hL : L ∣ I
hM : M ∣ I
⊢ (idealFactorsEquivOfQuotEquiv f) ⟨M, hM⟩ ≤ (idealFactorsEquivOfQuotEquiv f) ⟨L, hL⟩ ↔ ⟨M, hM⟩ ≤ ⟨L, hL⟩
state_after: no goals

tactic: rw [dvd_iff_le, dvd_iff_le, Subtype.coe_le_coe, this, Subtype.mk_le_mk]
state_before: R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDedekindDomain A
I : Ideal R
J : Ideal A
B : Type u_4
inst✝² : CommRing B
inst✝¹ : IsDedekindDomain B
L✝ : Ideal B
inst✝ : IsDedekindDomain R
f : R ⧸ I ≃+* A ⧸ J
L M : Ideal R
hL : L ∣ I
hM : M ∣ I
this : (idealFactorsEquivOfQuotEquiv f) ⟨M, hM⟩ ≤ (idealFactorsEquivOfQuotEquiv f) ⟨L, hL⟩ ↔ ⟨M, hM⟩ ≤ ⟨L, hL⟩
⊢ ↑((idealFactorsEquivOfQuotEquiv f) ⟨L, hL⟩) ∣ ↑((idealFactorsEquivOfQuotEquiv f) ⟨M, hM⟩) ↔ L ∣ M
state_after: no goals
Theorem: Filter.Tendsto.prod_map
File: Mathlib/Order/Filter/Prod.lean

tactic: erw [Tendsto, ← prod_map_map_eq]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ✝ : Type u_4
ι : Sort u_5
s : Set α
t : Set β
f✝ : Filter α
g✝ : Filter β
δ : Type u_6
f : α → γ
g : β → δ
a : Filter α
b : Filter β
c : Filter γ
d : Filter δ
hf : Tendsto f a c
hg : Tendsto g b d
⊢ Tendsto (Prod.map f g) (a ×ˢ b) (c ×ˢ d)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ✝ : Type u_4
ι : Sort u_5
s : Set α
t : Set β
f✝ : Filter α
g✝ : Filter β
δ : Type u_6
f : α → γ
g : β → δ
a : Filter α
b : Filter β
c : Filter γ
d : Filter δ
hf : Tendsto f a c
hg : Tendsto g b d
⊢ map f a ×ˢ map g b ≤ c ×ˢ d

tactic: exact Filter.prod_mono hf hg
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ✝ : Type u_4
ι : Sort u_5
s : Set α
t : Set β
f✝ : Filter α
g✝ : Filter β
δ : Type u_6
f : α → γ
g : β → δ
a : Filter α
b : Filter β
c : Filter γ
d : Filter δ
hf : Tendsto f a c
hg : Tendsto g b d
⊢ map f a ×ˢ map g b ≤ c ×ˢ d
state_after: no goals
Theorem: TopCat.pullbackIsoProdSubtype_inv_fst
File: Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean

tactic: simp [pullbackCone, pullbackIsoProdSubtype]
state_before: J : Type v
inst✝ : SmallCategory J
X Y Z : TopCat
f : X ⟶ Z
g : Y ⟶ Z
⊢ (pullbackIsoProdSubtype f g).inv ≫ pullback.fst = pullbackFst f g
state_after: no goals
Theorem: KaehlerDifferential.derivationQuotKerTotal_lift_comp_total
File: Mathlib/RingTheory/Kaehler/Basic.lean

tactic: apply Finsupp.lhom_ext
state_before: R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
⊢ (derivationQuotKerTotal R S).liftKaehlerDifferential ∘ₗ Finsupp.total S (Ω[S⁄R]) S ⇑(D R S) = (kerTotal R S).mkQ
state_after: case h
R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
⊢ ∀ (a b : S),
    ((derivationQuotKerTotal R S).liftKaehlerDifferential ∘ₗ Finsupp.total S (Ω[S⁄R]) S ⇑(D R S)) (single a b) = b𝖣a

tactic: intro a b
state_before: case h
R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
⊢ ∀ (a b : S),
    ((derivationQuotKerTotal R S).liftKaehlerDifferential ∘ₗ Finsupp.total S (Ω[S⁄R]) S ⇑(D R S)) (single a b) = b𝖣a
state_after: case h
R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
a b : S
⊢ ((derivationQuotKerTotal R S).liftKaehlerDifferential ∘ₗ Finsupp.total S (Ω[S⁄R]) S ⇑(D R S)) (single a b) = b𝖣a

tactic: conv_rhs => rw [← Finsupp.smul_single_one a b, LinearMap.map_smul]
state_before: case h
R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
a b : S
⊢ ((derivationQuotKerTotal R S).liftKaehlerDifferential ∘ₗ Finsupp.total S (Ω[S⁄R]) S ⇑(D R S)) (single a b) = b𝖣a
state_after: case h
R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
a b : S
⊢ ((derivationQuotKerTotal R S).liftKaehlerDifferential ∘ₗ Finsupp.total S (Ω[S⁄R]) S ⇑(D R S)) (single a b) = b • 1𝖣a

tactic: simp [KaehlerDifferential.derivationQuotKerTotal_apply]
state_before: case h
R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
a b : S
⊢ ((derivationQuotKerTotal R S).liftKaehlerDifferential ∘ₗ Finsupp.total S (Ω[S⁄R]) S ⇑(D R S)) (single a b) = b • 1𝖣a
state_after: no goals
Theorem: Polynomial.toFinsupp_monomial
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: simp [monomial]
state_before: R : Type u
a b : R
m n✝ : ℕ
inst✝ : Semiring R
p q : R[X]
n : ℕ
r : R
⊢ ((monomial n) r).toFinsupp = Finsupp.single n r
state_after: no goals
Theorem: mem_coclosedLindelof
File: Mathlib/Topology/Compactness/Lindelof.lean

tactic: simp only [hasBasis_coclosedLindelof.mem_iff, and_assoc]
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ s ∈ coclosedLindelof X ↔ ∃ t, IsClosed t ∧ IsLindelof t ∧ tᶜ ⊆ s
state_after: no goals
Theorem: MeasurableEmbedding.map_withDensity_rnDeriv
File: Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean

tactic: ext s hs
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ : Measure α
mβ : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
⊢ map f (ν.withDensity (μ.rnDeriv ν)) = (map f ν).withDensity ((map f μ).rnDeriv (map f ν))
state_after: case h
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ : Measure α
mβ : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
s : Set β
hs : MeasurableSet s
⊢ (map f (ν.withDensity (μ.rnDeriv ν))) s = ((map f ν).withDensity ((map f μ).rnDeriv (map f ν))) s

tactic: rw [hf.map_apply, withDensity_apply _ (hf.measurable hs), withDensity_apply _ hs,
  setLIntegral_map hs (Measure.measurable_rnDeriv _ _) hf.measurable]
state_before: case h
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ : Measure α
mβ : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
s : Set β
hs : MeasurableSet s
⊢ (map f (ν.withDensity (μ.rnDeriv ν))) s = ((map f ν).withDensity ((map f μ).rnDeriv (map f ν))) s
state_after: case h
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ : Measure α
mβ : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
s : Set β
hs : MeasurableSet s
⊢ ∫⁻ (a : α) in f ⁻¹' s, μ.rnDeriv ν a ∂ν = ∫⁻ (x : α) in f ⁻¹' s, (map f μ).rnDeriv (map f ν) (f x) ∂ν

tactic: refine setLIntegral_congr_fun (hf.measurable hs) ?_
state_before: case h
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ : Measure α
mβ : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
s : Set β
hs : MeasurableSet s
⊢ ∫⁻ (a : α) in f ⁻¹' s, μ.rnDeriv ν a ∂ν = ∫⁻ (x : α) in f ⁻¹' s, (map f μ).rnDeriv (map f ν) (f x) ∂ν
state_after: case h
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ : Measure α
mβ : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
s : Set β
hs : MeasurableSet s
⊢ ∀ᵐ (x : α) ∂ν, x ∈ f ⁻¹' s → μ.rnDeriv ν x = (map f μ).rnDeriv (map f ν) (f x)

tactic: filter_upwards [hf.rnDeriv_map μ ν] with a ha _ using ha.symm
state_before: case h
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ : Measure α
mβ : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
s : Set β
hs : MeasurableSet s
⊢ ∀ᵐ (x : α) ∂ν, x ∈ f ⁻¹' s → μ.rnDeriv ν x = (map f μ).rnDeriv (map f ν) (f x)
state_after: no goals