1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Matrix.linfty_opNorm_def
File: Mathlib/Analysis/Matrix.lean

tactic: change ‖fun i => (WithLp.equiv 1 _).symm (A i)‖ = _
state_before: R : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type u_5
β : Type u_6
ι : Type u_7
inst✝⁴ : Fintype l
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : Unique ι
inst✝ : SeminormedAddCommGroup α
A : Matrix m n α
⊢ ‖A‖ = ↑(Finset.univ.sup fun i => ∑ j : n, ‖A i j‖₊)
state_after: R : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type u_5
β : Type u_6
ι : Type u_7
inst✝⁴ : Fintype l
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : Unique ι
inst✝ : SeminormedAddCommGroup α
A : Matrix m n α
⊢ ‖fun i => (WithLp.equiv 1 (n → α)).symm (A i)‖ = ↑(Finset.univ.sup fun i => ∑ j : n, ‖A i j‖₊)

tactic: simp [Pi.norm_def, PiLp.nnnorm_eq_sum ENNReal.one_ne_top]
state_before: R : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type u_5
β : Type u_6
ι : Type u_7
inst✝⁴ : Fintype l
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : Unique ι
inst✝ : SeminormedAddCommGroup α
A : Matrix m n α
⊢ ‖fun i => (WithLp.equiv 1 (n → α)).symm (A i)‖ = ↑(Finset.univ.sup fun i => ∑ j : n, ‖A i j‖₊)
state_after: no goals
Theorem: bot_bihimp
File: Mathlib/Order/SymmDiff.lean

tactic: simp [bihimp]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : HeytingAlgebra α
a : α
⊢ ⊥ ⇔ a = aᶜ
state_after: no goals
Theorem: Prod.tendsto_iff
File: Mathlib/Topology/Constructions.lean

tactic: rw [nhds_prod_eq, Filter.tendsto_prod_iff']
state_before: X✝ : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X✝
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
X : Type u_5
seq : X → Y × Z
f : Filter X
p : Y × Z
⊢ Tendsto seq f (𝓝 p) ↔ Tendsto (fun n => (seq n).1) f (𝓝 p.1) ∧ Tendsto (fun n => (seq n).2) f (𝓝 p.2)
state_after: no goals
Theorem: AlgebraicGeometry.affine_cancel_left_isIso
File: Mathlib/AlgebraicGeometry/Morphisms/Basic.lean

tactic: rw [← P.toProperty_apply, ← P.toProperty_apply, hP.cancel_left_isIso]
state_before: P : AffineTargetMorphismProperty
hP : P.toProperty.RespectsIso
X Y Z : Scheme
f : X ⟶ Y
g : Y ⟶ Z
inst✝¹ : IsIso f
inst✝ : IsAffine Z
⊢ P (f ≫ g) ↔ P g
state_after: no goals
Theorem: NumberField.mixedEmbedding.norm_real
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean

tactic: rw [show ((fun _ ↦ c, fun _ ↦ c) : (E K)) = c • 1 by ext <;> simp, norm_smul, map_one, mul_one]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
c : ℝ
⊢ mixedEmbedding.norm (fun x => c, fun x => ↑c) = |c| ^ finrank ℚ K
state_after: no goals

tactic: ext <;> simp
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
c : ℝ
⊢ (fun x => c, fun x => ↑c) = c • 1
state_after: no goals
Theorem: Matroid.Basis.exists_base
File: Mathlib/Data/Matroid/Basic.lean

tactic: rw [hI.eq_of_subset_indep (hB.indep.inter_right X) (subset_inter hIB hI.subset)
inter_subset_right]
state_before: α : Type u_1
M : Matroid α
I X : Set α
hI : M.Basis I X
B : Set α
hB : M.Base B
hIB : I ⊆ B
⊢ B ∩ X ⊆ I
state_after: no goals
Theorem: MeasureTheory.Memℒp.smul_of_top_right
File: Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean

tactic: apply hf.smul hφ
state_before: 𝕜 : Type u_1
α : Type u_2
E : Type u_3
F : Type u_4
m : MeasurableSpace α
μ : Measure α
inst✝⁶ : NormedRing 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : MulActionWithZero 𝕜 E
inst✝³ : BoundedSMul 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : MulActionWithZero 𝕜 F
inst✝ : BoundedSMul 𝕜 F
p : ℝ≥0∞
f : α → E
φ : α → 𝕜
hf : Memℒp f p μ
hφ : Memℒp φ ⊤ μ
⊢ Memℒp (φ • f) p μ
state_after: 𝕜 : Type u_1
α : Type u_2
E : Type u_3
F : Type u_4
m : MeasurableSpace α
μ : Measure α
inst✝⁶ : NormedRing 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : MulActionWithZero 𝕜 E
inst✝³ : BoundedSMul 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : MulActionWithZero 𝕜 F
inst✝ : BoundedSMul 𝕜 F
p : ℝ≥0∞
f : α → E
φ : α → 𝕜
hf : Memℒp f p μ
hφ : Memℒp φ ⊤ μ
⊢ 1 / p = 1 / ⊤ + 1 / p

tactic: simp only [ENNReal.div_top, zero_add]
state_before: 𝕜 : Type u_1
α : Type u_2
E : Type u_3
F : Type u_4
m : MeasurableSpace α
μ : Measure α
inst✝⁶ : NormedRing 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : MulActionWithZero 𝕜 E
inst✝³ : BoundedSMul 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : MulActionWithZero 𝕜 F
inst✝ : BoundedSMul 𝕜 F
p : ℝ≥0∞
f : α → E
φ : α → 𝕜
hf : Memℒp f p μ
hφ : Memℒp φ ⊤ μ
⊢ 1 / p = 1 / ⊤ + 1 / p
state_after: no goals
Theorem: split_by_characteristic_domain
File: Mathlib/Algebra/CharP/MixedCharZero.lean

tactic: refine split_by_characteristic R ?_ h_equal h_mixed
state_before: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : IsDomain R
h_pos : ∀ (p : ℕ), Nat.Prime p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
⊢ P
state_after: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : IsDomain R
h_pos : ∀ (p : ℕ), Nat.Prime p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
⊢ ∀ (p : ℕ), p ≠ 0 → CharP R p → P

tactic: intro p p_pos p_char
state_before: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : IsDomain R
h_pos : ∀ (p : ℕ), Nat.Prime p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
⊢ ∀ (p : ℕ), p ≠ 0 → CharP R p → P
state_after: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : IsDomain R
h_pos : ∀ (p : ℕ), Nat.Prime p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
p : ℕ
p_pos : p ≠ 0
p_char : CharP R p
⊢ P

tactic: have p_prime : Nat.Prime p := or_iff_not_imp_right.mp (CharP.char_is_prime_or_zero R p) p_pos
state_before: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : IsDomain R
h_pos : ∀ (p : ℕ), Nat.Prime p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
p : ℕ
p_pos : p ≠ 0
p_char : CharP R p
⊢ P
state_after: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : IsDomain R
h_pos : ∀ (p : ℕ), Nat.Prime p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
p : ℕ
p_pos : p ≠ 0
p_char : CharP R p
p_prime : Nat.Prime p
⊢ P

tactic: exact h_pos p p_prime p_char
state_before: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : IsDomain R
h_pos : ∀ (p : ℕ), Nat.Prime p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
p : ℕ
p_pos : p ≠ 0
p_char : CharP R p
p_prime : Nat.Prime p
⊢ P
state_after: no goals
Theorem: Fin.card_filter_univ_eq_vector_get_eq_count
File: Mathlib/Data/Fintype/Fin.lean

tactic: induction' v with n x xs hxs
state_before: α : Type u_1
β : Type u_2
n : ℕ
inst✝ : DecidableEq α
a : α
v : Vector α n
⊢ (filter (fun i => a = v.get i) univ).card = List.count a v.toList
state_after: case nil
α : Type u_1
β : Type u_2
n : ℕ
inst✝ : DecidableEq α
a : α
⊢ (filter (fun i => a = Vector.nil.get i) univ).card = List.count a Vector.nil.toList

case cons
α : Type u_1
β : Type u_2
n✝ : ℕ
inst✝ : DecidableEq α
a : α
n : ℕ
x : α
xs : Vector α n
hxs : (filter (fun i => a = xs.get i) univ).card = List.count a xs.toList
⊢ (filter (fun i => a = (x ::ᵥ xs).get i) univ).card = List.count a (x ::ᵥ xs).toList

tactic: simp
state_before: case nil
α : Type u_1
β : Type u_2
n : ℕ
inst✝ : DecidableEq α
a : α
⊢ (filter (fun i => a = Vector.nil.get i) univ).card = List.count a Vector.nil.toList
state_after: no goals

tactic: simp_rw [card_filter_univ_succ', Vector.get_cons_zero, Vector.toList_cons, Function.comp,
  Vector.get_cons_succ, hxs, List.count_cons, add_comm (ite (a = x) 1 0)]
state_before: case cons
α : Type u_1
β : Type u_2
n✝ : ℕ
inst✝ : DecidableEq α
a : α
n : ℕ
x : α
xs : Vector α n
hxs : (filter (fun i => a = xs.get i) univ).card = List.count a xs.toList
⊢ (filter (fun i => a = (x ::ᵥ xs).get i) univ).card = List.count a (x ::ᵥ xs).toList
state_after: no goals
Theorem: Set.left_mem_Ioo
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: simp [lt_irrefl]
state_before: α : Type u_1
β : Type u_2
inst✝ : Preorder α
a a₁ a₂ b b₁ b₂ c x : α
⊢ a ∈ Ioo a b ↔ False
state_after: no goals
Theorem: DFinsupp.add_closure_iUnion_range_single
File: Mathlib/Data/DFinsupp/Basic.lean

tactic: apply DFinsupp.induction x
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → AddZeroClass (β i)
x : Π₀ (i : ι), β i
x✝ : x ∈ ⊤
⊢ x ∈ AddSubmonoid.closure (⋃ i, Set.range (single i))
state_after: case h0
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → AddZeroClass (β i)
x : Π₀ (i : ι), β i
x✝ : x ∈ ⊤
⊢ 0 ∈ AddSubmonoid.closure (⋃ i, Set.range (single i))

case ha
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → AddZeroClass (β i)
x : Π₀ (i : ι), β i
x✝ : x ∈ ⊤
⊢ ∀ (i : ι) (b : β i) (f : Π₀ (i : ι), β i),
    f i = 0 →
      b ≠ 0 →
        f ∈ AddSubmonoid.closure (⋃ i, Set.range (single i)) →
          single i b + f ∈ AddSubmonoid.closure (⋃ i, Set.range (single i))

tactic: exact fun a b f _ _ hf =>
  AddSubmonoid.add_mem _
    (AddSubmonoid.subset_closure <| Set.mem_iUnion.2 ⟨a, Set.mem_range_self _⟩) hf
state_before: case ha
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → AddZeroClass (β i)
x : Π₀ (i : ι), β i
x✝ : x ∈ ⊤
⊢ ∀ (i : ι) (b : β i) (f : Π₀ (i : ι), β i),
    f i = 0 →
      b ≠ 0 →
        f ∈ AddSubmonoid.closure (⋃ i, Set.range (single i)) →
          single i b + f ∈ AddSubmonoid.closure (⋃ i, Set.range (single i))
state_after: no goals

tactic: exact AddSubmonoid.zero_mem _
state_before: case h0
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → AddZeroClass (β i)
x : Π₀ (i : ι), β i
x✝ : x ∈ ⊤
⊢ 0 ∈ AddSubmonoid.closure (⋃ i, Set.range (single i))
state_after: no goals
Theorem: Set.toFinset_union
File: Mathlib/Data/Fintype/Basic.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
inst✝³ : DecidableEq α
inst✝² : Fintype ↑s
inst✝¹ : Fintype ↑t
inst✝ : Fintype ↑(s ∪ t)
⊢ (s ∪ t).toFinset = s.toFinset ∪ t.toFinset
state_after: case a
α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
inst✝³ : DecidableEq α
inst✝² : Fintype ↑s
inst✝¹ : Fintype ↑t
inst✝ : Fintype ↑(s ∪ t)
a✝ : α
⊢ a✝ ∈ (s ∪ t).toFinset ↔ a✝ ∈ s.toFinset ∪ t.toFinset

tactic: simp
state_before: case a
α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
inst✝³ : DecidableEq α
inst✝² : Fintype ↑s
inst✝¹ : Fintype ↑t
inst✝ : Fintype ↑(s ∪ t)
a✝ : α
⊢ a✝ ∈ (s ∪ t).toFinset ↔ a✝ ∈ s.toFinset ∪ t.toFinset
state_after: no goals
Theorem: Primrec.dom_bool₂
File: Mathlib/Computability/Primrec.lean

tactic: cases a <;> rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
σ : Type u_5
inst✝⁴ : Primcodable α
inst✝³ : Primcodable β
inst✝² : Primcodable γ
inst✝¹ : Primcodable δ
inst✝ : Primcodable σ
f : Bool → Bool → α
x✝ : Bool × Bool
a b : Bool
⊢ (bif (a, b).1 then f true (a, b).2 else f false (a, b).2) = f (a, b).1 (a, b).2
state_after: no goals
Theorem: Seminorm.closedBall_finset_sup'
File: Mathlib/Analysis/Seminorm.lean

tactic: induction H using Finset.Nonempty.cons_induction with
| singleton => simp
| cons _ _ _ hs ih =>
  rw [Finset.sup'_cons hs, Finset.inf'_cons hs, closedBall_sup]
  simp only [inf_eq_inter, ih]
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
H : s.Nonempty
e : E
r : ℝ
⊢ (s.sup' H p).closedBall e r = s.inf' H fun i => (p i).closedBall e r
state_after: no goals

tactic: simp
state_before: case singleton
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
e : E
r : ℝ
a✝ : ι
⊢ ({a✝}.sup' ⋯ p).closedBall e r = {a✝}.inf' ⋯ fun i => (p i).closedBall e r
state_after: no goals

tactic: rw [Finset.sup'_cons hs, Finset.inf'_cons hs, closedBall_sup]
state_before: case cons
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
e : E
r : ℝ
a✝ : ι
s✝ : Finset ι
h✝ : a✝ ∉ s✝
hs : s✝.Nonempty
ih : (s✝.sup' hs p).closedBall e r = s✝.inf' hs fun i => (p i).closedBall e r
⊢ ((Finset.cons a✝ s✝ h✝).sup' ⋯ p).closedBall e r = (Finset.cons a✝ s✝ h✝).inf' ⋯ fun i => (p i).closedBall e r
state_after: case cons
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
e : E
r : ℝ
a✝ : ι
s✝ : Finset ι
h✝ : a✝ ∉ s✝
hs : s✝.Nonempty
ih : (s✝.sup' hs p).closedBall e r = s✝.inf' hs fun i => (p i).closedBall e r
⊢ (p a✝).closedBall e r ∩ (s✝.sup' hs p).closedBall e r =
    (p a✝).closedBall e r ⊓ s✝.inf' hs fun i => (p i).closedBall e r

tactic: simp only [inf_eq_inter, ih]
state_before: case cons
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
e : E
r : ℝ
a✝ : ι
s✝ : Finset ι
h✝ : a✝ ∉ s✝
hs : s✝.Nonempty
ih : (s✝.sup' hs p).closedBall e r = s✝.inf' hs fun i => (p i).closedBall e r
⊢ (p a✝).closedBall e r ∩ (s✝.sup' hs p).closedBall e r =
    (p a✝).closedBall e r ⊓ s✝.inf' hs fun i => (p i).closedBall e r
state_after: no goals
Theorem: AffineMap.pi_ext_nonempty'
File: Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean

tactic: refine pi_ext_nonempty fun i x => ?_
state_before: R : Type u_1
k : Type u_2
V1 : Type u_3
P1 : Type u_4
V2 : Type u_5
P2 : Type u_6
V3 : Type u_7
P3 : Type u_8
inst✝¹⁵ : Ring k
inst✝¹⁴ : AddCommGroup V1
inst✝¹³ : AffineSpace V1 P1
inst✝¹² : AddCommGroup V2
inst✝¹¹ : AffineSpace V2 P2
inst✝¹⁰ : AddCommGroup V3
inst✝⁹ : AffineSpace V3 P3
inst✝⁸ : Module k V1
inst✝⁷ : Module k V2
inst✝⁶ : Module k V3
ι : Type u_9
φv : ι → Type u_10
φp : ι → Type u_11
inst✝⁵ : (i : ι) → AddCommGroup (φv i)
inst✝⁴ : (i : ι) → Module k (φv i)
inst✝³ : (i : ι) → AffineSpace (φv i) (φp i)
fp : (i : ι) → P1 →ᵃ[k] φp i
fv : (i : ι) → P1 →ᵃ[k] φv i
f' : ι → P1 →ᵃ[k] P2
inst✝² : Finite ι
inst✝¹ : DecidableEq ι
f g : ((i : ι) → φv i) →ᵃ[k] P2
inst✝ : Nonempty ι
h : ∀ (i : ι), f.comp (LinearMap.single i).toAffineMap = g.comp (LinearMap.single i).toAffineMap
⊢ f = g
state_after: R : Type u_1
k : Type u_2
V1 : Type u_3
P1 : Type u_4
V2 : Type u_5
P2 : Type u_6
V3 : Type u_7
P3 : Type u_8
inst✝¹⁵ : Ring k
inst✝¹⁴ : AddCommGroup V1
inst✝¹³ : AffineSpace V1 P1
inst✝¹² : AddCommGroup V2
inst✝¹¹ : AffineSpace V2 P2
inst✝¹⁰ : AddCommGroup V3
inst✝⁹ : AffineSpace V3 P3
inst✝⁸ : Module k V1
inst✝⁷ : Module k V2
inst✝⁶ : Module k V3
ι : Type u_9
φv : ι → Type u_10
φp : ι → Type u_11
inst✝⁵ : (i : ι) → AddCommGroup (φv i)
inst✝⁴ : (i : ι) → Module k (φv i)
inst✝³ : (i : ι) → AffineSpace (φv i) (φp i)
fp : (i : ι) → P1 →ᵃ[k] φp i
fv : (i : ι) → P1 →ᵃ[k] φv i
f' : ι → P1 →ᵃ[k] P2
inst✝² : Finite ι
inst✝¹ : DecidableEq ι
f g : ((i : ι) → φv i) →ᵃ[k] P2
inst✝ : Nonempty ι
h : ∀ (i : ι), f.comp (LinearMap.single i).toAffineMap = g.comp (LinearMap.single i).toAffineMap
i : ι
x : φv i
⊢ f (Pi.single i x) = g (Pi.single i x)

tactic: convert AffineMap.congr_fun (h i) x
state_before: R : Type u_1
k : Type u_2
V1 : Type u_3
P1 : Type u_4
V2 : Type u_5
P2 : Type u_6
V3 : Type u_7
P3 : Type u_8
inst✝¹⁵ : Ring k
inst✝¹⁴ : AddCommGroup V1
inst✝¹³ : AffineSpace V1 P1
inst✝¹² : AddCommGroup V2
inst✝¹¹ : AffineSpace V2 P2
inst✝¹⁰ : AddCommGroup V3
inst✝⁹ : AffineSpace V3 P3
inst✝⁸ : Module k V1
inst✝⁷ : Module k V2
inst✝⁶ : Module k V3
ι : Type u_9
φv : ι → Type u_10
φp : ι → Type u_11
inst✝⁵ : (i : ι) → AddCommGroup (φv i)
inst✝⁴ : (i : ι) → Module k (φv i)
inst✝³ : (i : ι) → AffineSpace (φv i) (φp i)
fp : (i : ι) → P1 →ᵃ[k] φp i
fv : (i : ι) → P1 →ᵃ[k] φv i
f' : ι → P1 →ᵃ[k] P2
inst✝² : Finite ι
inst✝¹ : DecidableEq ι
f g : ((i : ι) → φv i) →ᵃ[k] P2
inst✝ : Nonempty ι
h : ∀ (i : ι), f.comp (LinearMap.single i).toAffineMap = g.comp (LinearMap.single i).toAffineMap
i : ι
x : φv i
⊢ f (Pi.single i x) = g (Pi.single i x)
state_after: no goals
Theorem: coprime_sq_sub_mul
File: Mathlib/NumberTheory/PythagoreanTriples.lean

tactic: cases' hmn with h1 h2
state_before: m n : ℤ
h : m.gcd n = 1
hmn : m % 2 = 0 ∧ n % 2 = 1 ∨ m % 2 = 1 ∧ n % 2 = 0
⊢ (m ^ 2 - n ^ 2).gcd (2 * m * n) = 1
state_after: case inl
m n : ℤ
h : m.gcd n = 1
h1 : m % 2 = 0 ∧ n % 2 = 1
⊢ (m ^ 2 - n ^ 2).gcd (2 * m * n) = 1

case inr
m n : ℤ
h : m.gcd n = 1
h2 : m % 2 = 1 ∧ n % 2 = 0
⊢ (m ^ 2 - n ^ 2).gcd (2 * m * n) = 1

tactic: exact coprime_sq_sub_mul_of_even_odd h h1.left h1.right
state_before: case inl
m n : ℤ
h : m.gcd n = 1
h1 : m % 2 = 0 ∧ n % 2 = 1
⊢ (m ^ 2 - n ^ 2).gcd (2 * m * n) = 1
state_after: no goals

tactic: exact coprime_sq_sub_mul_of_odd_even h h2.left h2.right
state_before: case inr
m n : ℤ
h : m.gcd n = 1
h2 : m % 2 = 1 ∧ n % 2 = 0
⊢ (m ^ 2 - n ^ 2).gcd (2 * m * n) = 1
state_after: no goals
Theorem: MeasureTheory.Measure.QuasiMeasurePreserving.comp
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [← map_map hg.1 hf.1]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f✝¹ : α → β
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
g : β → γ
f : α → β
hg : QuasiMeasurePreserving g μb μc
hf : QuasiMeasurePreserving f μa μb
⊢ map (g ∘ f) μa ≪ μc
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f✝¹ : α → β
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
g : β → γ
f : α → β
hg : QuasiMeasurePreserving g μb μc
hf : QuasiMeasurePreserving f μa μb
⊢ map g (map f μa) ≪ μc

tactic: exact (hf.2.map hg.1).trans hg.2
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f✝¹ : α → β
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
g : β → γ
f : α → β
hg : QuasiMeasurePreserving g μb μc
hf : QuasiMeasurePreserving f μa μb
⊢ map g (map f μa) ≪ μc
state_after: no goals
Theorem: Function.Semiconj.injOn_preimage
File: Mathlib/Data/Set/Function.lean

tactic: intro x hx y hy H
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
fa : α → α
fb : β → β
f : α → β
g : β → γ
s✝ t : Set α
h : Semiconj f fa fb
s : Set β
hb : InjOn fb s
hf : InjOn f (f ⁻¹' s)
⊢ InjOn fa (f ⁻¹' s)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
fa : α → α
fb : β → β
f : α → β
g : β → γ
s✝ t : Set α
h : Semiconj f fa fb
s : Set β
hb : InjOn fb s
hf : InjOn f (f ⁻¹' s)
x : α
hx : x ∈ f ⁻¹' s
y : α
hy : y ∈ f ⁻¹' s
H : fa x = fa y
⊢ x = y

tactic: have := congr_arg f H
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
fa : α → α
fb : β → β
f : α → β
g : β → γ
s✝ t : Set α
h : Semiconj f fa fb
s : Set β
hb : InjOn fb s
hf : InjOn f (f ⁻¹' s)
x : α
hx : x ∈ f ⁻¹' s
y : α
hy : y ∈ f ⁻¹' s
H : fa x = fa y
⊢ x = y
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
fa : α → α
fb : β → β
f : α → β
g : β → γ
s✝ t : Set α
h : Semiconj f fa fb
s : Set β
hb : InjOn fb s
hf : InjOn f (f ⁻¹' s)
x : α
hx : x ∈ f ⁻¹' s
y : α
hy : y ∈ f ⁻¹' s
H : fa x = fa y
this : f (fa x) = f (fa y)
⊢ x = y

tactic: rw [h.eq, h.eq] at this
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
fa : α → α
fb : β → β
f : α → β
g : β → γ
s✝ t : Set α
h : Semiconj f fa fb
s : Set β
hb : InjOn fb s
hf : InjOn f (f ⁻¹' s)
x : α
hx : x ∈ f ⁻¹' s
y : α
hy : y ∈ f ⁻¹' s
H : fa x = fa y
this : f (fa x) = f (fa y)
⊢ x = y
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
fa : α → α
fb : β → β
f : α → β
g : β → γ
s✝ t : Set α
h : Semiconj f fa fb
s : Set β
hb : InjOn fb s
hf : InjOn f (f ⁻¹' s)
x : α
hx : x ∈ f ⁻¹' s
y : α
hy : y ∈ f ⁻¹' s
H : fa x = fa y
this : fb (f x) = fb (f y)
⊢ x = y

tactic: exact hf hx hy (hb hx hy this)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
fa : α → α
fb : β → β
f : α → β
g : β → γ
s✝ t : Set α
h : Semiconj f fa fb
s : Set β
hb : InjOn fb s
hf : InjOn f (f ⁻¹' s)
x : α
hx : x ∈ f ⁻¹' s
y : α
hy : y ∈ f ⁻¹' s
H : fa x = fa y
this : fb (f x) = fb (f y)
⊢ x = y
state_after: no goals
Theorem: one_lt_div'
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [← mul_lt_mul_iff_right b, one_mul, div_eq_mul_inv, inv_mul_cancel_right]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LT α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b c d : α
⊢ 1 < a / b ↔ b < a
state_after: no goals
Theorem: Matroid.Basis.basis_of_basis_of_subset_of_subset
File: Mathlib/Data/Matroid/Restrict.lean

tactic: have hI' := hI.basis_subset (subset_inter hI.subset hIY) inter_subset_left
state_before: α : Type u_1
M : Matroid α
R I J✝ X Y B J : Set α
e : α
hI : M.Basis I X
hJ : M.Basis J Y
hJX : J ⊆ X
hIY : I ⊆ Y
⊢ M.Basis I Y
state_after: α : Type u_1
M : Matroid α
R I J✝ X Y B J : Set α
e : α
hI : M.Basis I X
hJ : M.Basis J Y
hJX : J ⊆ X
hIY : I ⊆ Y
hI' : M.Basis I (X ∩ Y)
⊢ M.Basis I Y

tactic: have hJ' := hJ.basis_subset (subset_inter hJX hJ.subset) inter_subset_right
state_before: α : Type u_1
M : Matroid α
R I J✝ X Y B J : Set α
e : α
hI : M.Basis I X
hJ : M.Basis J Y
hJX : J ⊆ X
hIY : I ⊆ Y
hI' : M.Basis I (X ∩ Y)
⊢ M.Basis I Y
state_after: α : Type u_1
M : Matroid α
R I J✝ X Y B J : Set α
e : α
hI : M.Basis I X
hJ : M.Basis J Y
hJX : J ⊆ X
hIY : I ⊆ Y
hI' : M.Basis I (X ∩ Y)
hJ' : M.Basis J (X ∩ Y)
⊢ M.Basis I Y

tactic: exact hI'.transfer hJ' inter_subset_right hJ
state_before: α : Type u_1
M : Matroid α
R I J✝ X Y B J : Set α
e : α
hI : M.Basis I X
hJ : M.Basis J Y
hJX : J ⊆ X
hIY : I ⊆ Y
hI' : M.Basis I (X ∩ Y)
hJ' : M.Basis J (X ∩ Y)
⊢ M.Basis I Y
state_after: no goals
Theorem: Filter.coclosedCompact_eq_cocompact
File: Mathlib/Topology/Separation.lean

tactic: refine le_antisymm ?_ cocompact_le_coclosedCompact
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
⊢ coclosedCompact X = cocompact X
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
⊢ coclosedCompact X ≤ cocompact X

tactic: rw [hasBasis_coclosedCompact.le_basis_iff hasBasis_cocompact]
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
⊢ coclosedCompact X ≤ cocompact X
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
⊢ ∀ (i' : Set X), IsCompact i' → ∃ i, (IsClosed i ∧ IsCompact i) ∧ iᶜ ⊆ i'ᶜ

tactic: exact fun K hK ↦ ⟨closure K, ⟨isClosed_closure, hK.closure⟩, compl_subset_compl.2 subset_closure⟩
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
⊢ ∀ (i' : Set X), IsCompact i' → ∃ i, (IsClosed i ∧ IsCompact i) ∧ iᶜ ⊆ i'ᶜ
state_after: no goals