1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Homotopy.mkCoinductiveAux₃
File: Mathlib/Algebra/Homology/Homotopy.lean

tactic: subst j
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h✝ k : D ⟶ E
i✝ : ι
P Q : CochainComplex V ℕ
e : P ⟶ Q
zero : P.X 1 ⟶ Q.X 0
comm_zero : e.f 0 = P.d 0 1 ≫ zero
one : P.X 2 ⟶ Q.X 1
comm_one : e.f 1 = zero ≫ Q.d 0 1 + P.d 1 2 ≫ one
succ :
  (n : ℕ) →
    (p :
        (f : P.X (n + 1) ⟶ Q.X n) ×'
          (f' : P.X (n + 2) ⟶ Q.X (n + 1)) ×' e.f (n + 1) = f ≫ Q.d n (n + 1) + P.d (n + 1) (n + 2) ≫ f') →
      (f'' : P.X (n + 3) ⟶ Q.X (n + 2)) ×' e.f (n + 2) = p.snd.fst ≫ Q.d (n + 1) (n + 2) + P.d (n + 2) (n + 3) ≫ f''
i j : ℕ
h : i + 1 = j
⊢ (xNextIso P h).inv ≫ (mkCoinductiveAux₂ e zero comm_zero one comm_one succ i).snd.fst =
    (mkCoinductiveAux₂ e zero comm_zero one comm_one succ j).fst ≫ (xPrevIso Q h).hom
state_after: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i✝ : ι
P Q : CochainComplex V ℕ
e : P ⟶ Q
zero : P.X 1 ⟶ Q.X 0
comm_zero : e.f 0 = P.d 0 1 ≫ zero
one : P.X 2 ⟶ Q.X 1
comm_one : e.f 1 = zero ≫ Q.d 0 1 + P.d 1 2 ≫ one
succ :
  (n : ℕ) →
    (p :
        (f : P.X (n + 1) ⟶ Q.X n) ×'
          (f' : P.X (n + 2) ⟶ Q.X (n + 1)) ×' e.f (n + 1) = f ≫ Q.d n (n + 1) + P.d (n + 1) (n + 2) ≫ f') →
      (f'' : P.X (n + 3) ⟶ Q.X (n + 2)) ×' e.f (n + 2) = p.snd.fst ≫ Q.d (n + 1) (n + 2) + P.d (n + 2) (n + 3) ≫ f''
i : ℕ
⊢ (xNextIso P ⋯).inv ≫ (mkCoinductiveAux₂ e zero comm_zero one comm_one succ i).snd.fst =
    (mkCoinductiveAux₂ e zero comm_zero one comm_one succ (i + 1)).fst ≫ (xPrevIso Q ⋯).hom

tactic: rcases i with (_ | _ | i) <;> simp [mkCoinductiveAux₂]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i✝ : ι
P Q : CochainComplex V ℕ
e : P ⟶ Q
zero : P.X 1 ⟶ Q.X 0
comm_zero : e.f 0 = P.d 0 1 ≫ zero
one : P.X 2 ⟶ Q.X 1
comm_one : e.f 1 = zero ≫ Q.d 0 1 + P.d 1 2 ≫ one
succ :
  (n : ℕ) →
    (p :
        (f : P.X (n + 1) ⟶ Q.X n) ×'
          (f' : P.X (n + 2) ⟶ Q.X (n + 1)) ×' e.f (n + 1) = f ≫ Q.d n (n + 1) + P.d (n + 1) (n + 2) ≫ f') →
      (f'' : P.X (n + 3) ⟶ Q.X (n + 2)) ×' e.f (n + 2) = p.snd.fst ≫ Q.d (n + 1) (n + 2) + P.d (n + 2) (n + 3) ≫ f''
i : ℕ
⊢ (xNextIso P ⋯).inv ≫ (mkCoinductiveAux₂ e zero comm_zero one comm_one succ i).snd.fst =
    (mkCoinductiveAux₂ e zero comm_zero one comm_one succ (i + 1)).fst ≫ (xPrevIso Q ⋯).hom
state_after: no goals
Theorem: Set.sUnion_prod_const
File: Mathlib/Data/Set/Lattice.lean

tactic: simp only [sUnion_eq_biUnion, iUnion₂_prod_const, biUnion_image]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
C : Set (Set α)
t : Set β
⊢ ⋃₀ C ×ˢ t = ⋃₀ ((fun s => s ×ˢ t) '' C)
state_after: no goals
Theorem: Rat.isSquare_intCast_iff
File: Mathlib/Data/Rat/Lemmas.lean

tactic: simp_rw [isSquare_iff, intCast_num, intCast_den, isSquare_one, and_true]
state_before: z : ℤ
⊢ IsSquare ↑z ↔ IsSquare z
state_after: no goals
Theorem: isIntegral_algHom_iff
File: Mathlib/RingTheory/IntegralClosure.lean

tactic: refine ⟨fun ⟨p, hp, hx⟩ ↦ ⟨p, hp, ?_⟩, IsIntegral.map f⟩
state_before: R : Type u_1
A✝ : Type u_2
B✝ : Type u_3
S : Type u_4
inst✝⁹ : CommRing R
inst✝⁸ : CommRing A✝
inst✝⁷ : Ring B✝
inst✝⁶ : CommRing S
inst✝⁵ : Algebra R A✝
inst✝⁴ : Algebra R B✝
f✝ : R →+* S
A : Type u_5
B : Type u_6
inst✝³ : Ring A
inst✝² : Ring B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f : A →ₐ[R] B
hf : Function.Injective ⇑f
x : A
⊢ IsIntegral R (f x) ↔ IsIntegral R x
state_after: R : Type u_1
A✝ : Type u_2
B✝ : Type u_3
S : Type u_4
inst✝⁹ : CommRing R
inst✝⁸ : CommRing A✝
inst✝⁷ : Ring B✝
inst✝⁶ : CommRing S
inst✝⁵ : Algebra R A✝
inst✝⁴ : Algebra R B✝
f✝ : R →+* S
A : Type u_5
B : Type u_6
inst✝³ : Ring A
inst✝² : Ring B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f : A →ₐ[R] B
hf : Function.Injective ⇑f
x : A
x✝ : IsIntegral R (f x)
p : R[X]
hp : p.Monic
hx : eval₂ (algebraMap R B) (f x) p = 0
⊢ eval₂ (algebraMap R A) x p = 0

tactic: rwa [← f.comp_algebraMap, ← AlgHom.coe_toRingHom, ← hom_eval₂, AlgHom.coe_toRingHom,
  map_eq_zero_iff f hf] at hx
state_before: R : Type u_1
A✝ : Type u_2
B✝ : Type u_3
S : Type u_4
inst✝⁹ : CommRing R
inst✝⁸ : CommRing A✝
inst✝⁷ : Ring B✝
inst✝⁶ : CommRing S
inst✝⁵ : Algebra R A✝
inst✝⁴ : Algebra R B✝
f✝ : R →+* S
A : Type u_5
B : Type u_6
inst✝³ : Ring A
inst✝² : Ring B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f : A →ₐ[R] B
hf : Function.Injective ⇑f
x : A
x✝ : IsIntegral R (f x)
p : R[X]
hp : p.Monic
hx : eval₂ (algebraMap R B) (f x) p = 0
⊢ eval₂ (algebraMap R A) x p = 0
state_after: no goals
Theorem: LieModule.maxTrivEquiv_of_refl_eq_refl
File: Mathlib/Algebra/Lie/Abelian.lean

tactic: ext
state_before: R : Type u
L : Type v
M : Type w
N : 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
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : LieRingModule L N
inst✝ : LieModule R L N
⊢ maxTrivEquiv LieModuleEquiv.refl = LieModuleEquiv.refl
state_after: case h.a
R : Type u
L : Type v
M : Type w
N : 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
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : LieRingModule L N
inst✝ : LieModule R L N
m✝ : ↥↑(maxTrivSubmodule R L M)
⊢ ↑((maxTrivEquiv LieModuleEquiv.refl) m✝) = ↑(LieModuleEquiv.refl m✝)

tactic: simp only [coe_maxTrivEquiv_apply, LieModuleEquiv.refl_apply]
state_before: case h.a
R : Type u
L : Type v
M : Type w
N : 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
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : LieRingModule L N
inst✝ : LieModule R L N
m✝ : ↥↑(maxTrivSubmodule R L M)
⊢ ↑((maxTrivEquiv LieModuleEquiv.refl) m✝) = ↑(LieModuleEquiv.refl m✝)
state_after: no goals
Theorem: ENNReal.mul_lt_mul
File: Mathlib/Data/ENNReal/Operations.lean

tactic: rcases lt_iff_exists_nnreal_btwn.1 ac with ⟨a', aa', a'c⟩
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
ac : a < c
bd : b < d
⊢ a * b < c * d
state_after: case intro.intro
a b c d : ℝ≥0∞
r p q : ℝ≥0
ac : a < c
bd : b < d
a' : ℝ≥0
aa' : a < ↑a'
a'c : ↑a' < c
⊢ a * b < c * d

tactic: lift a to ℝ≥0 using ne_top_of_lt aa'
state_before: case intro.intro
a b c d : ℝ≥0∞
r p q : ℝ≥0
ac : a < c
bd : b < d
a' : ℝ≥0
aa' : a < ↑a'
a'c : ↑a' < c
⊢ a * b < c * d
state_after: case intro.intro.intro
b c d : ℝ≥0∞
r p q : ℝ≥0
bd : b < d
a' : ℝ≥0
a'c : ↑a' < c
a : ℝ≥0
ac : ↑a < c
aa' : ↑a < ↑a'
⊢ ↑a * b < c * d

tactic: rcases lt_iff_exists_nnreal_btwn.1 bd with ⟨b', bb', b'd⟩
state_before: case intro.intro.intro
b c d : ℝ≥0∞
r p q : ℝ≥0
bd : b < d
a' : ℝ≥0
a'c : ↑a' < c
a : ℝ≥0
ac : ↑a < c
aa' : ↑a < ↑a'
⊢ ↑a * b < c * d
state_after: case intro.intro.intro.intro.intro
b c d : ℝ≥0∞
r p q : ℝ≥0
bd : b < d
a' : ℝ≥0
a'c : ↑a' < c
a : ℝ≥0
ac : ↑a < c
aa' : ↑a < ↑a'
b' : ℝ≥0
bb' : b < ↑b'
b'd : ↑b' < d
⊢ ↑a * b < c * d

tactic: lift b to ℝ≥0 using ne_top_of_lt bb'
state_before: case intro.intro.intro.intro.intro
b c d : ℝ≥0∞
r p q : ℝ≥0
bd : b < d
a' : ℝ≥0
a'c : ↑a' < c
a : ℝ≥0
ac : ↑a < c
aa' : ↑a < ↑a'
b' : ℝ≥0
bb' : b < ↑b'
b'd : ↑b' < d
⊢ ↑a * b < c * d
state_after: case intro.intro.intro.intro.intro.intro
c d : ℝ≥0∞
r p q a' : ℝ≥0
a'c : ↑a' < c
a : ℝ≥0
ac : ↑a < c
aa' : ↑a < ↑a'
b' : ℝ≥0
b'd : ↑b' < d
b : ℝ≥0
bd : ↑b < d
bb' : ↑b < ↑b'
⊢ ↑a * ↑b < c * d

tactic: norm_cast at *
state_before: case intro.intro.intro.intro.intro.intro
c d : ℝ≥0∞
r p q a' : ℝ≥0
a'c : ↑a' < c
a : ℝ≥0
ac : ↑a < c
aa' : ↑a < ↑a'
b' : ℝ≥0
b'd : ↑b' < d
b : ℝ≥0
bd : ↑b < d
bb' : ↑b < ↑b'
⊢ ↑a * ↑b < c * d
state_after: case intro.intro.intro.intro.intro.intro
c d : ℝ≥0∞
r p q a' : ℝ≥0
a'c : ↑a' < c
a : ℝ≥0
ac : ↑a < c
b' : ℝ≥0
b'd : ↑b' < d
b : ℝ≥0
bd : ↑b < d
aa' : a < a'
bb' : b < b'
⊢ ↑(a * b) < c * d

tactic: calc
  ↑(a * b) < ↑(a' * b') := coe_lt_coe.2 (mul_lt_mul₀ aa' bb')
  _ ≤ c * d := mul_le_mul' a'c.le b'd.le
state_before: case intro.intro.intro.intro.intro.intro
c d : ℝ≥0∞
r p q a' : ℝ≥0
a'c : ↑a' < c
a : ℝ≥0
ac : ↑a < c
b' : ℝ≥0
b'd : ↑b' < d
b : ℝ≥0
bd : ↑b < d
aa' : a < a'
bb' : b < b'
⊢ ↑(a * b) < c * d
state_after: no goals
Theorem: MvPolynomial.support_coeff_finSuccEquiv
File: Mathlib/Algebra/MvPolynomial/Equiv.lean

tactic: apply Iff.intro
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
⊢ m ∈ (((finSuccEquiv R n) f).coeff i).support ↔ cons i m ∈ f.support
state_after: case mp
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
⊢ m ∈ (((finSuccEquiv R n) f).coeff i).support → cons i m ∈ f.support

case mpr
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
⊢ cons i m ∈ f.support → m ∈ (((finSuccEquiv R n) f).coeff i).support

tactic: intro h
state_before: case mp
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
⊢ m ∈ (((finSuccEquiv R n) f).coeff i).support → cons i m ∈ f.support
state_after: case mp
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
h : m ∈ (((finSuccEquiv R n) f).coeff i).support
⊢ cons i m ∈ f.support

tactic: simpa [← finSuccEquiv_coeff_coeff] using h
state_before: case mp
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
h : m ∈ (((finSuccEquiv R n) f).coeff i).support
⊢ cons i m ∈ f.support
state_after: no goals

tactic: intro h
state_before: case mpr
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
⊢ cons i m ∈ f.support → m ∈ (((finSuccEquiv R n) f).coeff i).support
state_after: case mpr
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
h : cons i m ∈ f.support
⊢ m ∈ (((finSuccEquiv R n) f).coeff i).support

tactic: simpa [mem_support_iff, ← finSuccEquiv_coeff_coeff m f i] using h
state_before: case mpr
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
h : cons i m ∈ f.support
⊢ m ∈ (((finSuccEquiv R n) f).coeff i).support
state_after: no goals
Theorem: IsLowerSet.null_frontier
File: Mathlib/MeasureTheory/Order/UpperLower.lean

tactic: refine measure_mono_null (fun x hx ↦ ?_)
  (Besicovitch.ae_tendsto_measure_inter_div_of_measurableSet _
    (isClosed_closure (s := s)).measurableSet)
state_before: ι : Type u_1
inst✝ : Fintype ι
s : Set (ι → ℝ)
x y : ι → ℝ
δ : ℝ
hs : IsLowerSet s
⊢ volume (frontier s) = 0
state_after: ι : Type u_1
inst✝ : Fintype ι
s : Set (ι → ℝ)
x✝ y : ι → ℝ
δ : ℝ
hs : IsLowerSet s
x : ι → ℝ
hx : x ∈ frontier s
⊢ x ∈
    {x |
        (fun x =>
            Tendsto (fun r => volume (closure s ∩ closedBall x r) / volume (closedBall x r)) (𝓝[>] 0)
              (𝓝 ((closure s).indicator 1 x)))
          x}ᶜ

tactic: by_cases h : x ∈ closure s <;> simp [h]
state_before: ι : Type u_1
inst✝ : Fintype ι
s : Set (ι → ℝ)
x✝ y : ι → ℝ
δ : ℝ
hs : IsLowerSet s
x : ι → ℝ
hx : x ∈ frontier s
⊢ x ∈
    {x |
        (fun x =>
            Tendsto (fun r => volume (closure s ∩ closedBall x r) / volume (closedBall x r)) (𝓝[>] 0)
              (𝓝 ((closure s).indicator 1 x)))
          x}ᶜ
state_after: case pos
ι : Type u_1
inst✝ : Fintype ι
s : Set (ι → ℝ)
x✝ y : ι → ℝ
δ : ℝ
hs : IsLowerSet s
x : ι → ℝ
hx : x ∈ frontier s
h : x ∈ closure s
⊢ ¬Tendsto (fun r => volume (closure s ∩ closedBall x r) / volume (closedBall x r)) (𝓝[>] 0) (𝓝 1)

case neg
ι : Type u_1
inst✝ : Fintype ι
s : Set (ι → ℝ)
x✝ y : ι → ℝ
δ : ℝ
hs : IsLowerSet s
x : ι → ℝ
hx : x ∈ frontier s
h : x ∉ closure s
⊢ ¬Tendsto (fun r => volume (closure s ∩ closedBall x r) / volume (closedBall x r)) (𝓝[>] 0) (𝓝 0)

tactic: refine aux₁ fun _ ↦ hs.compl.exists_subset_ball $ frontier_subset_closure ?_
state_before: case pos
ι : Type u_1
inst✝ : Fintype ι
s : Set (ι → ℝ)
x✝ y : ι → ℝ
δ : ℝ
hs : IsLowerSet s
x : ι → ℝ
hx : x ∈ frontier s
h : x ∈ closure s
⊢ ¬Tendsto (fun r => volume (closure s ∩ closedBall x r) / volume (closedBall x r)) (𝓝[>] 0) (𝓝 1)
state_after: case pos
ι : Type u_1
inst✝ : Fintype ι
s : Set (ι → ℝ)
x✝¹ y : ι → ℝ
δ : ℝ
hs : IsLowerSet s
x : ι → ℝ
hx : x ∈ frontier s
h : x ∈ closure s
x✝ : ℝ
⊢ x ∈ frontier sᶜ

tactic: rwa [frontier_compl]
state_before: case pos
ι : Type u_1
inst✝ : Fintype ι
s : Set (ι → ℝ)
x✝¹ y : ι → ℝ
δ : ℝ
hs : IsLowerSet s
x : ι → ℝ
hx : x ∈ frontier s
h : x ∈ closure s
x✝ : ℝ
⊢ x ∈ frontier sᶜ
state_after: no goals

tactic: exact aux₀ fun _ ↦ hs.exists_subset_ball $ frontier_subset_closure hx
state_before: case neg
ι : Type u_1
inst✝ : Fintype ι
s : Set (ι → ℝ)
x✝ y : ι → ℝ
δ : ℝ
hs : IsLowerSet s
x : ι → ℝ
hx : x ∈ frontier s
h : x ∉ closure s
⊢ ¬Tendsto (fun r => volume (closure s ∩ closedBall x r) / volume (closedBall x r)) (𝓝[>] 0) (𝓝 0)
state_after: no goals
Theorem: le_div_iff₀
File: Mathlib/Algebra/Order/GroupWithZero/Canonical.lean

tactic: rw [div_eq_mul_inv, le_mul_inv_iff₀ hc]
state_before: α : Type u_1
inst✝ : LinearOrderedCommGroupWithZero α
a b c d : α
m n : ℕ
hc : c ≠ 0
⊢ a ≤ b / c ↔ a * c ≤ b
state_after: no goals
Theorem: Ordinal.div_pos
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: simp [lt_div h]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
b c : Ordinal.{u_4}
h : c ≠ 0
⊢ 0 < b / c ↔ c ≤ b
state_after: no goals
Theorem: OrderIso.preimage_Ioo
File: Mathlib/Order/Interval/Set/OrderIso.lean

tactic: simp [← Ioi_inter_Iio]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
e : α ≃o β
a b : β
⊢ ⇑e ⁻¹' Ioo a b = Ioo (e.symm a) (e.symm b)
state_after: no goals
Theorem: CliffordAlgebra.equivOfIsometry_trans
File: Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean

tactic: ext x
state_before: R : Type u_1
inst✝¹⁰ : CommRing R
M : Type u_2
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
Q : QuadraticForm R M
n : ℕ
A : Type u_3
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
M₁ : Type u_4
M₂ : Type u_5
M₃ : Type u_6
inst✝⁵ : AddCommGroup M₁
inst✝⁴ : AddCommGroup M₂
inst✝³ : AddCommGroup M₃
inst✝² : Module R M₁
inst✝¹ : Module R M₂
inst✝ : Module R M₃
Q₁ : QuadraticForm R M₁
Q₂ : QuadraticForm R M₂
Q₃ : QuadraticForm R M₃
e₁₂ : Q₁.IsometryEquiv Q₂
e₂₃ : Q₂.IsometryEquiv Q₃
⊢ (equivOfIsometry e₁₂).trans (equivOfIsometry e₂₃) = equivOfIsometry (e₁₂.trans e₂₃)
state_after: case h
R : Type u_1
inst✝¹⁰ : CommRing R
M : Type u_2
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
Q : QuadraticForm R M
n : ℕ
A : Type u_3
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
M₁ : Type u_4
M₂ : Type u_5
M₃ : Type u_6
inst✝⁵ : AddCommGroup M₁
inst✝⁴ : AddCommGroup M₂
inst✝³ : AddCommGroup M₃
inst✝² : Module R M₁
inst✝¹ : Module R M₂
inst✝ : Module R M₃
Q₁ : QuadraticForm R M₁
Q₂ : QuadraticForm R M₂
Q₃ : QuadraticForm R M₃
e₁₂ : Q₁.IsometryEquiv Q₂
e₂₃ : Q₂.IsometryEquiv Q₃
x : CliffordAlgebra Q₁
⊢ ((equivOfIsometry e₁₂).trans (equivOfIsometry e₂₃)) x = (equivOfIsometry (e₁₂.trans e₂₃)) x

tactic: exact AlgHom.congr_fun (map_comp_map _ _) x
state_before: case h
R : Type u_1
inst✝¹⁰ : CommRing R
M : Type u_2
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
Q : QuadraticForm R M
n : ℕ
A : Type u_3
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
M₁ : Type u_4
M₂ : Type u_5
M₃ : Type u_6
inst✝⁵ : AddCommGroup M₁
inst✝⁴ : AddCommGroup M₂
inst✝³ : AddCommGroup M₃
inst✝² : Module R M₁
inst✝¹ : Module R M₂
inst✝ : Module R M₃
Q₁ : QuadraticForm R M₁
Q₂ : QuadraticForm R M₂
Q₃ : QuadraticForm R M₃
e₁₂ : Q₁.IsometryEquiv Q₂
e₂₃ : Q₂.IsometryEquiv Q₃
x : CliffordAlgebra Q₁
⊢ ((equivOfIsometry e₁₂).trans (equivOfIsometry e₂₃)) x = (equivOfIsometry (e₁₂.trans e₂₃)) x
state_after: no goals
Theorem: SubMulAction.neg_mem
File: Mathlib/GroupTheory/GroupAction/SubMulAction.lean

tactic: rw [← neg_one_smul R]
state_before: S : Type u'
T : Type u''
R : Type u
M : Type v
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : SubMulAction R M
r : R
x y : M
hx : x ∈ p
⊢ -x ∈ p
state_after: S : Type u'
T : Type u''
R : Type u
M : Type v
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : SubMulAction R M
r : R
x y : M
hx : x ∈ p
⊢ -1 • x ∈ p

tactic: exact p.smul_mem _ hx
state_before: S : Type u'
T : Type u''
R : Type u
M : Type v
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : SubMulAction R M
r : R
x y : M
hx : x ∈ p
⊢ -1 • x ∈ p
state_after: no goals
Theorem: IntermediateField.adjoin_le_subfield
File: Mathlib/FieldTheory/Adjoin.lean

tactic: apply Subfield.closure_le.mpr
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : Subfield E
HF : Set.range ⇑(algebraMap F E) ⊆ ↑K
HS : S ⊆ ↑K
⊢ (adjoin F S).toSubfield ≤ K
state_after: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : Subfield E
HF : Set.range ⇑(algebraMap F E) ⊆ ↑K
HS : S ⊆ ↑K
⊢ Set.range ⇑(algebraMap F E) ∪ S ⊆ ↑K

tactic: rw [Set.union_subset_iff]
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : Subfield E
HF : Set.range ⇑(algebraMap F E) ⊆ ↑K
HS : S ⊆ ↑K
⊢ Set.range ⇑(algebraMap F E) ∪ S ⊆ ↑K
state_after: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : Subfield E
HF : Set.range ⇑(algebraMap F E) ⊆ ↑K
HS : S ⊆ ↑K
⊢ Set.range ⇑(algebraMap F E) ⊆ ↑K ∧ S ⊆ ↑K

tactic: exact ⟨HF, HS⟩
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : Subfield E
HF : Set.range ⇑(algebraMap F E) ⊆ ↑K
HS : S ⊆ ↑K
⊢ Set.range ⇑(algebraMap F E) ⊆ ↑K ∧ S ⊆ ↑K
state_after: no goals
Theorem: Nat.card_eq_zero
File: Mathlib/SetTheory/Cardinal/Finite.lean

tactic: simp [Nat.card, mk_eq_zero_iff, aleph0_le_mk_iff]
state_before: α : Type u_1
β : Type u_2
⊢ Nat.card α = 0 ↔ IsEmpty α ∨ Infinite α
state_after: no goals
Theorem: MeasureTheory.convolution_zero
File: Mathlib/Analysis/Convolution.lean

tactic: ext
state_before: 𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup E'
inst✝⁹ : NormedAddCommGroup E''
inst✝⁸ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedSpace 𝕜 E'
inst✝⁴ : NormedSpace 𝕜 E''
inst✝³ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝² : MeasurableSpace G
μ ν : Measure G
inst✝¹ : NormedSpace ℝ F
inst✝ : AddGroup G
⊢ f ⋆[L, μ] 0 = 0
state_after: case h
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup E'
inst✝⁹ : NormedAddCommGroup E''
inst✝⁸ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedSpace 𝕜 E'
inst✝⁴ : NormedSpace 𝕜 E''
inst✝³ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝² : MeasurableSpace G
μ ν : Measure G
inst✝¹ : NormedSpace ℝ F
inst✝ : AddGroup G
x✝ : G
⊢ (f ⋆[L, μ] 0) x✝ = 0 x✝

tactic: simp_rw [convolution_def, Pi.zero_apply, (L _).map_zero, integral_zero]
state_before: case h
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup E'
inst✝⁹ : NormedAddCommGroup E''
inst✝⁸ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedSpace 𝕜 E'
inst✝⁴ : NormedSpace 𝕜 E''
inst✝³ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝² : MeasurableSpace G
μ ν : Measure G
inst✝¹ : NormedSpace ℝ F
inst✝ : AddGroup G
x✝ : G
⊢ (f ⋆[L, μ] 0) x✝ = 0 x✝
state_after: no goals
Theorem: Fin.insertNth_comp_succAbove
File: Mathlib/Data/Fin/Tuple/Basic.lean

tactic: unfold comp
state_before: m n : ℕ
α : Fin (n + 1) → Type u
β : Type v
i : Fin (n + 1)
x : β
p : Fin n → β
⊢ ∀ (x_1 : Fin n), (i.insertNth x p ∘ i.succAbove) x_1 = p x_1
state_after: m n : ℕ
α : Fin (n + 1) → Type u
β : Type v
i : Fin (n + 1)
x : β
p : Fin n → β
⊢ ∀ (x_1 : Fin n), i.insertNth x p (i.succAbove x_1) = p x_1

tactic: exact insertNth_apply_succAbove i _ _
state_before: m n : ℕ
α : Fin (n + 1) → Type u
β : Type v
i : Fin (n + 1)
x : β
p : Fin n → β
⊢ ∀ (x_1 : Fin n), i.insertNth x p (i.succAbove x_1) = p x_1
state_after: no goals
Theorem: ArithmeticFunction.sigma_zero_apply
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: simp [sigma_apply]
state_before: R : Type u_1
n : ℕ
⊢ (σ 0) n = n.divisors.card
state_after: no goals
Theorem: hyperoperation_ge_three_eq_one
File: Mathlib/Data/Nat/Hyperoperation.lean

tactic: rw [hyperoperation]
state_before: n m : ℕ
⊢ hyperoperation (n + 3) m 0 = 1
state_after: no goals
Theorem: Set.Infinite.exists_subset_ncard_eq
File: Mathlib/Data/Set/Card.lean

tactic: have := hs.to_subtype
state_before: α : Type u_1
β : Type u_2
s✝ t : Set α
f : α → β
s : Set α
hs : s.Infinite
k : ℕ
⊢ ∃ t ⊆ s, t.Finite ∧ t.ncard = k
state_after: α : Type u_1
β : Type u_2
s✝ t : Set α
f : α → β
s : Set α
hs : s.Infinite
k : ℕ
this : Infinite ↑s
⊢ ∃ t ⊆ s, t.Finite ∧ t.ncard = k

tactic: obtain ⟨t', -, rfl⟩ := @Infinite.exists_subset_card_eq s univ infinite_univ k
state_before: α : Type u_1
β : Type u_2
s✝ t : Set α
f : α → β
s : Set α
hs : s.Infinite
k : ℕ
this : Infinite ↑s
⊢ ∃ t ⊆ s, t.Finite ∧ t.ncard = k
state_after: case intro.intro
α : Type u_1
β : Type u_2
s✝ t : Set α
f : α → β
s : Set α
hs : s.Infinite
this : Infinite ↑s
t' : Finset ↑s
⊢ ∃ t ⊆ s, t.Finite ∧ t.ncard = t'.card

tactic: refine ⟨Subtype.val '' (t' : Set s), by simp, Finite.image _ (by simp), ?_⟩
state_before: case intro.intro
α : Type u_1
β : Type u_2
s✝ t : Set α
f : α → β
s : Set α
hs : s.Infinite
this : Infinite ↑s
t' : Finset ↑s
⊢ ∃ t ⊆ s, t.Finite ∧ t.ncard = t'.card
state_after: case intro.intro
α : Type u_1
β : Type u_2
s✝ t : Set α
f : α → β
s : Set α
hs : s.Infinite
this : Infinite ↑s
t' : Finset ↑s
⊢ (Subtype.val '' ↑t').ncard = t'.card

tactic: rw [ncard_image_of_injective _ Subtype.coe_injective]
state_before: case intro.intro
α : Type u_1
β : Type u_2
s✝ t : Set α
f : α → β
s : Set α
hs : s.Infinite
this : Infinite ↑s
t' : Finset ↑s
⊢ (Subtype.val '' ↑t').ncard = t'.card
state_after: case intro.intro
α : Type u_1
β : Type u_2
s✝ t : Set α
f : α → β
s : Set α
hs : s.Infinite
this : Infinite ↑s
t' : Finset ↑s
⊢ (↑t').ncard = t'.card

tactic: simp
state_before: case intro.intro
α : Type u_1
β : Type u_2
s✝ t : Set α
f : α → β
s : Set α
hs : s.Infinite
this : Infinite ↑s
t' : Finset ↑s
⊢ (↑t').ncard = t'.card
state_after: no goals

tactic: simp
state_before: α : Type u_1
β : Type u_2
s✝ t : Set α
f : α → β
s : Set α
hs : s.Infinite
this : Infinite ↑s
t' : Finset ↑s
⊢ Subtype.val '' ↑t' ⊆ s
state_after: no goals

tactic: simp
state_before: α : Type u_1
β : Type u_2
s✝ t : Set α
f : α → β
s : Set α
hs : s.Infinite
this : Infinite ↑s
t' : Finset ↑s
⊢ (↑t').Finite
state_after: no goals