1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: transGen_of_succ_of_reflexive
File: Mathlib/Order/SuccPred/Relation.lean

tactic: rcases eq_or_ne m n with (rfl | hmn)
state_before: α : Type u_1
inst✝² : LinearOrder α
inst✝¹ : SuccOrder α
inst✝ : IsSuccArchimedean α
r : α → α → Prop
n m : α
hr : Reflexive r
h1 : ∀ i ∈ Ico n m, r i (succ i)
h2 : ∀ i ∈ Ico m n, r (succ i) i
⊢ TransGen r n m
state_after: case inl
α : Type u_1
inst✝² : LinearOrder α
inst✝¹ : SuccOrder α
inst✝ : IsSuccArchimedean α
r : α → α → Prop
m : α
hr : Reflexive r
h1 : ∀ i ∈ Ico m m, r i (succ i)
h2 : ∀ i ∈ Ico m m, r (succ i) i
⊢ TransGen r m m

case inr
α : Type u_1
inst✝² : LinearOrder α
inst✝¹ : SuccOrder α
inst✝ : IsSuccArchimedean α
r : α → α → Prop
n m : α
hr : Reflexive r
h1 : ∀ i ∈ Ico n m, r i (succ i)
h2 : ∀ i ∈ Ico m n, r (succ i) i
hmn : m ≠ n
⊢ TransGen r n m

tactic: exact transGen_of_succ_of_ne r h1 h2 hmn.symm
state_before: case inr
α : Type u_1
inst✝² : LinearOrder α
inst✝¹ : SuccOrder α
inst✝ : IsSuccArchimedean α
r : α → α → Prop
n m : α
hr : Reflexive r
h1 : ∀ i ∈ Ico n m, r i (succ i)
h2 : ∀ i ∈ Ico m n, r (succ i) i
hmn : m ≠ n
⊢ TransGen r n m
state_after: no goals

tactic: exact TransGen.single (hr m)
state_before: case inl
α : Type u_1
inst✝² : LinearOrder α
inst✝¹ : SuccOrder α
inst✝ : IsSuccArchimedean α
r : α → α → Prop
m : α
hr : Reflexive r
h1 : ∀ i ∈ Ico m m, r i (succ i)
h2 : ∀ i ∈ Ico m m, r (succ i) i
⊢ TransGen r m m
state_after: no goals
Theorem: CompleteLattice.lsum_comp_mapRange_toSpanSingleton
File: Mathlib/LinearAlgebra/DFinsupp.lean

tactic: ext
state_before: ι : Type u_1
R : Type u_2
S : Type u_3
M : ι → Type u_4
N : Type u_5
inst✝⁴ : DecidableEq ι
inst✝³ : Semiring R
inst✝² : AddCommMonoid N
inst✝¹ : Module R N
inst✝ : (m : R) → Decidable (m ≠ 0)
p : ι → Submodule R N
v : ι → N
hv : ∀ (i : ι), v i ∈ p i
⊢ ((lsum ℕ) fun i => (p i).subtype) ∘ₗ
      (mapRange.linearMap fun i => LinearMap.toSpanSingleton R ↥(p i) ⟨v i, ⋯⟩) ∘ₗ ↑(finsuppLequivDFinsupp R) =
    Finsupp.total ι N R v
state_after: case h.h
ι : Type u_1
R : Type u_2
S : Type u_3
M : ι → Type u_4
N : Type u_5
inst✝⁴ : DecidableEq ι
inst✝³ : Semiring R
inst✝² : AddCommMonoid N
inst✝¹ : Module R N
inst✝ : (m : R) → Decidable (m ≠ 0)
p : ι → Submodule R N
v : ι → N
hv : ∀ (i : ι), v i ∈ p i
a✝ : ι
⊢ ((((lsum ℕ) fun i => (p i).subtype) ∘ₗ
          (mapRange.linearMap fun i => LinearMap.toSpanSingleton R ↥(p i) ⟨v i, ⋯⟩) ∘ₗ ↑(finsuppLequivDFinsupp R)) ∘ₗ
        Finsupp.lsingle a✝)
      1 =
    (Finsupp.total ι N R v ∘ₗ Finsupp.lsingle a✝) 1

tactic: simp
state_before: case h.h
ι : Type u_1
R : Type u_2
S : Type u_3
M : ι → Type u_4
N : Type u_5
inst✝⁴ : DecidableEq ι
inst✝³ : Semiring R
inst✝² : AddCommMonoid N
inst✝¹ : Module R N
inst✝ : (m : R) → Decidable (m ≠ 0)
p : ι → Submodule R N
v : ι → N
hv : ∀ (i : ι), v i ∈ p i
a✝ : ι
⊢ ((((lsum ℕ) fun i => (p i).subtype) ∘ₗ
          (mapRange.linearMap fun i => LinearMap.toSpanSingleton R ↥(p i) ⟨v i, ⋯⟩) ∘ₗ ↑(finsuppLequivDFinsupp R)) ∘ₗ
        Finsupp.lsingle a✝)
      1 =
    (Finsupp.total ι N R v ∘ₗ Finsupp.lsingle a✝) 1
state_after: no goals
Theorem: Rat.isSquare_natCast_iff
File: Mathlib/Data/Rat/Lemmas.lean

tactic: simp_rw [isSquare_iff, num_natCast, den_natCast, isSquare_one, and_true, Int.isSquare_natCast_iff]
state_before: n : ℕ
⊢ IsSquare ↑n ↔ IsSquare n
state_after: no goals
Theorem: AlgebraicGeometry.IsAffineOpen.fromSpec_app_self
File: Mathlib/AlgebraicGeometry/AffineScheme.lean

tactic: rw [← hU.SpecΓIdentity_hom_app_fromSpec, Iso.inv_hom_id_assoc]
state_before: X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ Scheme.Hom.app hU.fromSpec U = (Scheme.ΓSpecIso Γ(X, U)).inv ≫ (Spec Γ(X, U)).presheaf.map (eqToHom ⋯).op
state_after: no goals
Theorem: MeasureTheory.IsSetSemiring.pairwiseDisjoint_diffFinset
File: Mathlib/MeasureTheory/SetSemiring.lean

tactic: classical
simp only [diffFinset, coe_sdiff, coe_singleton]
exact Set.PairwiseDisjoint.subset (hC.diff_eq_sUnion' s hs t ht).choose_spec.2.1
    diff_subset
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
⊢ (↑(hC.diffFinset hs ht)).PairwiseDisjoint id
state_after: no goals

tactic: simp only [diffFinset, coe_sdiff, coe_singleton]
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
⊢ (↑(hC.diffFinset hs ht)).PairwiseDisjoint id
state_after: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
⊢ (↑⋯.choose \ {∅}).PairwiseDisjoint id

tactic: exact Set.PairwiseDisjoint.subset (hC.diff_eq_sUnion' s hs t ht).choose_spec.2.1
    diff_subset
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
⊢ (↑⋯.choose \ {∅}).PairwiseDisjoint id
state_after: no goals
Theorem: Int.le_natCast_sub
File: Mathlib/Data/Int/Lemmas.lean

tactic: by_cases h : m ≥ n
state_before: m n : ℕ
⊢ ↑m - ↑n ≤ ↑(m - n)
state_after: case pos
m n : ℕ
h : m ≥ n
⊢ ↑m - ↑n ≤ ↑(m - n)

case neg
m n : ℕ
h : ¬m ≥ n
⊢ ↑m - ↑n ≤ ↑(m - n)

tactic: exact le_of_eq (Int.ofNat_sub h).symm
state_before: case pos
m n : ℕ
h : m ≥ n
⊢ ↑m - ↑n ≤ ↑(m - n)
state_after: no goals

tactic: simp [le_of_not_ge h, ofNat_le]
state_before: case neg
m n : ℕ
h : ¬m ≥ n
⊢ ↑m - ↑n ≤ ↑(m - n)
state_after: no goals
Theorem: SubMulAction.neg_mem_iff
File: Mathlib/GroupTheory/GroupAction/SubMulAction.lean

tactic: rw [← neg_neg x]
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
h : -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
h : -x ∈ p
⊢ - -x ∈ p

tactic: exact neg_mem _ h
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
h : -x ∈ p
⊢ - -x ∈ p
state_after: no goals
Theorem: Filter.map_neBot_iff
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [neBot_iff, Ne, map_eq_bot_iff]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
l f✝ f₁ f₂ : Filter α
g g₁ g₂ : Filter β
m : α → β
m' : β → γ
s : Set α
t : Set β
f : α → β
F : Filter α
⊢ (map f F).NeBot ↔ F.NeBot
state_after: no goals
Theorem: Finsupp.erase_add_single
File: Mathlib/Data/Finsupp/Defs.lean

tactic: rw [← update_eq_erase_add_single, update_self]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : AddZeroClass M
a : α
f : α →₀ M
⊢ erase a f + single a (f a) = f
state_after: no goals
Theorem: smul_add_smul_le_smul_add_smul'
File: Mathlib/Algebra/Order/Module/Defs.lean

tactic: rw [add_comm (b₁ • d), add_comm (b₁ • a)]
state_before: α : Type u_1
β : Type u_2
a✝ a₁ a₂ : α
b b₁✝ b₂✝ : β
inst✝³ : OrderedRing α
inst✝² : OrderedAddCommGroup β
inst✝¹ : Module α β
inst✝ : PosSMulMono α β
b₁ b₂ : α
a d : β
hba : b₂ ≤ b₁
hdc : d ≤ a
⊢ b₁ • d + b₂ • a ≤ b₁ • a + b₂ • d
state_after: α : Type u_1
β : Type u_2
a✝ a₁ a₂ : α
b b₁✝ b₂✝ : β
inst✝³ : OrderedRing α
inst✝² : OrderedAddCommGroup β
inst✝¹ : Module α β
inst✝ : PosSMulMono α β
b₁ b₂ : α
a d : β
hba : b₂ ≤ b₁
hdc : d ≤ a
⊢ b₂ • a + b₁ • d ≤ b₂ • d + b₁ • a

tactic: exact smul_add_smul_le_smul_add_smul hba hdc
state_before: α : Type u_1
β : Type u_2
a✝ a₁ a₂ : α
b b₁✝ b₂✝ : β
inst✝³ : OrderedRing α
inst✝² : OrderedAddCommGroup β
inst✝¹ : Module α β
inst✝ : PosSMulMono α β
b₁ b₂ : α
a d : β
hba : b₂ ≤ b₁
hdc : d ≤ a
⊢ b₂ • a + b₁ • d ≤ b₂ • d + b₁ • a
state_after: no goals
Theorem: ProbabilityTheory.lintegral_preCDF_fst
File: Mathlib/Probability/Kernel/Disintegration/CondCdf.lean

tactic: rw [← setLIntegral_univ, setLIntegral_preCDF_fst ρ r MeasurableSet.univ]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
r : ℚ
inst✝ : IsFiniteMeasure ρ
⊢ ∫⁻ (x : α), preCDF ρ r x ∂ρ.fst = (ρ.IicSnd ↑r) univ
state_after: no goals
Theorem: Real.sin_pos_of_pos_of_lt_pi
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: norm_num
state_before: x : ℝ
h0x : 0 < x
hxp : x < π
hx2 : ¬x ≤ 2
⊢ 2 + 2 = 4
state_after: no goals
Theorem: Commute.div_div_div_comm
File: Mathlib/Algebra/Group/Commute/Basic.lean

tactic: simp_rw [div_eq_mul_inv, mul_inv_rev, inv_inv, hbd.symm.eq, hcd.symm.eq,
  hbc.inv_inv.mul_mul_mul_comm]
state_before: G : Type u_1
inst✝ : DivisionMonoid G
a b c d : G
hbc : Commute b c
hbd : Commute b⁻¹ d
hcd : Commute c⁻¹ d
⊢ a / b / (c / d) = a / c / (b / d)
state_after: no goals
Theorem: Succ.rec_iff
File: Mathlib/Order/SuccPred/Basic.lean

tactic: obtain ⟨n, rfl⟩ := h.exists_succ_iterate
state_before: α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : SuccOrder α
inst✝ : IsSuccArchimedean α
a✝ b✝ : α
p : α → Prop
hsucc : ∀ (a : α), p a ↔ p (succ a)
a b : α
h : a ≤ b
⊢ p a ↔ p b
state_after: case intro
α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : SuccOrder α
inst✝ : IsSuccArchimedean α
a✝ b : α
p : α → Prop
hsucc : ∀ (a : α), p a ↔ p (succ a)
a : α
n : ℕ
h : a ≤ succ^[n] a
⊢ p a ↔ p (succ^[n] a)

tactic: exact Iterate.rec (fun b => p a ↔ p b) (fun c hc => hc.trans (hsucc _)) Iff.rfl n
state_before: case intro
α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : SuccOrder α
inst✝ : IsSuccArchimedean α
a✝ b : α
p : α → Prop
hsucc : ∀ (a : α), p a ↔ p (succ a)
a : α
n : ℕ
h : a ≤ succ^[n] a
⊢ p a ↔ p (succ^[n] a)
state_after: no goals
Theorem: ModelWithCorners.isInteriorPoint_or_isBoundaryPoint
File: Mathlib/Geometry/Manifold/InteriorBoundary.lean

tactic: rw [IsInteriorPoint, or_iff_not_imp_left, I.isBoundaryPoint_iff, ← closure_diff_interior,
  I.isClosed_range.closure_eq, mem_diff]
state_before: 𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
H : Type u_3
inst✝² : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
x : M
⊢ I.IsInteriorPoint x ∨ I.IsBoundaryPoint x
state_after: 𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
H : Type u_3
inst✝² : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
x : M
⊢ ↑(extChartAt I x) x ∉ interior (range ↑I) → ↑(extChartAt I x) x ∈ range ↑I ∧ ↑(extChartAt I x) x ∉ interior (range ↑I)

tactic: exact fun h => ⟨mem_range_self _, h⟩
state_before: 𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
H : Type u_3
inst✝² : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
x : M
⊢ ↑(extChartAt I x) x ∉ interior (range ↑I) → ↑(extChartAt I x) x ∈ range ↑I ∧ ↑(extChartAt I x) x ∉ interior (range ↑I)
state_after: no goals
Theorem: toIcoMod_sub_zsmul'
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simp_rw [sub_eq_add_neg, ← neg_smul, toIcoMod_add_zsmul']
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
m : ℤ
⊢ toIcoMod hp (a - m • p) b = toIcoMod hp a b - m • p
state_after: no goals
Theorem: latticeClosure_empty
File: Mathlib/Order/SupClosed.lean

tactic: simp
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝ : Lattice α
s t : Set α
⊢ latticeClosure ∅ = ∅
state_after: no goals
Theorem: List.pairwise_singleton
File: .lake/packages/batteries/Batteries/Data/List/Pairwise.lean

tactic: simp
state_before: α : Type u_1
R : α → α → Prop
a : α
⊢ Pairwise R [a]
state_after: no goals
Theorem: npow_mul_assoc
File: Mathlib/Algebra/Group/NatPowAssoc.lean

tactic: simp only [← npow_add, add_assoc]
state_before: M : Type u_1
inst✝² : MulOneClass M
inst✝¹ : Pow M ℕ
inst✝ : NatPowAssoc M
k m n : ℕ
x : M
⊢ x ^ k * x ^ m * x ^ n = x ^ k * (x ^ m * x ^ n)
state_after: no goals
Theorem: FunctionField.inftyValuation.polynomial
File: Mathlib/NumberTheory/FunctionField.lean

tactic: have hp' : algebraMap Fq[X] (RatFunc Fq) p ≠ 0 := by
  rw [Ne, RatFunc.algebraMap_eq_zero_iff]; exact hp
state_before: Fq F : Type
inst✝² : Field Fq
inst✝¹ : Field F
inst✝ : DecidableEq (RatFunc Fq)
p : Fq[X]
hp : p ≠ 0
⊢ inftyValuationDef Fq ((algebraMap Fq[X] (RatFunc Fq)) p) = ↑(Multiplicative.ofAdd ↑p.natDegree)
state_after: Fq F : Type
inst✝² : Field Fq
inst✝¹ : Field F
inst✝ : DecidableEq (RatFunc Fq)
p : Fq[X]
hp : p ≠ 0
hp' : (algebraMap Fq[X] (RatFunc Fq)) p ≠ 0
⊢ inftyValuationDef Fq ((algebraMap Fq[X] (RatFunc Fq)) p) = ↑(Multiplicative.ofAdd ↑p.natDegree)

tactic: rw [inftyValuationDef, if_neg hp', RatFunc.intDegree_polynomial]
state_before: Fq F : Type
inst✝² : Field Fq
inst✝¹ : Field F
inst✝ : DecidableEq (RatFunc Fq)
p : Fq[X]
hp : p ≠ 0
hp' : (algebraMap Fq[X] (RatFunc Fq)) p ≠ 0
⊢ inftyValuationDef Fq ((algebraMap Fq[X] (RatFunc Fq)) p) = ↑(Multiplicative.ofAdd ↑p.natDegree)
state_after: no goals

tactic: rw [Ne, RatFunc.algebraMap_eq_zero_iff]
state_before: Fq F : Type
inst✝² : Field Fq
inst✝¹ : Field F
inst✝ : DecidableEq (RatFunc Fq)
p : Fq[X]
hp : p ≠ 0
⊢ (algebraMap Fq[X] (RatFunc Fq)) p ≠ 0
state_after: Fq F : Type
inst✝² : Field Fq
inst✝¹ : Field F
inst✝ : DecidableEq (RatFunc Fq)
p : Fq[X]
hp : p ≠ 0
⊢ ¬p = 0

tactic: exact hp
state_before: Fq F : Type
inst✝² : Field Fq
inst✝¹ : Field F
inst✝ : DecidableEq (RatFunc Fq)
p : Fq[X]
hp : p ≠ 0
⊢ ¬p = 0
state_after: no goals
Theorem: Matroid.restrictSubtype_ground
File: Mathlib/Data/Matroid/Map.lean

tactic: simp [restrictSubtype]
state_before: α : Type u_1
β : Type u_2
f : α → β
E✝ I✝ s : Set α
M✝ : Matroid α
N : Matroid β
E X I : Set α
M : Matroid α
⊢ (M.restrictSubtype X).E = univ
state_after: no goals
Theorem: OnePoint.inseparable_iff
File: Mathlib/Topology/Compactification/OnePoint.lean

tactic: induction x using OnePoint.rec <;> induction y using OnePoint.rec <;>
  simp [not_inseparable_infty_coe, not_inseparable_coe_infty, coe_eq_coe, Inseparable.refl]
state_before: X : Type u_1
inst✝ : TopologicalSpace X
s : Set (OnePoint X)
t : Set X
x y : OnePoint X
⊢ Inseparable x y ↔ x = ∞ ∧ y = ∞ ∨ ∃ x', x = ↑x' ∧ ∃ y', y = ↑y' ∧ Inseparable x' y'
state_after: no goals
Theorem: Multiset.filter_cons_of_neg
File: Mathlib/Data/Multiset/Basic.lean

tactic: simpa using h
state_before: α : Type u_1
β : Type v
γ : Type u_2
p : α → Prop
inst✝ : DecidablePred p
a : α
s : Multiset α
l : List α
h : ¬p a
⊢ ¬decide (p a) = true
state_after: no goals
Theorem: Fin.succ_zero_eq_one'
File: Mathlib/Data/Fin/Basic.lean

tactic: cases n
state_before: n m : ℕ
inst✝ : NeZero n
⊢ succ 0 = 1
state_after: case zero
m : ℕ
inst✝ : NeZero 0
⊢ succ 0 = 1

case succ
m n✝ : ℕ
inst✝ : NeZero (n✝ + 1)
⊢ succ 0 = 1

tactic: exact (NeZero.ne 0 rfl).elim
state_before: case zero
m : ℕ
inst✝ : NeZero 0
⊢ succ 0 = 1
state_after: no goals

tactic: rfl
state_before: case succ
m n✝ : ℕ
inst✝ : NeZero (n✝ + 1)
⊢ succ 0 = 1
state_after: no goals
Theorem: Basis.constr_comp
File: Mathlib/LinearAlgebra/Basis.lean

tactic: simp only [Basis.constr_basis, LinearMap.comp_apply, Function.comp]
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
inst✝⁴ : AddCommMonoid M'
inst✝³ : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
S : Type u_10
inst✝² : Semiring S
inst✝¹ : Module S M'
inst✝ : SMulCommClass R S M'
f : M' →ₗ[R] M'
v : ι → M'
i : ι
⊢ ((b.constr S) (⇑f ∘ v)) (b i) = (f ∘ₗ (b.constr S) v) (b i)
state_after: no goals
Theorem: Finsupp.supported_iInter
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: simp [mem_supported, subset_iInter_iff]
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
ι : Type u_7
s : ι → Set α
x : α →₀ M
⊢ x ∈ supported M R (⋂ i, s i) ↔ x ∈ ⨅ i, supported M R (s i)
state_after: no goals
Theorem: DFinsupp.support_mk'_subset
File: Mathlib/Data/DFinsupp/Basic.lean

tactic: simpa using (Finset.mem_filter.1 H).1
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)
f : (i : ι) → β i
s : Multiset ι
h : ∀ (i : ι), i ∈ s ∨ f i = 0
i : ι
H : i ∈ { toFun := f, support' := Trunc.mk ⟨s, h⟩ }.support
⊢ i ∈ s.toFinset.val.toFinset
state_after: no goals
Theorem: Submodule.prodEquivOfIsCompl_symm_apply_snd_eq_zero
File: Mathlib/LinearAlgebra/Projection.lean

tactic: conv_rhs => rw [← (prodEquivOfIsCompl p q h).apply_symm_apply x]
state_before: R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type u_3
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type u_4
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type u_5
inst✝² : Semiring S
M : Type u_6
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
h : IsCompl p q
x : E
⊢ ((p.prodEquivOfIsCompl q h).symm x).2 = 0 ↔ x ∈ p
state_after: R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type u_3
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type u_4
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type u_5
inst✝² : Semiring S
M : Type u_6
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
h : IsCompl p q
x : E
⊢ ((p.prodEquivOfIsCompl q h).symm x).2 = 0 ↔ (p.prodEquivOfIsCompl q h) ((p.prodEquivOfIsCompl q h).symm x) ∈ p

tactic: rw [coe_prodEquivOfIsCompl', Submodule.add_mem_iff_right _ (Submodule.coe_mem _),
  mem_left_iff_eq_zero_of_disjoint h.disjoint]
state_before: R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type u_3
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type u_4
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type u_5
inst✝² : Semiring S
M : Type u_6
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
h : IsCompl p q
x : E
⊢ ((p.prodEquivOfIsCompl q h).symm x).2 = 0 ↔ (p.prodEquivOfIsCompl q h) ((p.prodEquivOfIsCompl q h).symm x) ∈ p
state_after: no goals
Theorem: List.get_reverse_aux₁
File: Mathlib/Data/List/Basic.lean

tactic: rw [show i + length (a :: l) = i + 1 + length l from Nat.add_right_comm i (length l) 1]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l r : List α
i : ℕ
⊢ ∀ (h1 : i + (a :: l).length < ((a :: l).reverseAux r).length) (h2 : i < r.length),
    ((a :: l).reverseAux r).get ⟨i + (a :: l).length, h1⟩ = r.get ⟨i, h2⟩
state_after: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l r : List α
i : ℕ
⊢ ∀ (h1 : i + 1 + l.length < ((a :: l).reverseAux r).length) (h2 : i < r.length),
    ((a :: l).reverseAux r).get ⟨i + 1 + l.length, h1⟩ = r.get ⟨i, h2⟩

tactic: exact fun h1 h2 => get_reverse_aux₁ l (a :: r) (i + 1) h1 (succ_lt_succ h2)
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l r : List α
i : ℕ
⊢ ∀ (h1 : i + 1 + l.length < ((a :: l).reverseAux r).length) (h2 : i < r.length),
    ((a :: l).reverseAux r).get ⟨i + 1 + l.length, h1⟩ = r.get ⟨i, h2⟩
state_after: no goals
Theorem: Compactum.str_hom_commute
File: Mathlib/Topology/Category/Compactum.lean

tactic: change (X.a ≫ f.f) _ = _
state_before: X Y : Compactum
f : X ⟶ Y
xs : Ultrafilter X.A
⊢ f.f (X.str xs) = Y.str (Ultrafilter.map f.f xs)
state_after: X Y : Compactum
f : X ⟶ Y
xs : Ultrafilter X.A
⊢ (X.a ≫ f.f) xs = Y.str (Ultrafilter.map f.f xs)

tactic: rw [← f.h]
state_before: X Y : Compactum
f : X ⟶ Y
xs : Ultrafilter X.A
⊢ (X.a ≫ f.f) xs = Y.str (Ultrafilter.map f.f xs)
state_after: X Y : Compactum
f : X ⟶ Y
xs : Ultrafilter X.A
⊢ (β.map f.f ≫ Y.a) xs = Y.str (Ultrafilter.map f.f xs)

tactic: rfl
state_before: X Y : Compactum
f : X ⟶ Y
xs : Ultrafilter X.A
⊢ (β.map f.f ≫ Y.a) xs = Y.str (Ultrafilter.map f.f xs)
state_after: no goals
Theorem: oneOneReducible_refl
File: Mathlib/Computability/Reduce.lean

tactic: simp
state_before: α : Type u_1
inst✝ : Primcodable α
p : α → Prop
⊢ ∀ (a : α), p a ↔ p (id a)
state_after: no goals
Theorem: intervalIntegral.integral_of_le
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simp [intervalIntegral, h]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b : ℝ
f g : ℝ → E
μ : Measure ℝ
h : a ≤ b
⊢ ∫ (x : ℝ) in a..b, f x ∂μ = ∫ (x : ℝ) in Ioc a b, f x ∂μ
state_after: no goals
Theorem: List.Nodup.filter
File: Mathlib/Data/List/Nodup.lean

tactic: simpa using Pairwise.filter (fun a ↦ p a)
state_before: α : Type u
β : Type v
l✝ l₁ l₂ : List α
r : α → α → Prop
a b : α
p : α → Bool
l : List α
⊢ l.Nodup → (List.filter p l).Nodup
state_after: no goals
Theorem: integrableOn_Iic_iff_integrableOn_Iio
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: rw [measure_singleton]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace α
inst✝³ : NormedAddCommGroup E
inst✝² : PartialOrder α
inst✝¹ : MeasurableSingletonClass α
f : α → E
μ : Measure α
a b : α
inst✝ : NoAtoms μ
⊢ μ {b} ≠ ⊤
state_after: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace α
inst✝³ : NormedAddCommGroup E
inst✝² : PartialOrder α
inst✝¹ : MeasurableSingletonClass α
f : α → E
μ : Measure α
a b : α
inst✝ : NoAtoms μ
⊢ 0 ≠ ⊤

tactic: exact ENNReal.zero_ne_top
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace α
inst✝³ : NormedAddCommGroup E
inst✝² : PartialOrder α
inst✝¹ : MeasurableSingletonClass α
f : α → E
μ : Measure α
a b : α
inst✝ : NoAtoms μ
⊢ 0 ≠ ⊤
state_after: no goals
Theorem: ENNReal.coe_inv
File: Mathlib/Data/ENNReal/Inv.lean

tactic: rw [← coe_mul, mul_inv_cancel hr, coe_one]
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
hr : r ≠ 0
⊢ 1 ≤ ↑r * ↑r⁻¹
state_after: no goals
Theorem: CategoryTheory.InjectiveResolution.isoRightDerivedObj_inv_naturality
File: Mathlib/CategoryTheory/Abelian/RightDerived.lean

tactic: rw [← cancel_mono (J.isoRightDerivedObj F n).hom, assoc, assoc,
  InjectiveResolution.isoRightDerivedObj_hom_naturality f I J φ comm F n,
  Iso.inv_hom_id_assoc, Iso.inv_hom_id, comp_id]
state_before: C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u_1
inst✝⁴ : Category.{u_2, u_1} D
inst✝³ : Abelian C
inst✝² : HasInjectiveResolutions C
inst✝¹ : Abelian D
X Y : C
f : X ⟶ Y
I : InjectiveResolution X
J : InjectiveResolution Y
φ : I.cocomplex ⟶ J.cocomplex
comm : I.ι.f 0 ≫ φ.f 0 = f ≫ J.ι.f 0
F : C ⥤ D
inst✝ : F.Additive
n : ℕ
⊢ (I.isoRightDerivedObj F n).inv ≫ (F.rightDerived n).map f =
    (F.mapHomologicalComplex (ComplexShape.up ℕ) ⋙ HomologicalComplex.homologyFunctor D (ComplexShape.up ℕ) n).map φ ≫
      (J.isoRightDerivedObj F n).inv
state_after: no goals
Theorem: HasLineDerivAt.smul
File: Mathlib/Analysis/Calculus/LineDeriv/Basic.lean

tactic: simp only [← hasLineDerivWithinAt_univ] at h ⊢
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → F
s : Set E
x v : E
f' : F
h : HasLineDerivAt 𝕜 f f' x v
c : 𝕜
⊢ HasLineDerivAt 𝕜 f (c • f') x (c • v)
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → F
s : Set E
x v : E
f' : F
c : 𝕜
h : HasLineDerivWithinAt 𝕜 f f' univ x v
⊢ HasLineDerivWithinAt 𝕜 f (c • f') univ x (c • v)

tactic: exact HasLineDerivWithinAt.smul h c
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → F
s : Set E
x v : E
f' : F
c : 𝕜
h : HasLineDerivWithinAt 𝕜 f f' univ x v
⊢ HasLineDerivWithinAt 𝕜 f (c • f') univ x (c • v)
state_after: no goals