tasksource/leandojo huggingface dataset:
Theorem: LinearMap.pi_ext'
File: Mathlib/LinearAlgebra/Pi.lean

tactic: refine' pi_ext fun i x => _
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
ι' : Type x'
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M₂
inst✝⁸ : Module R M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : Module R M₃
φ : ι → Type i
inst✝⁵ : (i : ι) → AddCommMonoid (φ i)
inst✝⁴ : (i : ι) → Module R (φ i)
inst✝³ : Finite ι
inst✝² : DecidableEq ι
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f g : ((i : ι) → φ i) →ₗ[R] M
h : ∀ (i : ι), comp f (single i) = comp g (single i)
⊢ f = g

tactic: convert LinearMap.congr_fun (h i) x
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
ι' : Type x'
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M₂
inst✝⁸ : Module R M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : Module R M₃
φ : ι → Type i
inst✝⁵ : (i : ι) → AddCommMonoid (φ i)
inst✝⁴ : (i : ι) → Module R (φ i)
inst✝³ : Finite ι
inst✝² : DecidableEq ι
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f g : ((i : ι) → φ i) →ₗ[R] M
h : ∀ (i : ι), comp f (single i) = comp g (single i)
i : ι
x : φ i
⊢ ↑f (Pi.single i x) = ↑g (Pi.single i x)
Theorem: Finset.sum_range_succ_mul_sum_range_succ
File: Mathlib/Algebra/BigOperators/Ring.lean

tactic: simp only [add_mul, mul_add, add_assoc, sum_range_succ]
state_before: α : Type u
β : Type v
γ : Type w
s s₁ s₂ : Finset α
a : α
b : β
f✝ g✝ : α → β
inst✝ : NonUnitalNonAssocSemiring β
n k : ℕ
f g : ℕ → β
⊢ (∑ i in range (n + 1), f i) * ∑ i in range (k + 1), g i =
    (∑ i in range n, f i) * ∑ i in range k, g i + f n * ∑ i in range k, g i + (∑ i in range n, f i) * g k + f n * g k
Theorem: Polynomial.iterate_derivative_zero
File: Mathlib/Data/Polynomial/Derivative.lean

tactic: induction' k with k ih
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Semiring R
k : ℕ
⊢ (↑derivative^[k]) 0 = 0

tactic: simp
state_before: case zero
R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Semiring R
⊢ (↑derivative^[Nat.zero]) 0 = 0

tactic: simp [ih]
state_before: case succ
R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Semiring R
k : ℕ
ih : (↑derivative^[k]) 0 = 0
⊢ (↑derivative^[Nat.succ k]) 0 = 0
Theorem: Subspace.dualRestrict_leftInverse
File: Mathlib/LinearAlgebra/Dual.lean

tactic: rw [dualRestrict_comp_dualLift]
state_before: K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W✝ W : Subspace K V
x : Module.Dual K { x // x ∈ W }
⊢ ↑(comp (dualRestrict W) (dualLift W)) x = x

tactic: rfl
state_before: K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W✝ W : Subspace K V
x : Module.Dual K { x // x ∈ W }
⊢ ↑1 x = x
Theorem: FractionalIdeal.le_div_iff_mul_le
File: Mathlib/RingTheory/FractionalIdeal.lean

tactic: rw [div_nonzero hJ']
state_before: R : Type ?u.1213100
inst✝⁶ : CommRing R
S : Submonoid R
P : Type ?u.1213307
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_1
inst✝³ : CommRing R₁
K : Type u_2
inst✝² : Field K
inst✝¹ : Algebra R₁ K
frac : IsFractionRing R₁ K
inst✝ : IsDomain R₁
I✝ J✝ I J J' : FractionalIdeal R₁⁰ K
hJ' : J' ≠ 0
⊢ I ≤ J / J' ↔ I * J' ≤ J

tactic: rw [← coe_le_coe (I := I * J') (J := J), coe_mul]
state_before: R : Type ?u.1213100
inst✝⁶ : CommRing R
S : Submonoid R
P : Type ?u.1213307
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_1
inst✝³ : CommRing R₁
K : Type u_2
inst✝² : Field K
inst✝¹ : Algebra R₁ K
frac : IsFractionRing R₁ K
inst✝ : IsDomain R₁
I✝ J✝ I J J' : FractionalIdeal R₁⁰ K
hJ' : J' ≠ 0
⊢ I ≤ { val := ↑J / ↑J', property := (_ : IsFractional R₁⁰ (↑J / ↑J')) } ↔ I * J' ≤ J

tactic: exact Submodule.le_div_iff_mul_le
state_before: R : Type ?u.1213100
inst✝⁶ : CommRing R
S : Submonoid R
P : Type ?u.1213307
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_1
inst✝³ : CommRing R₁
K : Type u_2
inst✝² : Field K
inst✝¹ : Algebra R₁ K
frac : IsFractionRing R₁ K
inst✝ : IsDomain R₁
I✝ J✝ I J J' : FractionalIdeal R₁⁰ K
hJ' : J' ≠ 0
⊢ I ≤ { val := ↑J / ↑J', property := (_ : IsFractional R₁⁰ (↑J / ↑J')) } ↔ ↑I * ↑J' ≤ ↑J
Theorem: Real.lt_cauchy
File: Mathlib/Data/Real/Basic.lean

tactic: rw [lt_def]
state_before: x y : ℝ
f g : CauSeq ℚ abs
⊢ Real.lt { cauchy := Quotient.mk equiv f } { cauchy := Quotient.mk equiv g } ↔ f < g

tactic: rfl
state_before: x y : ℝ
f g : CauSeq ℚ abs
⊢ (match { cauchy := Quotient.mk equiv f }, { cauchy := Quotient.mk equiv g } with
    | { cauchy := x }, { cauchy := y } => Quotient.liftOn₂ x y (fun x x_1 => x < x_1) Real.definition.proof_1✝) ↔
    f < g
Theorem: GeneralizedContinuedFraction.of_terminatedAt_n_iff_succ_nth_intFractPair_stream_eq_none
File: Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean

tactic: rw [of_terminatedAt_iff_intFractPair_seq1_terminatedAt, Stream'.Seq.TerminatedAt,
  IntFractPair.get?_seq1_eq_succ_get?_stream]
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
⊢ TerminatedAt (of v) n ↔ IntFractPair.stream v (n + 1) = none
Theorem: Irrational.div_int
File: Mathlib/Data/Real/Irrational.lean

tactic: rw [← cast_coe_int]
state_before: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
hm : m ≠ 0
⊢ Irrational (x / ↑m)

tactic: refine' h.div_rat _
state_before: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
hm : m ≠ 0
⊢ Irrational (x / ↑↑m)

tactic: rwa [Int.cast_ne_zero]
state_before: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
hm : m ≠ 0
⊢ ↑m ≠ 0
Theorem: Matrix.kroneckerMap_diagonal_diagonal
File: Mathlib/Data/Matrix/Kronecker.lean

tactic: ext (⟨i₁, i₂⟩⟨j₁, j₂⟩)
state_before: R : Type ?u.5462
α : Type u_1
α' : Type ?u.5468
β : Type u_2
β' : Type ?u.5474
γ : Type u_3
γ' : Type ?u.5480
l : Type ?u.5483
m : Type u_4
n : Type u_5
p : Type ?u.5492
q : Type ?u.5495
r : Type ?u.5498
l' : Type ?u.5501
m' : Type ?u.5504
n' : Type ?u.5507
p' : Type ?u.5510
inst✝⁴ : Zero α
inst✝³ : Zero β
inst✝² : Zero γ
inst✝¹ : DecidableEq m
inst✝ : DecidableEq n
f : α → β → γ
hf₁ : ∀ (b : β), f 0 b = 0
hf₂ : ∀ (a : α), f a 0 = 0
a : m → α
b : n → β
⊢ kroneckerMap f (diagonal a) (diagonal b) = diagonal fun mn => f (a mn.fst) (b mn.snd)

tactic: simp [diagonal, apply_ite f, ite_and, ite_apply, apply_ite (f (a i₁)), hf₁, hf₂]
state_before: case a.mk.h.mk
R : Type ?u.5462
α : Type u_1
α' : Type ?u.5468
β : Type u_2
β' : Type ?u.5474
γ : Type u_3
γ' : Type ?u.5480
l : Type ?u.5483
m : Type u_4
n : Type u_5
p : Type ?u.5492
q : Type ?u.5495
r : Type ?u.5498
l' : Type ?u.5501
m' : Type ?u.5504
n' : Type ?u.5507
p' : Type ?u.5510
inst✝⁴ : Zero α
inst✝³ : Zero β
inst✝² : Zero γ
inst✝¹ : DecidableEq m
inst✝ : DecidableEq n
f : α → β → γ
hf₁ : ∀ (b : β), f 0 b = 0
hf₂ : ∀ (a : α), f a 0 = 0
a : m → α
b : n → β
i₁ : m
i₂ : n
j₁ : m
j₂ : n
⊢ kroneckerMap f (diagonal a) (diagonal b) (i₁, i₂) (j₁, j₂) =
    diagonal (fun mn => f (a mn.fst) (b mn.snd)) (i₁, i₂) (j₁, j₂)
Theorem: PerfectClosure.eq_iff
File: Mathlib/FieldTheory/PerfectClosure.lean

tactic: simpa only [add_comm, iterate_add] using H
state_before: K : Type u
inst✝³ : CommRing K
inst✝² : IsDomain K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
x y : ℕ × K
x✝ : ∃ z, (↑(frobenius K p)^[y.fst + z]) x.snd = (↑(frobenius K p)^[x.fst + z]) y.snd
z : ℕ
H : (↑(frobenius K p)^[y.fst + z]) x.snd = (↑(frobenius K p)^[x.fst + z]) y.snd
⊢ (↑(frobenius K p)^[z]) ((↑(frobenius K p)^[y.fst]) x.snd) = (↑(frobenius K p)^[z]) ((↑(frobenius K p)^[x.fst]) y.snd)
Theorem: Polynomial.cyclotomic_zero
File: Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean

tactic: simp only [cyclotomic, dif_pos]
state_before: R : Type u_1
inst✝ : Ring R
⊢ cyclotomic 0 R = 1
Theorem: AffineIsometry.toAffineMap_injective
File: Mathlib/Analysis/NormedSpace/AffineIsometry.lean

tactic: rintro ⟨f, _⟩ ⟨g, _⟩ rfl
state_before: 𝕜 : Type u_5
V : Type u_1
V₁ : Type ?u.25742
V₂ : Type u_2
V₃ : Type ?u.25748
V₄ : Type ?u.25751
P₁ : Type ?u.25754
P : Type u_3
P₂ : Type u_4
P₃ : Type ?u.25763
P₄ : Type ?u.25766
inst✝²⁰ : NormedField 𝕜
inst✝¹⁹ : SeminormedAddCommGroup V
inst✝¹⁸ : SeminormedAddCommGroup V₁
inst✝¹⁷ : SeminormedAddCommGroup V₂
inst✝¹⁶ : SeminormedAddCommGroup V₃
inst✝¹⁵ : SeminormedAddCommGroup V₄
inst✝¹⁴ : NormedSpace 𝕜 V
inst✝¹³ : NormedSpace 𝕜 V₁
inst✝¹² : NormedSpace 𝕜 V₂
inst✝¹¹ : NormedSpace 𝕜 V₃
inst✝¹⁰ : NormedSpace 𝕜 V₄
inst✝⁹ : PseudoMetricSpace P
inst✝⁸ : MetricSpace P₁
inst✝⁷ : PseudoMetricSpace P₂
inst✝⁶ : PseudoMetricSpace P₃
inst✝⁵ : PseudoMetricSpace P₄
inst✝⁴ : NormedAddTorsor V P
inst✝³ : NormedAddTorsor V₁ P₁
inst✝² : NormedAddTorsor V₂ P₂
inst✝¹ : NormedAddTorsor V₃ P₃
inst✝ : NormedAddTorsor V₄ P₄
f : P →ᵃⁱ[𝕜] P₂
⊢ Injective toAffineMap

tactic: rfl
state_before: case mk.mk
𝕜 : Type u_5
V : Type u_1
V₁ : Type ?u.25742
V₂ : Type u_2
V₃ : Type ?u.25748
V₄ : Type ?u.25751
P₁ : Type ?u.25754
P : Type u_3
P₂ : Type u_4
P₃ : Type ?u.25763
P₄ : Type ?u.25766
inst✝²⁰ : NormedField 𝕜
inst✝¹⁹ : SeminormedAddCommGroup V
inst✝¹⁸ : SeminormedAddCommGroup V₁
inst✝¹⁷ : SeminormedAddCommGroup V₂
inst✝¹⁶ : SeminormedAddCommGroup V₃
inst✝¹⁵ : SeminormedAddCommGroup V₄
inst✝¹⁴ : NormedSpace 𝕜 V
inst✝¹³ : NormedSpace 𝕜 V₁
inst✝¹² : NormedSpace 𝕜 V₂
inst✝¹¹ : NormedSpace 𝕜 V₃
inst✝¹⁰ : NormedSpace 𝕜 V₄
inst✝⁹ : PseudoMetricSpace P
inst✝⁸ : MetricSpace P₁
inst✝⁷ : PseudoMetricSpace P₂
inst✝⁶ : PseudoMetricSpace P₃
inst✝⁵ : PseudoMetricSpace P₄
inst✝⁴ : NormedAddTorsor V P
inst✝³ : NormedAddTorsor V₁ P₁
inst✝² : NormedAddTorsor V₂ P₂
inst✝¹ : NormedAddTorsor V₃ P₃
inst✝ : NormedAddTorsor V₄ P₄
f✝ : P →ᵃⁱ[𝕜] P₂
f : P →ᵃ[𝕜] P₂
norm_map✝¹ : ∀ (x : V), ‖↑f.linear x‖ = ‖x‖
norm_map✝ : ∀ (x : V), ‖↑{ toAffineMap := f, norm_map := norm_map✝¹ }.toAffineMap.linear x‖ = ‖x‖
⊢ { toAffineMap := f, norm_map := norm_map✝¹ } =
    { toAffineMap := { toAffineMap := f, norm_map := norm_map✝¹ }.toAffineMap, norm_map := norm_map✝ }
Theorem: IsPGroup.bot_lt_center
File: Mathlib/GroupTheory/PGroup.lean

tactic: haveI := center_nontrivial hG
state_before: p : ℕ
G : Type u_1
inst✝⁴ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type ?u.345348
inst✝³ : MulAction G α
inst✝² : Fintype α
inst✝¹ : Nontrivial G
inst✝ : Finite G
⊢ ⊥ < Subgroup.center G

tactic: cases nonempty_fintype G
state_before: p : ℕ
G : Type u_1
inst✝⁴ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type ?u.345348
inst✝³ : MulAction G α
inst✝² : Fintype α
inst✝¹ : Nontrivial G
inst✝ : Finite G
this : Nontrivial { x // x ∈ Subgroup.center G }
⊢ ⊥ < Subgroup.center G

tactic: classical exact
    bot_lt_iff_ne_bot.mpr ((Subgroup.center G).one_lt_card_iff_ne_bot.mp Fintype.one_lt_card)
state_before: case intro
p : ℕ
G : Type u_1
inst✝⁴ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type ?u.345348
inst✝³ : MulAction G α
inst✝² : Fintype α
inst✝¹ : Nontrivial G
inst✝ : Finite G
this : Nontrivial { x // x ∈ Subgroup.center G }
val✝ : Fintype G
⊢ ⊥ < Subgroup.center G

tactic: exact
bot_lt_iff_ne_bot.mpr ((Subgroup.center G).one_lt_card_iff_ne_bot.mp Fintype.one_lt_card)
state_before: case intro
p : ℕ
G : Type u_1
inst✝⁴ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type ?u.345348
inst✝³ : MulAction G α
inst✝² : Fintype α
inst✝¹ : Nontrivial G
inst✝ : Finite G
this : Nontrivial { x // x ∈ Subgroup.center G }
val✝ : Fintype G
⊢ ⊥ < Subgroup.center G
Theorem: IntermediateField.toSubalgebra_eq_iff
File: Mathlib/FieldTheory/IntermediateField.lean

tactic: rw [SetLike.ext_iff, SetLike.ext'_iff, Set.ext_iff]
state_before: K : Type u_2
L : Type u_1
L' : Type ?u.277529
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field L'
inst✝¹ : Algebra K L
inst✝ : Algebra K L'
S F E : IntermediateField K L
⊢ F.toSubalgebra = E.toSubalgebra ↔ F = E

tactic: rfl
state_before: K : Type u_2
L : Type u_1
L' : Type ?u.277529
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field L'
inst✝¹ : Algebra K L
inst✝ : Algebra K L'
S F E : IntermediateField K L
⊢ (∀ (x : L), x ∈ F.toSubalgebra ↔ x ∈ E.toSubalgebra) ↔ ∀ (x : L), x ∈ ↑F ↔ x ∈ ↑E
Theorem: CategoryTheory.Functor.hcongr_hom
File: Mathlib/CategoryTheory/EqToHom.lean

tactic: rw [h]
state_before: C : Type u₁
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
E : Type u₃
inst✝ : Category E
F✝ G✝ : C ⥤ D
X✝ Y✝ Z : C
f✝ : X✝ ⟶ Y✝
g : Y✝ ⟶ Z
F G : C ⥤ D
h : F = G
X Y : C
f : X ⟶ Y
⊢ HEq (F.map f) (G.map f)
Theorem: conj_zpow
File: Mathlib/Algebra/Group/Conj.lean

tactic: induction' i
state_before: α : Type u
β : Type v
inst✝ : Group α
i : ℤ
a b : α
⊢ (a * b * a⁻¹) ^ i = a * b ^ i * a⁻¹

tactic: change (a * b * a⁻¹) ^ (_ : ℤ) = a * b ^ (_ : ℤ) * a⁻¹
state_before: case ofNat
α : Type u
β : Type v
inst✝ : Group α
a b : α
a✝ : ℕ
⊢ (a * b * a⁻¹) ^ Int.ofNat a✝ = a * b ^ Int.ofNat a✝ * a⁻¹

tactic: simp [zpow_ofNat]
state_before: case ofNat
α : Type u
β : Type v
inst✝ : Group α
a b : α
a✝ : ℕ
⊢ (a * b * a⁻¹) ^ Int.ofNat a✝ = a * b ^ Int.ofNat a✝ * a⁻¹

tactic: simp [zpow_negSucc, conj_pow]
state_before: case negSucc
α : Type u
β : Type v
inst✝ : Group α
a b : α
a✝ : ℕ
⊢ (a * b * a⁻¹) ^ Int.negSucc a✝ = a * b ^ Int.negSucc a✝ * a⁻¹

tactic: rw [mul_assoc]
state_before: case negSucc
α : Type u
β : Type v
inst✝ : Group α
a b : α
a✝ : ℕ
⊢ a * ((b ^ (a✝ + 1))⁻¹ * a⁻¹) = a * (b ^ (a✝ + 1))⁻¹ * a⁻¹
Theorem: Set.mulIndicator_const_preimage_eq_union
File: Mathlib/Algebra/IndicatorFunction.lean

tactic: rw [mulIndicator_preimage, preimage_one, preimage_const]
state_before: α : Type u_1
β : Type ?u.26992
ι : Type ?u.26995
M : Type u_2
N : Type ?u.27001
inst✝³ : One M
inst✝² : One N
s✝ t : Set α
f g : α → M
a✝ : α
U : Set α
s : Set M
a : M
inst✝¹ : Decidable (a ∈ s)
inst✝ : Decidable (1 ∈ s)
⊢ (mulIndicator U fun x => a) ⁻¹' s = (if a ∈ s then U else ∅) ∪ if 1 ∈ s then Uᶜ else ∅

tactic: split_ifs <;> simp [← compl_eq_univ_diff]
state_before: α : Type u_1
β : Type ?u.26992
ι : Type ?u.26995
M : Type u_2
N : Type ?u.27001
inst✝³ : One M
inst✝² : One N
s✝ t : Set α
f g : α → M
a✝ : α
U : Set α
s : Set M
a : M
inst✝¹ : Decidable (a ∈ s)
inst✝ : Decidable (1 ∈ s)
⊢ Set.ite U (if a ∈ s then univ else ∅) (if 1 ∈ s then univ else ∅) = (if a ∈ s then U else ∅) ∪ if 1 ∈ s then Uᶜ else ∅
Theorem: Set.empty_definable_iff
File: Mathlib/ModelTheory/Definability.lean

tactic: rw [Definable, Equiv.exists_congr_left (LEquiv.addEmptyConstants L (∅ : Set M)).onFormula]
state_before: M : Type w
A : Set M
L : Language
inst✝ : Structure L M
α : Type u₁
β : Type ?u.1235
B : Set M
s : Set (α → M)
⊢ Definable ∅ L s ↔ ∃ φ, s = setOf (Formula.Realize φ)

tactic: simp [-constantsOn]
state_before: M : Type w
A : Set M
L : Language
inst✝ : Structure L M
α : Type u₁
β : Type ?u.1235
B : Set M
s : Set (α → M)
⊢ (∃ φ, s = setOf (Formula.Realize φ)) ↔
    ∃ b, s = setOf (Formula.Realize (↑(LEquiv.onFormula (LEquiv.addEmptyConstants L ↑∅)).symm b))
Theorem: FirstOrder.Language.Substructure.closure_withConstants_eq
File: Mathlib/ModelTheory/Substructures.lean

tactic: refine' closure_eq_of_le ((A.subset_union_right s).trans subset_closure) _
state_before: L : Language
M : Type w
N : Type ?u.683008
P : Type ?u.683011
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
S : Substructure L M
A s : Set M
h : A ⊆ ↑S
⊢ LowerAdjoint.toFun (closure (L[[↑A]])) s =
    withConstants (LowerAdjoint.toFun (closure L) (A ∪ s)) (_ : A ⊆ ↑(LowerAdjoint.toFun (closure L) (A ∪ s)))

tactic: rw [← (L.lhomWithConstants A).substructureReduct.le_iff_le]
state_before: L : Language
M : Type w
N : Type ?u.683008
P : Type ?u.683011
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
S : Substructure L M
A s : Set M
h : A ⊆ ↑S
⊢ withConstants (LowerAdjoint.toFun (closure L) (A ∪ s)) (_ : A ⊆ ↑(LowerAdjoint.toFun (closure L) (A ∪ s))) ≤
    LowerAdjoint.toFun (closure (L[[↑A]])) s

tactic: simp only [subset_closure, reduct_withConstants, closure_le, LHom.coe_substructureReduct,
  Set.union_subset_iff, and_true_iff]
state_before: L : Language
M : Type w
N : Type ?u.683008
P : Type ?u.683011
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
S : Substructure L M
A s : Set M
h : A ⊆ ↑S
⊢ ↑(LHom.substructureReduct (lhomWithConstants L ↑A))
      (withConstants (LowerAdjoint.toFun (closure L) (A ∪ s)) (_ : A ⊆ ↑(LowerAdjoint.toFun (closure L) (A ∪ s)))) ≤
    ↑(LHom.substructureReduct (lhomWithConstants L ↑A)) (LowerAdjoint.toFun (closure (L[[↑A]])) s)

tactic: exact subset_closure_withConstants
state_before: L : Language
M : Type w
N : Type ?u.683008
P : Type ?u.683011
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
S : Substructure L M
A s : Set M
h : A ⊆ ↑S
⊢ A ⊆ ↑(LowerAdjoint.toFun (closure (L[[↑A]])) s)
Theorem: Set.Ioo_inter_Ioo
File: Mathlib/Data/Set/Intervals/Basic.lean

tactic: simp only [Ioi_inter_Iio.symm, Ioi_inter_Ioi.symm, Iio_inter_Iio.symm]
state_before: α : Type u_1
β : Type ?u.187524
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
a a₁ a₂ b b₁ b₂ c d : α
⊢ Ioo a₁ b₁ ∩ Ioo a₂ b₂ = Ioo (a₁ ⊔ a₂) (b₁ ⊓ b₂)

tactic: ac_rfl
state_before: α : Type u_1
β : Type ?u.187524
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
a a₁ a₂ b b₁ b₂ c d : α
⊢ Ioi a₁ ∩ Iio b₁ ∩ (Ioi a₂ ∩ Iio b₂) = Ioi a₁ ∩ Ioi a₂ ∩ (Iio b₁ ∩ Iio b₂)
Theorem: Polynomial.degree_pow_le
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: rw [pow_zero, zero_nsmul]
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ q : R[X]
ι : Type ?u.598995
p : R[X]
⊢ degree (p ^ 0) ≤ 0 • degree p

tactic: exact degree_one_le
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ q : R[X]
ι : Type ?u.598995
p : R[X]
⊢ degree 1 ≤ 0

tactic: rw [pow_succ]
state_before: R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝ : Semiring R
p✝ q : R[X]
ι : Type ?u.598995
p : R[X]
n : ℕ
⊢ degree (p ^ (n + 1)) ≤ degree p + degree (p ^ n)

tactic: exact degree_mul_le _ _
state_before: R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝ : Semiring R
p✝ q : R[X]
ι : Type ?u.598995
p : R[X]
n : ℕ
⊢ degree (p * p ^ n) ≤ degree p + degree (p ^ n)

tactic: rw [succ_nsmul]
state_before: R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝ : Semiring R
p✝ q : R[X]
ι : Type ?u.598995
p : R[X]
n : ℕ
⊢ degree p + degree (p ^ n) ≤ (n + 1) • degree p

tactic: exact add_le_add le_rfl (degree_pow_le _ _)
state_before: R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝ : Semiring R
p✝ q : R[X]
ι : Type ?u.598995
p : R[X]
n : ℕ
⊢ degree p + degree (p ^ n) ≤ degree p + n • degree p
Theorem: Cardinal.aleph'_succ
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: apply (succ_le_of_lt <| aleph'_lt.2 <| lt_succ o).antisymm' (Cardinal.alephIdx_le.1 <| _)
state_before: o : Ordinal
⊢ aleph' (succ o) = succ (aleph' o)

tactic: rw [alephIdx_aleph', succ_le_iff, ← aleph'_lt, aleph'_alephIdx]
state_before: o : Ordinal
⊢ alephIdx (aleph' (succ o)) ≤ alephIdx (succ (aleph' o))

tactic: apply lt_succ
state_before: o : Ordinal
⊢ aleph' o < succ (aleph' o)
Theorem: mem_convexHull_iff
File: Mathlib/Analysis/Convex/Hull.lean

tactic: simp_rw [convexHull_eq_iInter, mem_iInter]
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.6513
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
x y : E
⊢ x ∈ ↑(convexHull 𝕜).toOrderHom s ↔ ∀ (t : Set E), s ⊆ t → Convex 𝕜 t → x ∈ t
Theorem: IsLocalizedModule.mk'_cancel_right
File: Mathlib/Algebra/Module/LocalizedModule.lean

tactic: delta mk'
state_before: R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
M : Type u_3
M' : Type u_2
M'' : Type ?u.844419
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : AddCommMonoid M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
m : M
s₁ s₂ : { x // x ∈ S }
⊢ mk' f (s₂ • m) (s₁ * s₂) = mk' f m s₁

tactic: rw [LocalizedModule.mk_cancel_common_right]
state_before: R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
M : Type u_3
M' : Type u_2
M'' : Type ?u.844419
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : AddCommMonoid M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
m : M
s₁ s₂ : { x // x ∈ S }
⊢ ↑(fromLocalizedModule S f) (LocalizedModule.mk (s₂ • m) (s₁ * s₂)) =
    ↑(fromLocalizedModule S f) (LocalizedModule.mk m s₁)
Theorem: Part.Fix.le_f_of_mem_approx
File: Mathlib/Control/LawfulFix.lean

tactic: rintro i rfl
state_before: α : Type u_2
β : α → Type u_1
f : ((a : α) → Part (β a)) →o (a : α) → Part (β a)
x : (a : α) → Part (β a)
⊢ ∀ (x_1 : ℕ), x = ↑(approxChain f) x_1 → x ≤ ↑f x

tactic: apply approx_mono'
state_before: α : Type u_2
β : α → Type u_1
f : ((a : α) → Part (β a)) →o (a : α) → Part (β a)
i : ℕ
⊢ ↑(approxChain f) i ≤ ↑f (↑(approxChain f) i)
Theorem: eq_affineCombination_of_mem_affineSpan_of_fintype
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: classical
  obtain ⟨s, w, hw, rfl⟩ := eq_affineCombination_of_mem_affineSpan h
  refine'
    ⟨(s : Set ι).indicator w, _, Finset.affineCombination_indicator_subset w p s.subset_univ⟩
  simp only [Finset.mem_coe, Set.indicator_apply, ← hw]
  rw [Fintype.sum_extend_by_zero s w]
state_before: k : Type u_3
V : Type u_4
P : Type u_2
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_1
inst✝ : Fintype ι
p1 : P
p : ι → P
h : p1 ∈ affineSpan k (Set.range p)
⊢ ∃ w x, p1 = ↑(Finset.affineCombination k Finset.univ p) w

tactic: obtain ⟨s, w, hw, rfl⟩ := eq_affineCombination_of_mem_affineSpan h
state_before: k : Type u_3
V : Type u_4
P : Type u_2
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_1
inst✝ : Fintype ι
p1 : P
p : ι → P
h : p1 ∈ affineSpan k (Set.range p)
⊢ ∃ w x, p1 = ↑(Finset.affineCombination k Finset.univ p) w

tactic: refine'
  ⟨(s : Set ι).indicator w, _, Finset.affineCombination_indicator_subset w p s.subset_univ⟩
state_before: case intro.intro.intro
k : Type u_3
V : Type u_4
P : Type u_2
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_1
inst✝ : Fintype ι
p : ι → P
s : Finset ι
w : ι → k
hw : ∑ i in s, w i = 1
h : ↑(Finset.affineCombination k s p) w ∈ affineSpan k (Set.range p)
⊢ ∃ w_1 x, ↑(Finset.affineCombination k s p) w = ↑(Finset.affineCombination k Finset.univ p) w_1

tactic: simp only [Finset.mem_coe, Set.indicator_apply, ← hw]
state_before: case intro.intro.intro
k : Type u_3
V : Type u_4
P : Type u_2
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_1
inst✝ : Fintype ι
p : ι → P
s : Finset ι
w : ι → k
hw : ∑ i in s, w i = 1
h : ↑(Finset.affineCombination k s p) w ∈ affineSpan k (Set.range p)
⊢ ∑ i : ι, Set.indicator (↑s) w i = 1

tactic: rw [Fintype.sum_extend_by_zero s w]
state_before: case intro.intro.intro
k : Type u_3
V : Type u_4
P : Type u_2
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_1
inst✝ : Fintype ι
p : ι → P
s : Finset ι
w : ι → k
hw : ∑ i in s, w i = 1
h : ↑(Finset.affineCombination k s p) w ∈ affineSpan k (Set.range p)
⊢ (∑ x : ι, if x ∈ s then w x else 0) = ∑ i in s, w i