1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: EuclideanGeometry.sin_oangle_right_of_oangle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean

tactic: have hs : (∡ p₂ p₃ p₁).sign = 1 := by rw [oangle_rotate_sign, h, Real.Angle.sign_coe_pi_div_two]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
⊢ (∡ p₂ p₃ p₁).sin = dist p₁ p₂ / dist p₁ p₃
state_after: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
hs : (∡ p₂ p₃ p₁).sign = 1
⊢ (∡ p₂ p₃ p₁).sin = dist p₁ p₂ / dist p₁ p₃

tactic: rw [oangle_eq_angle_of_sign_eq_one hs, Real.Angle.sin_coe,
  sin_angle_of_angle_eq_pi_div_two (angle_eq_pi_div_two_of_oangle_eq_pi_div_two h)
    (Or.inl (left_ne_of_oangle_eq_pi_div_two h))]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
hs : (∡ p₂ p₃ p₁).sign = 1
⊢ (∡ p₂ p₃ p₁).sin = dist p₁ p₂ / dist p₁ p₃
state_after: no goals

tactic: rw [oangle_rotate_sign, h, Real.Angle.sign_coe_pi_div_two]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
⊢ (∡ p₂ p₃ p₁).sign = 1
state_after: no goals
Theorem: Ordinal.bsup_le_iff
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [← familyOfBFamily_enum o f]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u}
f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v}
a : Ordinal.{max u v}
h : ∀ (i : (Quotient.out o).α), o.familyOfBFamily f i ≤ a
i : Ordinal.{u}
hi : i < o
⊢ f i hi ≤ a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u}
f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v}
a : Ordinal.{max u v}
h : ∀ (i : (Quotient.out o).α), o.familyOfBFamily f i ≤ a
i : Ordinal.{u}
hi : i < o
⊢ o.familyOfBFamily f (enum (fun x x_1 => x < x_1) i ⋯) ≤ a

tactic: exact h _
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u}
f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v}
a : Ordinal.{max u v}
h : ∀ (i : (Quotient.out o).α), o.familyOfBFamily f i ≤ a
i : Ordinal.{u}
hi : i < o
⊢ o.familyOfBFamily f (enum (fun x x_1 => x < x_1) i ⋯) ≤ a
state_after: no goals
Theorem: Polynomial.Monic.mul_right_ne_zero
File: Mathlib/Algebra/Polynomial/Monic.lean

tactic: by_cases h : p = 1
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
hp : p.Monic
q : R[X]
hq : q ≠ 0
⊢ p * q ≠ 0
state_after: case pos
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
hp : p.Monic
q : R[X]
hq : q ≠ 0
h : p = 1
⊢ p * q ≠ 0

case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
hp : p.Monic
q : R[X]
hq : q ≠ 0
h : ¬p = 1
⊢ p * q ≠ 0

tactic: rw [Ne, ← degree_eq_bot, hp.degree_mul_comm, hp.degree_mul, WithBot.add_eq_bot, not_or,
  degree_eq_bot]
state_before: case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
hp : p.Monic
q : R[X]
hq : q ≠ 0
h : ¬p = 1
⊢ p * q ≠ 0
state_after: case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
hp : p.Monic
q : R[X]
hq : q ≠ 0
h : ¬p = 1
⊢ ¬q = 0 ∧ ¬p.degree = ⊥

tactic: refine ⟨hq, ?_⟩
state_before: case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
hp : p.Monic
q : R[X]
hq : q ≠ 0
h : ¬p = 1
⊢ ¬q = 0 ∧ ¬p.degree = ⊥
state_after: case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
hp : p.Monic
q : R[X]
hq : q ≠ 0
h : ¬p = 1
⊢ ¬p.degree = ⊥

tactic: rw [← hp.degree_le_zero_iff_eq_one, not_le] at h
state_before: case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
hp : p.Monic
q : R[X]
hq : q ≠ 0
h : ¬p = 1
⊢ ¬p.degree = ⊥
state_after: case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
hp : p.Monic
q : R[X]
hq : q ≠ 0
h : 0 < p.degree
⊢ ¬p.degree = ⊥

tactic: refine (lt_trans ?_ h).ne'
state_before: case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
hp : p.Monic
q : R[X]
hq : q ≠ 0
h : 0 < p.degree
⊢ ¬p.degree = ⊥
state_after: case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
hp : p.Monic
q : R[X]
hq : q ≠ 0
h : 0 < p.degree
⊢ ⊥ < 0

tactic: simp
state_before: case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
hp : p.Monic
q : R[X]
hq : q ≠ 0
h : 0 < p.degree
⊢ ⊥ < 0
state_after: no goals

tactic: simpa [h]
state_before: case pos
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
hp : p.Monic
q : R[X]
hq : q ≠ 0
h : p = 1
⊢ p * q ≠ 0
state_after: no goals
Theorem: StarAlgebra.gc
File: Mathlib/Algebra/Star/Subalgebra.lean

tactic: intro s S
state_before: F : Type u_1
R : Type u_2
A : Type u_3
B : Type u_4
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : StarRing A
inst✝⁴ : StarModule R A
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : StarModule R B
⊢ GaloisConnection (adjoin R) SetLike.coe
state_after: F : Type u_1
R : Type u_2
A : Type u_3
B : Type u_4
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : StarRing A
inst✝⁴ : StarModule R A
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : StarModule R B
s : Set A
S : StarSubalgebra R A
⊢ adjoin R s ≤ S ↔ s ≤ ↑S

tactic: rw [← toSubalgebra_le_iff, adjoin_toSubalgebra, Algebra.adjoin_le_iff, coe_toSubalgebra]
state_before: F : Type u_1
R : Type u_2
A : Type u_3
B : Type u_4
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : StarRing A
inst✝⁴ : StarModule R A
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : StarModule R B
s : Set A
S : StarSubalgebra R A
⊢ adjoin R s ≤ S ↔ s ≤ ↑S
state_after: F : Type u_1
R : Type u_2
A : Type u_3
B : Type u_4
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : StarRing A
inst✝⁴ : StarModule R A
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : StarModule R B
s : Set A
S : StarSubalgebra R A
⊢ s ∪ star s ⊆ ↑S ↔ s ≤ ↑S

tactic: exact
  ⟨fun h => Set.subset_union_left.trans h, fun h =>
    Set.union_subset h fun x hx => star_star x ▸ star_mem (show star x ∈ S from h hx)⟩
state_before: F : Type u_1
R : Type u_2
A : Type u_3
B : Type u_4
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : StarRing A
inst✝⁴ : StarModule R A
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : StarModule R B
s : Set A
S : StarSubalgebra R A
⊢ s ∪ star s ⊆ ↑S ↔ s ≤ ↑S
state_after: no goals
Theorem: SimpleGraph.Walk.start_mem_support
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: cases p <;> simp
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
p : G.Walk u v
⊢ u ∈ p.support
state_after: no goals
Theorem: MulAction.orbitZPowersEquiv_symm_apply'
File: Mathlib/Data/ZMod/Quotient.lean

tactic: rw [orbitZPowersEquiv_symm_apply, ZMod.coe_intCast]
state_before: n : ℕ
A : Type u_1
R : Type u_2
inst✝³ : AddGroup A
inst✝² : Ring R
α : Type u_3
β : Type u_4
inst✝¹ : Group α
a : α
inst✝ : MulAction α β
b : β
k : ℤ
⊢ (orbitZPowersEquiv a b).symm ↑k = ⟨a, ⋯⟩ ^ k • ⟨b, ⋯⟩
state_after: n : ℕ
A : Type u_1
R : Type u_2
inst✝³ : AddGroup A
inst✝² : Ring R
α : Type u_3
β : Type u_4
inst✝¹ : Group α
a : α
inst✝ : MulAction α β
b : β
k : ℤ
⊢ ⟨a, ⋯⟩ ^ (k % ↑(minimalPeriod (fun x => a • x) b)) • ⟨b, ⋯⟩ = ⟨a, ⋯⟩ ^ k • ⟨b, ⋯⟩

tactic: exact Subtype.ext (zpow_smul_mod_minimalPeriod _ _ k)
state_before: n : ℕ
A : Type u_1
R : Type u_2
inst✝³ : AddGroup A
inst✝² : Ring R
α : Type u_3
β : Type u_4
inst✝¹ : Group α
a : α
inst✝ : MulAction α β
b : β
k : ℤ
⊢ ⟨a, ⋯⟩ ^ (k % ↑(minimalPeriod (fun x => a • x) b)) • ⟨b, ⋯⟩ = ⟨a, ⋯⟩ ^ k • ⟨b, ⋯⟩
state_after: no goals
Theorem: Finset.attach_affineCombination_coe
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: classical rw [attach_affineCombination_of_injective s w ((↑) : s → P) Subtype.coe_injective,
    univ_eq_attach, attach_image_val]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
ι : Type u_4
s✝ : Finset ι
ι₂ : Type u_5
s₂ : Finset ι₂
s : Finset P
w : P → k
⊢ (affineCombination k s.attach Subtype.val) (w ∘ Subtype.val) = (affineCombination k s id) w
state_after: no goals

tactic: rw [attach_affineCombination_of_injective s w ((↑) : s → P) Subtype.coe_injective,
univ_eq_attach, attach_image_val]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
ι : Type u_4
s✝ : Finset ι
ι₂ : Type u_5
s₂ : Finset ι₂
s : Finset P
w : P → k
⊢ (affineCombination k s.attach Subtype.val) (w ∘ Subtype.val) = (affineCombination k s id) w
state_after: no goals
Theorem: Field.insepDegree_self
File: Mathlib/FieldTheory/SeparableClosure.lean

tactic: rw [insepDegree, Subsingleton.elim (separableClosure F F) ⊤, IntermediateField.rank_top]
state_before: F : Type u
E : Type v
inst✝⁴ : Field F
inst✝³ : Field E
inst✝² : Algebra F E
K : Type w
inst✝¹ : Field K
inst✝ : Algebra F K
⊢ insepDegree F F = 1
state_after: no goals
Theorem: Rat.cast_add_of_ne_zero
File: Mathlib/Data/Rat/Cast/Defs.lean

tactic: rw [add_def', cast_mkRat_of_ne_zero, cast_def, cast_def, mul_comm r.num,
  (Nat.cast_commute _ _).div_add_div (Nat.commute_cast _ _) hq hr]
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionRing α
p q✝ q r : ℚ
hq : ↑q.den ≠ 0
hr : ↑r.den ≠ 0
⊢ ↑(q + r) = ↑q + ↑r
state_after: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionRing α
p q✝ q r : ℚ
hq : ↑q.den ≠ 0
hr : ↑r.den ≠ 0
⊢ ↑(q.num * ↑r.den + ↑q.den * r.num) / ↑(q.den * r.den) = (↑q.num * ↑r.den + ↑q.den * ↑r.num) / (↑q.den * ↑r.den)

case hb
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionRing α
p q✝ q r : ℚ
hq : ↑q.den ≠ 0
hr : ↑r.den ≠ 0
⊢ ↑(q.den * r.den) ≠ 0

tactic: push_cast
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionRing α
p q✝ q r : ℚ
hq : ↑q.den ≠ 0
hr : ↑r.den ≠ 0
⊢ ↑(q.num * ↑r.den + ↑q.den * r.num) / ↑(q.den * r.den) = (↑q.num * ↑r.den + ↑q.den * ↑r.num) / (↑q.den * ↑r.den)
state_after: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionRing α
p q✝ q r : ℚ
hq : ↑q.den ≠ 0
hr : ↑r.den ≠ 0
⊢ (↑q.num * ↑r.den + ↑q.den * ↑r.num) / (↑q.den * ↑r.den) = (↑q.num * ↑r.den + ↑q.den * ↑r.num) / (↑q.den * ↑r.den)

tactic: rfl
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionRing α
p q✝ q r : ℚ
hq : ↑q.den ≠ 0
hr : ↑r.den ≠ 0
⊢ (↑q.num * ↑r.den + ↑q.den * ↑r.num) / (↑q.den * ↑r.den) = (↑q.num * ↑r.den + ↑q.den * ↑r.num) / (↑q.den * ↑r.den)
state_after: no goals

tactic: push_cast
state_before: case hb
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionRing α
p q✝ q r : ℚ
hq : ↑q.den ≠ 0
hr : ↑r.den ≠ 0
⊢ ↑(q.den * r.den) ≠ 0
state_after: case hb
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionRing α
p q✝ q r : ℚ
hq : ↑q.den ≠ 0
hr : ↑r.den ≠ 0
⊢ ↑q.den * ↑r.den ≠ 0

tactic: exact mul_ne_zero hq hr
state_before: case hb
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionRing α
p q✝ q r : ℚ
hq : ↑q.den ≠ 0
hr : ↑r.den ≠ 0
⊢ ↑q.den * ↑r.den ≠ 0
state_after: no goals
Theorem: Finset.Ico_eq_image_ssubsets
File: Mathlib/Data/Finset/Interval.lean

tactic: ext u
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
⊢ Ico s t = image (fun x => s ∪ x) (t \ s).ssubsets
state_after: case a
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
⊢ u ∈ Ico s t ↔ u ∈ image (fun x => s ∪ x) (t \ s).ssubsets

tactic: simp_rw [mem_Ico, mem_image, mem_ssubsets]
state_before: case a
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
⊢ u ∈ Ico s t ↔ u ∈ image (fun x => s ∪ x) (t \ s).ssubsets
state_after: case a
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
⊢ s ≤ u ∧ u < t ↔ ∃ a ⊂ t \ s, s ∪ a = u

tactic: constructor
state_before: case a
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
⊢ s ≤ u ∧ u < t ↔ ∃ a ⊂ t \ s, s ∪ a = u
state_after: case a.mp
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
⊢ s ≤ u ∧ u < t → ∃ a ⊂ t \ s, s ∪ a = u

case a.mpr
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
⊢ (∃ a ⊂ t \ s, s ∪ a = u) → s ≤ u ∧ u < t

tactic: rintro ⟨hs, ht⟩
state_before: case a.mp
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
⊢ s ≤ u ∧ u < t → ∃ a ⊂ t \ s, s ∪ a = u
state_after: case a.mp.intro
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
hs : s ≤ u
ht : u < t
⊢ ∃ a ⊂ t \ s, s ∪ a = u

tactic: exact ⟨u \ s, sdiff_lt_sdiff_right ht hs, sup_sdiff_cancel_right hs⟩
state_before: case a.mp.intro
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
hs : s ≤ u
ht : u < t
⊢ ∃ a ⊂ t \ s, s ∪ a = u
state_after: no goals

tactic: rintro ⟨v, hv, rfl⟩
state_before: case a.mpr
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
⊢ (∃ a ⊂ t \ s, s ∪ a = u) → s ≤ u ∧ u < t
state_after: case a.mpr.intro.intro
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
v : Finset α
hv : v ⊂ t \ s
⊢ s ≤ s ∪ v ∧ s ∪ v < t

tactic: exact ⟨le_sup_left, sup_lt_of_lt_sdiff_left hv h⟩
state_before: case a.mpr.intro.intro
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
v : Finset α
hv : v ⊂ t \ s
⊢ s ≤ s ∪ v ∧ s ∪ v < t
state_after: no goals
Theorem: LinearMap.IsSymmetric.restrictScalars
File: Mathlib/Analysis/InnerProductSpace/Symmetric.lean

tactic: simp [hT x y, real_inner_eq_re_inner, LinearMap.coe_restrictScalars ℝ]
state_before: 𝕜 : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : InnerProductSpace 𝕜 G
inst✝¹ : NormedAddCommGroup E'
inst✝ : InnerProductSpace ℝ E'
T : E →ₗ[𝕜] E
hT : T.IsSymmetric
x y : E
⊢ ⟪(↑ℝ T) x, y⟫_ℝ = ⟪x, (↑ℝ T) y⟫_ℝ
state_after: no goals
Theorem: MvPolynomial.NewtonIdentities.pairMap_of_snd_nmem_fst
File: Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean

tactic: simp [pairMap, h]
state_before: σ : Type u_1
inst✝² : Fintype σ
inst✝¹ : DecidableEq σ
R : Type u_2
inst✝ : CommRing R
t : Finset σ × σ
h : t.2 ∉ t.1
⊢ MvPolynomial.NewtonIdentities.pairMap σ t = (cons t.2 t.1 h, t.2)
state_after: no goals
Theorem: Finset.univ_inter
File: Mathlib/Data/Fintype/Basic.lean

tactic: ext a
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Fintype α
s✝ t : Finset α
inst✝ : DecidableEq α
a : α
s : Finset α
⊢ univ ∩ s = s
state_after: case a
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Fintype α
s✝ t : Finset α
inst✝ : DecidableEq α
a✝ : α
s : Finset α
a : α
⊢ a ∈ univ ∩ s ↔ a ∈ s

tactic: simp
state_before: case a
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Fintype α
s✝ t : Finset α
inst✝ : DecidableEq α
a✝ : α
s : Finset α
a : α
⊢ a ∈ univ ∩ s ↔ a ∈ s
state_after: no goals
Theorem: Matroid.exists_basis_disjoint_basis_of_subset
File: Mathlib/Data/Matroid/Basic.lean

tactic: obtain ⟨I, I', hI, hI', hII'⟩ := M.exists_basis_subset_basis hXY
state_before: α : Type u_1
M✝ M : Matroid α
X Y : Set α
hXY : X ⊆ Y
hY : autoParam (Y ⊆ M.E) _auto✝
⊢ ∃ I J, M.Basis I X ∧ M.Basis (I ∪ J) Y ∧ Disjoint X J
state_after: case intro.intro.intro.intro
α : Type u_1
M✝ M : Matroid α
X Y : Set α
hXY : X ⊆ Y
hY : autoParam (Y ⊆ M.E) _auto✝
I I' : Set α
hI : M.Basis I X
hI' : M.Basis I' Y
hII' : I ⊆ I'
⊢ ∃ I J, M.Basis I X ∧ M.Basis (I ∪ J) Y ∧ Disjoint X J

tactic: refine ⟨I, I' \ I, hI, by rwa [union_diff_self, union_eq_self_of_subset_left hII'], ?_⟩
state_before: case intro.intro.intro.intro
α : Type u_1
M✝ M : Matroid α
X Y : Set α
hXY : X ⊆ Y
hY : autoParam (Y ⊆ M.E) _auto✝
I I' : Set α
hI : M.Basis I X
hI' : M.Basis I' Y
hII' : I ⊆ I'
⊢ ∃ I J, M.Basis I X ∧ M.Basis (I ∪ J) Y ∧ Disjoint X J
state_after: case intro.intro.intro.intro
α : Type u_1
M✝ M : Matroid α
X Y : Set α
hXY : X ⊆ Y
hY : autoParam (Y ⊆ M.E) _auto✝
I I' : Set α
hI : M.Basis I X
hI' : M.Basis I' Y
hII' : I ⊆ I'
⊢ Disjoint X (I' \ I)

tactic: rw [disjoint_iff_forall_ne]
state_before: case intro.intro.intro.intro
α : Type u_1
M✝ M : Matroid α
X Y : Set α
hXY : X ⊆ Y
hY : autoParam (Y ⊆ M.E) _auto✝
I I' : Set α
hI : M.Basis I X
hI' : M.Basis I' Y
hII' : I ⊆ I'
⊢ Disjoint X (I' \ I)
state_after: case intro.intro.intro.intro
α : Type u_1
M✝ M : Matroid α
X Y : Set α
hXY : X ⊆ Y
hY : autoParam (Y ⊆ M.E) _auto✝
I I' : Set α
hI : M.Basis I X
hI' : M.Basis I' Y
hII' : I ⊆ I'
⊢ ∀ ⦃a : α⦄, a ∈ X → ∀ ⦃b : α⦄, b ∈ I' \ I → a ≠ b

tactic: rintro e heX _ ⟨heI', heI⟩ rfl
state_before: case intro.intro.intro.intro
α : Type u_1
M✝ M : Matroid α
X Y : Set α
hXY : X ⊆ Y
hY : autoParam (Y ⊆ M.E) _auto✝
I I' : Set α
hI : M.Basis I X
hI' : M.Basis I' Y
hII' : I ⊆ I'
⊢ ∀ ⦃a : α⦄, a ∈ X → ∀ ⦃b : α⦄, b ∈ I' \ I → a ≠ b
state_after: case intro.intro.intro.intro.intro
α : Type u_1
M✝ M : Matroid α
X Y : Set α
hXY : X ⊆ Y
hY : autoParam (Y ⊆ M.E) _auto✝
I I' : Set α
hI : M.Basis I X
hI' : M.Basis I' Y
hII' : I ⊆ I'
e : α
heX : e ∈ X
heI' : e ∈ I'
heI : e ∉ I
⊢ False

tactic: exact heI <| hI.mem_of_insert_indep heX (hI'.indep.subset (insert_subset heI' hII'))
state_before: case intro.intro.intro.intro.intro
α : Type u_1
M✝ M : Matroid α
X Y : Set α
hXY : X ⊆ Y
hY : autoParam (Y ⊆ M.E) _auto✝
I I' : Set α
hI : M.Basis I X
hI' : M.Basis I' Y
hII' : I ⊆ I'
e : α
heX : e ∈ X
heI' : e ∈ I'
heI : e ∉ I
⊢ False
state_after: no goals

tactic: rwa [union_diff_self, union_eq_self_of_subset_left hII']
state_before: α : Type u_1
M✝ M : Matroid α
X Y : Set α
hXY : X ⊆ Y
hY : autoParam (Y ⊆ M.E) _auto✝
I I' : Set α
hI : M.Basis I X
hI' : M.Basis I' Y
hII' : I ⊆ I'
⊢ M.Basis (I ∪ I' \ I) Y
state_after: no goals
Theorem: integrableOn_Ico_iff_integrableOn_Ioo'
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: by_cases hab : a < b
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 : α
ha : μ {a} ≠ ⊤
⊢ IntegrableOn f (Ico a b) μ ↔ IntegrableOn f (Ioo a b) μ
state_after: case pos
α : 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 : α
ha : μ {a} ≠ ⊤
hab : a < b
⊢ IntegrableOn f (Ico a b) μ ↔ IntegrableOn f (Ioo a b) μ

case neg
α : 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 : α
ha : μ {a} ≠ ⊤
hab : ¬a < b
⊢ IntegrableOn f (Ico a b) μ ↔ IntegrableOn f (Ioo a b) μ

tactic: rw [← Ioo_union_left hab, integrableOn_union,
  eq_true (integrableOn_singleton_iff.mpr <| Or.inr ha.lt_top), and_true_iff]
state_before: case pos
α : 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 : α
ha : μ {a} ≠ ⊤
hab : a < b
⊢ IntegrableOn f (Ico a b) μ ↔ IntegrableOn f (Ioo a b) μ
state_after: no goals

tactic: rw [Ioo_eq_empty hab, Ico_eq_empty hab]
state_before: case neg
α : 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 : α
ha : μ {a} ≠ ⊤
hab : ¬a < b
⊢ IntegrableOn f (Ico a b) μ ↔ IntegrableOn f (Ioo a b) μ
state_after: no goals
Theorem: nsmul_eq_smul_cast
File: Mathlib/Algebra/Module/Defs.lean

tactic: induction' n with n ih
state_before: α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
n : ℕ
b : M
⊢ n • b = ↑n • b
state_after: case zero
α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
b : M
⊢ 0 • b = ↑0 • b

case succ
α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
b : M
n : ℕ
ih : n • b = ↑n • b
⊢ (n + 1) • b = ↑(n + 1) • b

tactic: rw [Nat.cast_zero, zero_smul, zero_smul]
state_before: case zero
α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
b : M
⊢ 0 • b = ↑0 • b
state_after: no goals

tactic: rw [Nat.cast_succ, add_smul, add_smul, one_smul, ih, one_smul]
state_before: case succ
α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
b : M
n : ℕ
ih : n • b = ↑n • b
⊢ (n + 1) • b = ↑(n + 1) • b
state_after: no goals
Theorem: CategoryTheory.comp_dite
File: Mathlib/CategoryTheory/Category/Basic.lean

tactic: aesop
state_before: C : Type u
inst✝¹ : Category.{v, u} C
X✝ Y✝ Z✝ : C
P : Prop
inst✝ : Decidable P
X Y Z : C
f : X ⟶ Y
g : P → (Y ⟶ Z)
g' : ¬P → (Y ⟶ Z)
⊢ (f ≫ if h : P then g h else g' h) = if h : P then f ≫ g h else f ≫ g' h
state_after: no goals
Theorem: QuotientGroup.subsingleton_quotient_top
File: Mathlib/GroupTheory/QuotientGroup.lean

tactic: dsimp [HasQuotient.Quotient, QuotientGroup.instHasQuotientSubgroup, Quotient]
state_before: G : Type u
inst✝² : Group G
N : Subgroup G
nN : N.Normal
H : Type v
inst✝¹ : Group H
M : Type x
inst✝ : Monoid M
φ : G →* H
⊢ Subsingleton (G ⧸ ⊤)
state_after: G : Type u
inst✝² : Group G
N : Subgroup G
nN : N.Normal
H : Type v
inst✝¹ : Group H
M : Type x
inst✝ : Monoid M
φ : G →* H
⊢ Subsingleton (Quot Setoid.r)

tactic: rw [leftRel_eq]
state_before: G : Type u
inst✝² : Group G
N : Subgroup G
nN : N.Normal
H : Type v
inst✝¹ : Group H
M : Type x
inst✝ : Monoid M
φ : G →* H
⊢ Subsingleton (Quot Setoid.r)
state_after: G : Type u
inst✝² : Group G
N : Subgroup G
nN : N.Normal
H : Type v
inst✝¹ : Group H
M : Type x
inst✝ : Monoid M
φ : G →* H
⊢ Subsingleton (Quot fun x y => x⁻¹ * y ∈ ⊤)

tactic: exact Trunc.instSubsingletonTrunc
state_before: G : Type u
inst✝² : Group G
N : Subgroup G
nN : N.Normal
H : Type v
inst✝¹ : Group H
M : Type x
inst✝ : Monoid M
φ : G →* H
⊢ Subsingleton (Quot fun x y => x⁻¹ * y ∈ ⊤)
state_after: no goals