ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: AlternatingMap.eq_smul_basis_det
File: Mathlib/LinearAlgebra/Determinant.lean

Proof steps:
state_before: R : Type u_1
inst✝⁶ : CommRing R
M : Type u_2
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type u_3
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
ι : Type u_4
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
e : Basis ι R M
f : M [⋀^ι]→ₗ[R] R
⊢ f = f ⇑e • e.det
state_after: R : Type u_1
inst✝⁶ : CommRing R
M : Type u_2
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type u_3
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
ι : Type u_4
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
e : Basis ι R M
f : M [⋀^ι]→ₗ[R] R
i : ι → ι
h : Injective i
⊢ (f fun i_1 => e (i i_1)) = (f ⇑e • e.det) fun i_1 => e (i i_1)
tactic: refine Basis.ext_alternating e fun i h => ?_
state_before: R : Type u_1
inst✝⁶ : CommRing R
M : Type u_2
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type u_3
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
ι : Type u_4
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
e : Basis ι R M
f : M [⋀^ι]→ₗ[R] R
i : ι → ι
h : Injective i
⊢ (f fun i_1 => e (i i_1)) = (f ⇑e • e.det) fun i_1 => e (i i_1)
state_after: R : Type u_1
inst✝⁶ : CommRing R
M : Type u_2
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type u_3
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
ι : Type u_4
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
e : Basis ι R M
f : M [⋀^ι]→ₗ[R] R
i : ι → ι
h : Injective i
σ : Equiv.Perm ι := Equiv.ofBijective i ⋯
⊢ (f fun i_1 => e (i i_1)) = (f ⇑e • e.det) fun i_1 => e (i i_1)
tactic: let σ : Equiv.Perm ι := Equiv.ofBijective i (Finite.injective_iff_bijective.1 h)
state_before: R : Type u_1
inst✝⁶ : CommRing R
M : Type u_2
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type u_3
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
ι : Type u_4
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
e : Basis ι R M
f : M [⋀^ι]→ₗ[R] R
i : ι → ι
h : Injective i
σ : Equiv.Perm ι := Equiv.ofBijective i ⋯
⊢ (f fun i_1 => e (i i_1)) = (f ⇑e • e.det) fun i_1 => e (i i_1)
state_after: R : Type u_1
inst✝⁶ : CommRing R
M : Type u_2
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type u_3
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
ι : Type u_4
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
e : Basis ι R M
f : M [⋀^ι]→ₗ[R] R
i : ι → ι
h : Injective i
σ : Equiv.Perm ι := Equiv.ofBijective i ⋯
⊢ f (⇑e ∘ ⇑σ) = (f ⇑e • e.det) (⇑e ∘ ⇑σ)
tactic: change f (e ∘ σ) = (f e • e.det) (e ∘ σ)
state_before: R : Type u_1
inst✝⁶ : CommRing R
M : Type u_2
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type u_3
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
ι : Type u_4
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
e : Basis ι R M
f : M [⋀^ι]→ₗ[R] R
i : ι → ι
h : Injective i
σ : Equiv.Perm ι := Equiv.ofBijective i ⋯
⊢ f (⇑e ∘ ⇑σ) = (f ⇑e • e.det) (⇑e ∘ ⇑σ)
state_after: no goals
tactic: simp [AlternatingMap.map_perm, Basis.det_self]
Theorem: ContDiff.prod_map
File: Mathlib/Analysis/Calculus/ContDiff/Basic.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
D : Type uD
inst✝¹³ : NormedAddCommGroup D
inst✝¹² : NormedSpace 𝕜 D
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 u_2
inst✝⁵ : NormedAddCommGroup X
inst✝⁴ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
E' : Type u_3
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
F' : Type u_4
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace 𝕜 F'
f : E → F
g : E' → F'
hf : ContDiff 𝕜 n f
hg : ContDiff 𝕜 n g
⊢ ContDiff 𝕜 n (Prod.map f g)
state_after: 𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
D : Type uD
inst✝¹³ : NormedAddCommGroup D
inst✝¹² : NormedSpace 𝕜 D
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 u_2
inst✝⁵ : NormedAddCommGroup X
inst✝⁴ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
E' : Type u_3
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
F' : Type u_4
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace 𝕜 F'
f : E → F
g : E' → F'
hf : ∀ (x : E), ContDiffAt 𝕜 n f x
hg : ∀ (x : E'), ContDiffAt 𝕜 n g x
⊢ ∀ (x : E × E'), ContDiffAt 𝕜 n (Prod.map f g) x
tactic: rw [contDiff_iff_contDiffAt] at *
state_before: 𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
D : Type uD
inst✝¹³ : NormedAddCommGroup D
inst✝¹² : NormedSpace 𝕜 D
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 u_2
inst✝⁵ : NormedAddCommGroup X
inst✝⁴ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
E' : Type u_3
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
F' : Type u_4
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace 𝕜 F'
f : E → F
g : E' → F'
hf : ∀ (x : E), ContDiffAt 𝕜 n f x
hg : ∀ (x : E'), ContDiffAt 𝕜 n g x
⊢ ∀ (x : E × E'), ContDiffAt 𝕜 n (Prod.map f g) x
state_after: no goals
tactic: exact fun ⟨x, y⟩ => (hf x).prod_map (hg y)
Theorem: AddSubgroup.coe_eq_univ
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

Proof steps:
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H✝ K H : Subgroup G
⊢ ↑H = ↑⊤ ↔ ↑H = Set.univ
state_after: no goals
tactic: rfl
Theorem: AlgebraicGeometry.LocallyRingedSpace.Γ_Spec_left_triangle
File: Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean

Proof steps:
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj (op X))
⊢ toSpecΓ (Γ.obj (op X)) ≫ X.toΓSpec.val.c.app (op ⊤) = 𝟙 (Γ.obj (op X))
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj (op X))
⊢ toOpen ↑(Γ.obj (op X)) ⊤ ≫ X.toΓSpec.val.c.app (op ⊤) = 𝟙 (Γ.obj (op X))
tactic: unfold toSpecΓ
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj (op X))
⊢ toOpen ↑(Γ.obj (op X)) ⊤ ≫ X.toΓSpec.val.c.app (op ⊤) = 𝟙 (Γ.obj (op X))
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj (op X))
⊢ (toOpen (↑(Γ.obj (op X))) (basicOpen 1) ≫ (structureSheaf ↑(Γ.obj (op X))).val.map (eqToHom ⋯).op) ≫
      X.toΓSpec.val.c.app (op ⊤) =
    𝟙 (Γ.obj (op X))
tactic: rw [← toOpen_res _ (basicOpen (1 : Γ.obj (op X))) ⊤ (eqToHom basicOpen_one.symm)]
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj (op X))
⊢ (toOpen (↑(Γ.obj (op X))) (basicOpen 1) ≫ (structureSheaf ↑(Γ.obj (op X))).val.map (eqToHom ⋯).op) ≫
      X.toΓSpec.val.c.app (op ⊤) =
    𝟙 (Γ.obj (op X))
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj (op X))
⊢ toOpen (↑(Γ.obj (op X))) (basicOpen 1) ≫
      (structureSheaf ↑(Γ.obj (op X))).val.map (eqToHom ⋯).op ≫ X.toΓSpec.val.c.app (op ⊤) =
    𝟙 (Γ.obj (op X))
tactic: erw [Category.assoc]
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj (op X))
⊢ toOpen (↑(Γ.obj (op X))) (basicOpen 1) ≫
      (structureSheaf ↑(Γ.obj (op X))).val.map (eqToHom ⋯).op ≫ X.toΓSpec.val.c.app (op ⊤) =
    𝟙 (Γ.obj (op X))
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj (op X))
⊢ (toOpen (↑(Γ.obj (op X))) (basicOpen 1) ≫ X.toΓSpec.val.c.app (op (basicOpen 1))) ≫
      ((pushforward CommRingCat X.toΓSpec.val.base).obj X.presheaf).map (eqToHom ⋯).op =
    𝟙 (Γ.obj (op X))
tactic: rw [NatTrans.naturality, ← Category.assoc]
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj (op X))
⊢ (toOpen (↑(Γ.obj (op X))) (basicOpen 1) ≫ X.toΓSpec.val.c.app (op (basicOpen 1))) ≫
      ((pushforward CommRingCat X.toΓSpec.val.base).obj X.presheaf).map (eqToHom ⋯).op =
    𝟙 (Γ.obj (op X))
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj (op X))
⊢ X.presheaf.map ((X.toΓSpecMapBasicOpen 1).leTop.op ≫ (Opens.map X.toΓSpec.val.base).op.map (eqToHom ⋯).op) =
    𝟙 (Γ.obj (op X))
tactic: erw [X.toΓSpecSheafedSpace_app_spec 1, ← Functor.map_comp]
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj (op X))
⊢ X.presheaf.map ((X.toΓSpecMapBasicOpen 1).leTop.op ≫ (Opens.map X.toΓSpec.val.base).op.map (eqToHom ⋯).op) =
    𝟙 (Γ.obj (op X))
state_after: case convert_3
X : LocallyRingedSpace
r : ↑(Γ.obj (op X))
⊢ op ⊤ = (Opens.map X.toΓSpec.val.base).op.obj (op ⊤)
tactic: convert eqToHom_map X.presheaf _
state_before: case convert_3
X : LocallyRingedSpace
r : ↑(Γ.obj (op X))
⊢ op ⊤ = (Opens.map X.toΓSpec.val.base).op.obj (op ⊤)
state_after: no goals
tactic: rfl
Theorem: Pi.multipliable
File: Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
π : α → Type u_6
inst✝¹ : (x : α) → CommMonoid (π x)
inst✝ : (x : α) → TopologicalSpace (π x)
f : ι → (x : α) → π x
⊢ Multipliable f ↔ ∀ (x : α), Multipliable fun i => f i x
state_after: no goals
tactic: simp only [Multipliable, Pi.hasProd, Classical.skolem]
Theorem: LieModule.map_lowerCentralSeries_le
File: Mathlib/Algebra/Lie/Nilpotent.lean

Proof steps:
state_before: R : Type u
L : Type v
M : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
k : ℕ
N : LieSubmodule R L M
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
f : M →ₗ⁅R,L⁆ M₂
⊢ LieSubmodule.map f (lowerCentralSeries R L M k) ≤ lowerCentralSeries R L M₂ k
state_after: case zero
R : Type u
L : Type v
M : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
k : ℕ
N : LieSubmodule R L M
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
f : M →ₗ⁅R,L⁆ M₂
⊢ LieSubmodule.map f (lowerCentralSeries R L M 0) ≤ lowerCentralSeries R L M₂ 0

case succ
R : Type u
L : Type v
M : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
k✝ : ℕ
N : LieSubmodule R L M
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
f : M →ₗ⁅R,L⁆ M₂
k : ℕ
ih : LieSubmodule.map f (lowerCentralSeries R L M k) ≤ lowerCentralSeries R L M₂ k
⊢ LieSubmodule.map f (lowerCentralSeries R L M (k + 1)) ≤ lowerCentralSeries R L M₂ (k + 1)
tactic: induction' k with k ih
Theorem: _private.Mathlib.SetTheory.Game.PGame.0.SetTheory.PGame.neg_le_lf_neg_iff
File: Mathlib/SetTheory/Game/PGame.lean

Proof steps:
state_before: xl✝ xr✝ xl xr : Type u
xL : xl → PGame
xR : xr → PGame
yl yr : Type u
yL : yl → PGame
yR : yr → PGame
⊢ (-mk yl yr yL yR ≤ -mk xl xr xL xR ↔ mk xl xr xL xR ≤ mk yl yr yL yR) ∧
    (-mk yl yr yL yR ⧏ -mk xl xr xL xR ↔ mk xl xr xL xR ⧏ mk yl yr yL yR)
state_after: xl✝ xr✝ xl xr : Type u
xL : xl → PGame
xR : xr → PGame
yl yr : Type u
yL : yl → PGame
yR : yr → PGame
⊢ (((∀ (i : yr), -yR i ⧏ -mk xl xr xL xR) ∧ ∀ (j : xl), -mk yl yr yL yR ⧏ -xL j) ↔
      (∀ (i : xl), xL i ⧏ mk yl yr yL yR) ∧ ∀ (j : yr), mk xl xr xL xR ⧏ yR j) ∧
    (((∃ i, -mk yl yr yL yR ≤ -xR i) ∨ ∃ j, -yL j ≤ -mk xl xr xL xR) ↔
      (∃ i, mk xl xr xL xR ≤ yL i) ∨ ∃ j, xR j ≤ mk yl yr yL yR)
tactic: simp_rw [neg_def, mk_le_mk, mk_lf_mk, ← neg_def]
state_before: xl✝ xr✝ xl xr : Type u
xL : xl → PGame
xR : xr → PGame
yl yr : Type u
yL : yl → PGame
yR : yr → PGame
⊢ (((∀ (i : yr), -yR i ⧏ -mk xl xr xL xR) ∧ ∀ (j : xl), -mk yl yr yL yR ⧏ -xL j) ↔
      (∀ (i : xl), xL i ⧏ mk yl yr yL yR) ∧ ∀ (j : yr), mk xl xr xL xR ⧏ yR j) ∧
    (((∃ i, -mk yl yr yL yR ≤ -xR i) ∨ ∃ j, -yL j ≤ -mk xl xr xL xR) ↔
      (∃ i, mk xl xr xL xR ≤ yL i) ∨ ∃ j, xR j ≤ mk yl yr yL yR)
state_after: case left
xl✝ xr✝ xl xr : Type u
xL : xl → PGame
xR : xr → PGame
yl yr : Type u
yL : yl → PGame
yR : yr → PGame
⊢ ((∀ (i : yr), -yR i ⧏ -mk xl xr xL xR) ∧ ∀ (j : xl), -mk yl yr yL yR ⧏ -xL j) ↔
    (∀ (i : xl), xL i ⧏ mk yl yr yL yR) ∧ ∀ (j : yr), mk xl xr xL xR ⧏ yR j

case right
xl✝ xr✝ xl xr : Type u
xL : xl → PGame
xR : xr → PGame
yl yr : Type u
yL : yl → PGame
yR : yr → PGame
⊢ ((∃ i, -mk yl yr yL yR ≤ -xR i) ∨ ∃ j, -yL j ≤ -mk xl xr xL xR) ↔
    (∃ i, mk xl xr xL xR ≤ yL i) ∨ ∃ j, xR j ≤ mk yl yr yL yR
tactic: constructor
Theorem: Path.trans_prod_eq_prod_trans
File: Mathlib/Topology/Connected/PathConnected.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type u_3
γ : Path x y
a₁ a₂ a₃ : X
b₁ b₂ b₃ : Y
γ₁ : Path a₁ a₂
δ₁ : Path a₂ a₃
γ₂ : Path b₁ b₂
δ₂ : Path b₂ b₃
⊢ (γ₁.prod γ₂).trans (δ₁.prod δ₂) = (γ₁.trans δ₁).prod (γ₂.trans δ₂)
state_after: no goals
tactic: ext t <;>
  unfold Path.trans <;>
  simp only [Path.coe_mk_mk, Path.prod_coe, Function.comp_apply] <;>
  split_ifs <;>
  rfl
Theorem: SimpleGraph.Walk.edges_subset_edgeSet
File: Mathlib/Combinatorics/SimpleGraph/Walk.lean

Proof steps:
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v v✝ : V
h' : G.Adj u v✝
p' : G.Walk v✝ v
e : Sym2 V
h : e ∈ (cons h' p').edges
⊢ e ∈ G.edgeSet
state_after: case head
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v v✝ : V
h' : G.Adj u v✝
p' : G.Walk v✝ v
⊢ { toProd := (u, v✝), adj := h' }.edge ∈ G.edgeSet

case tail
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v v✝ : V
h' : G.Adj u v✝
p' : G.Walk v✝ v
e : Sym2 V
a✝ : List.Mem e (List.map Dart.edge p'.darts)
⊢ e ∈ G.edgeSet
tactic: cases h
state_before: case tail
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v v✝ : V
h' : G.Adj u v✝
p' : G.Walk v✝ v
e : Sym2 V
a✝ : List.Mem e (List.map Dart.edge p'.darts)
⊢ e ∈ G.edgeSet
state_after: no goals
tactic: next h' => exact edges_subset_edgeSet p' h'
Theorem: ProbabilityTheory.Kernel.iIndepSets.piiUnionInter_of_not_mem
File: Mathlib/Probability/Independence/Kernel.lean

Proof steps:
state_before: α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
_mΩ : MeasurableSpace Ω
κ : Kernel α Ω
μ : Measure α
π : ι → Set (Set Ω)
a : ι
S : Finset ι
hp_ind : iIndepSets π κ μ
haS : a ∉ S
⊢ IndepSets (piiUnionInter π ↑S) (π a) κ μ
state_after: case intro.intro.intro.intro
α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
_mΩ : MeasurableSpace Ω
κ : Kernel α Ω
μ : Measure α
π : ι → Set (Set Ω)
a : ι
S : Finset ι
hp_ind : iIndepSets π κ μ
haS : a ∉ S
t1 t2 : Set Ω
s : Finset ι
hs_mem : ↑s ⊆ ↑S
ft1 : ι → Set Ω
hft1_mem : ∀ x ∈ s, ft1 x ∈ π x
ht1_eq : t1 = ⋂ x ∈ s, ft1 x
ht2_mem_pia : t2 ∈ π a
⊢ ∀ᵐ (a : α) ∂μ, (κ a) (t1 ∩ t2) = (κ a) t1 * (κ a) t2
tactic: rintro t1 t2 ⟨s, hs_mem, ft1, hft1_mem, ht1_eq⟩ ht2_mem_pia
state_before: case intro.intro.intro.intro
α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
_mΩ : MeasurableSpace Ω
κ : Kernel α Ω
μ : Measure α
π : ι → Set (Set Ω)
a : ι
S : Finset ι
hp_ind : iIndepSets π κ μ
haS : a ∉ S
t1 t2 : Set Ω
s : Finset ι
hs_mem : ↑s ⊆ ↑S
ft1 : ι → Set Ω
hft1_mem : ∀ x ∈ s, ft1 x ∈ π x
ht1_eq : t1 = ⋂ x ∈ s, ft1 x
ht2_mem_pia : t2 ∈ π a
⊢ ∀ᵐ (a : α) ∂μ, (κ a) (t1 ∩ t2) = (κ a) t1 * (κ a) t2
state_after: case intro.intro.intro.intro
α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
_mΩ : MeasurableSpace Ω
κ : Kernel α Ω
μ : Measure α
π : ι → Set (Set Ω)
a : ι
S : Finset ι
hp_ind : iIndepSets π κ μ
haS : a ∉ S
t1 t2 : Set Ω
s : Finset ι
hs_mem : s ⊆ S
ft1 : ι → Set Ω
hft1_mem : ∀ x ∈ s, ft1 x ∈ π x
ht1_eq : t1 = ⋂ x ∈ s, ft1 x
ht2_mem_pia : t2 ∈ π a
⊢ ∀ᵐ (a : α) ∂μ, (κ a) (t1 ∩ t2) = (κ a) t1 * (κ a) t2
tactic: rw [Finset.coe_subset] at hs_mem
Theorem: Matrix.inv_zero
File: Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean

Proof steps:
state_before: l : Type u_1
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
⊢ 0⁻¹ = 0
state_after: case inl
l : Type u_1
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Subsingleton α
⊢ 0⁻¹ = 0

case inr
l : Type u_1
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Nontrivial α
⊢ 0⁻¹ = 0
tactic: cases' subsingleton_or_nontrivial α with ht ht
state_before: case inr
l : Type u_1
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Nontrivial α
⊢ 0⁻¹ = 0
state_after: case inr.inl
l : Type u_1
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Nontrivial α
hc : 0 = Fintype.card n
⊢ 0⁻¹ = 0

case inr.inr
l : Type u_1
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Nontrivial α
hc : 0 < Fintype.card n
⊢ 0⁻¹ = 0
tactic: rcases (Fintype.card n).zero_le.eq_or_lt with hc | hc
Theorem: CategoryTheory.Over.mapId_eq
File: Mathlib/CategoryTheory/Comma/Over.lean

Proof steps:
state_before: T : Type u₁
inst✝ : Category.{v₁, u₁} T
X Y : T
⊢ map (𝟙 Y) = 𝟭 (Over Y)
state_after: case h_obj
T : Type u₁
inst✝ : Category.{v₁, u₁} T
X Y : T
⊢ ∀ (X : Over Y), (map (𝟙 Y)).obj X = (𝟭 (Over Y)).obj X

case h_map
T : Type u₁
inst✝ : Category.{v₁, u₁} T
X Y : T
⊢ autoParam (∀ (X Y_1 : Over Y) (f : X ⟶ Y_1), (map (𝟙 Y)).map f = eqToHom ⋯ ≫ (𝟭 (Over Y)).map f ≫ eqToHom ⋯) _auto✝
tactic: fapply Functor.ext
Theorem: Nat.ceil_zero
File: Mathlib/Algebra/Order/Floor.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a : α
n : ℕ
⊢ ⌈0⌉₊ = 0
state_after: no goals
tactic: rw [← Nat.cast_zero, ceil_natCast]
Theorem: inv_le_inv_of_neg
File: Mathlib/Algebra/Order/Field/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
ha : a < 0
hb : b < 0
⊢ a⁻¹ ≤ b⁻¹ ↔ b ≤ a
state_after: no goals
tactic: rw [← one_div, div_le_iff_of_neg ha, ← div_eq_inv_mul, div_le_iff_of_neg hb, one_mul]
Theorem: Filter.hasBasis_cocardinal
File: Mathlib/Order/Filter/Cocardinal.lean

Proof steps:
state_before: ι α β : Type u
c : Cardinal.{u}
hreg : c.IsRegular
l : Filter α
s : Set α
x✝ : ∃ i, {s | #↑s < c} i ∧ iᶜ ⊆ s
_t : Set α
htf : {s | #↑s < c} _t
hts : _tᶜ ⊆ s
⊢ s ∈ cocardinal α hreg
state_after: ι α β : Type u
c : Cardinal.{u}
hreg : c.IsRegular
l : Filter α
s : Set α
x✝ : ∃ i, {s | #↑s < c} i ∧ iᶜ ⊆ s
_t : Set α
htf : {s | #↑s < c} _t
hts : _tᶜ ⊆ s
this : #↑sᶜ < c
⊢ s ∈ cocardinal α hreg
tactic: have : #↑sᶜ < c := by
        apply lt_of_le_of_lt _ htf
        rw [compl_subset_comm] at hts
        apply Cardinal.mk_le_mk_of_subset hts
state_before: ι α β : Type u
c : Cardinal.{u}
hreg : c.IsRegular
l : Filter α
s : Set α
x✝ : ∃ i, {s | #↑s < c} i ∧ iᶜ ⊆ s
_t : Set α
htf : {s | #↑s < c} _t
hts : _tᶜ ⊆ s
this : #↑sᶜ < c
⊢ s ∈ cocardinal α hreg
state_after: no goals
tactic: simp_all only [mem_cocardinal]
Theorem: Matrix.compRingEquiv_symm_apply
File: Mathlib/Data/Matrix/Composition.lean

Proof steps:
state_before: I : Type u_1
J : Type u_2
K : Type u_3
L : Type u_4
R : Type u_5
inst✝⁴ : Semiring R
inst✝³ : Fintype I
inst✝² : Fintype J
inst✝¹ : DecidableEq I
inst✝ : DecidableEq J
x✝¹ x✝ : Matrix I I (Matrix J J R)
⊢ __spread✝⁻⁰.toFun (x✝¹ * x✝) = __spread✝⁻⁰.toFun x✝¹ * __spread✝⁻⁰.toFun x✝
state_after: case a
I : Type u_1
J : Type u_2
K : Type u_3
L : Type u_4
R : Type u_5
inst✝⁴ : Semiring R
inst✝³ : Fintype I
inst✝² : Fintype J
inst✝¹ : DecidableEq I
inst✝ : DecidableEq J
x✝¹ x✝ : Matrix I I (Matrix J J R)
i✝ j✝ : I × J
⊢ __spread✝⁻⁰.toFun (x✝¹ * x✝) i✝ j✝ = (__spread✝⁻⁰.toFun x✝¹ * __spread✝⁻⁰.toFun x✝) i✝ j✝
tactic: ext _ _
state_before: case a
I : Type u_1
J : Type u_2
K : Type u_3
L : Type u_4
R : Type u_5
inst✝⁴ : Semiring R
inst✝³ : Fintype I
inst✝² : Fintype J
inst✝¹ : DecidableEq I
inst✝ : DecidableEq J
x✝¹ x✝ : Matrix I I (Matrix J J R)
i✝ j✝ : I × J
⊢ __spread✝⁻⁰.toFun (x✝¹ * x✝) i✝ j✝ = (__spread✝⁻⁰.toFun x✝¹ * __spread✝⁻⁰.toFun x✝) i✝ j✝
state_after: no goals
tactic: exact (Matrix.sum_apply _ _ _ _).trans $ Eq.symm Fintype.sum_prod_type
Theorem: AddSubmonoid.fromLeftNeg_eq_iff
File: Mathlib/GroupTheory/Submonoid/Inverses.lean

Proof steps:
state_before: M : Type u_1
inst✝ : CommMonoid M
S : Submonoid M
a : ↥S.leftInv
b : M
⊢ ↑(S.fromLeftInv a) = b ↔ ↑a * b = 1
state_after: no goals
tactic: rw [← IsUnit.mul_right_inj (leftInv_le_isUnit _ a.prop), S.mul_fromLeftInv, eq_comm]
Theorem: MeasureTheory.Lp.nnnorm_zero
File: Mathlib/MeasureTheory/Function/LpSpace.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
⊢ ‖0‖₊ = 0
state_after: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
⊢ (eLpNorm (↑↑0) p μ).toNNReal = 0
tactic: rw [nnnorm_def]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
⊢ (eLpNorm (↑↑0) p μ).toNNReal = 0
state_after: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
⊢ (eLpNorm (↑0) p μ).toNNReal = 0
tactic: change (eLpNorm (⇑(0 : α →ₘ[μ] E)) p μ).toNNReal = 0
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
⊢ (eLpNorm (↑0) p μ).toNNReal = 0
state_after: no goals
tactic: simp [eLpNorm_congr_ae AEEqFun.coeFn_zero, eLpNorm_zero]
Theorem: SimpleGraph.comap_map_eq
File: Mathlib/Combinatorics/SimpleGraph/Maps.lean

Proof steps:
state_before: V : Type u_1
W : Type u_2
X : Type u_3
G✝ : SimpleGraph V
G' : SimpleGraph W
u v : V
f : V ↪ W
G : SimpleGraph V
⊢ SimpleGraph.comap (⇑f) (SimpleGraph.map f G) = G
state_after: case Adj.h.h.a
V : Type u_1
W : Type u_2
X : Type u_3
G✝ : SimpleGraph V
G' : SimpleGraph W
u v : V
f : V ↪ W
G : SimpleGraph V
x✝¹ x✝ : V
⊢ (SimpleGraph.comap (⇑f) (SimpleGraph.map f G)).Adj x✝¹ x✝ ↔ G.Adj x✝¹ x✝
tactic: ext
state_before: case Adj.h.h.a
V : Type u_1
W : Type u_2
X : Type u_3
G✝ : SimpleGraph V
G' : SimpleGraph W
u v : V
f : V ↪ W
G : SimpleGraph V
x✝¹ x✝ : V
⊢ (SimpleGraph.comap (⇑f) (SimpleGraph.map f G)).Adj x✝¹ x✝ ↔ G.Adj x✝¹ x✝
state_after: no goals
tactic: simp