1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: OrderHom.lfp_lfp
File: Mathlib/Order/FixedPoints.lean

tactic: let a := lfp (lfp.comp h)
state_before: α : Type u
β : Type v
γ : Type w
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
f : β →o α
g : α →o β
h : α →o α →o α
⊢ lfp (lfp.comp h) = lfp h.onDiag
state_after: α : Type u
β : Type v
γ : Type w
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
f : β →o α
g : α →o β
h : α →o α →o α
a : α := lfp (lfp.comp h)
⊢ lfp (lfp.comp h) = lfp h.onDiag

tactic: refine (lfp_le _ ?_).antisymm (lfp_le _ (Eq.le ?_))
state_before: α : Type u
β : Type v
γ : Type w
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
f : β →o α
g : α →o β
h : α →o α →o α
a : α := lfp (lfp.comp h)
⊢ lfp (lfp.comp h) = lfp h.onDiag
state_after: case refine_1
α : Type u
β : Type v
γ : Type w
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
f : β →o α
g : α →o β
h : α →o α →o α
a : α := lfp (lfp.comp h)
⊢ (lfp.comp h) (lfp h.onDiag) ≤ lfp h.onDiag

case refine_2
α : Type u
β : Type v
γ : Type w
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
f : β →o α
g : α →o β
h : α →o α →o α
a : α := lfp (lfp.comp h)
⊢ h.onDiag (lfp (lfp.comp h)) = lfp (lfp.comp h)

tactic: have ha : (lfp ∘ h) a = a := (lfp.comp h).map_lfp
state_before: case refine_2
α : Type u
β : Type v
γ : Type w
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
f : β →o α
g : α →o β
h : α →o α →o α
a : α := lfp (lfp.comp h)
⊢ h.onDiag (lfp (lfp.comp h)) = lfp (lfp.comp h)
state_after: case refine_2
α : Type u
β : Type v
γ : Type w
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
f : β →o α
g : α →o β
h : α →o α →o α
a : α := lfp (lfp.comp h)
ha : (⇑lfp ∘ ⇑h) a = a
⊢ h.onDiag (lfp (lfp.comp h)) = lfp (lfp.comp h)

tactic: calc
  h a a = h a (lfp (h a)) := congr_arg (h a) ha.symm
  _ = lfp (h a) := (h a).map_lfp
  _ = a := ha
state_before: case refine_2
α : Type u
β : Type v
γ : Type w
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
f : β →o α
g : α →o β
h : α →o α →o α
a : α := lfp (lfp.comp h)
ha : (⇑lfp ∘ ⇑h) a = a
⊢ h.onDiag (lfp (lfp.comp h)) = lfp (lfp.comp h)
state_after: no goals

tactic: exact lfp_le _ h.onDiag.map_lfp.le
state_before: case refine_1
α : Type u
β : Type v
γ : Type w
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
f : β →o α
g : α →o β
h : α →o α →o α
a : α := lfp (lfp.comp h)
⊢ (lfp.comp h) (lfp h.onDiag) ≤ lfp h.onDiag
state_after: no goals
Theorem: Submodule.IsOrtho.comap_iff
File: Mathlib/Analysis/InnerProductSpace/Orthogonal.lean

tactic: have hf : ∀ p : Submodule 𝕜 F, (p.comap f).map f.toLinearIsometry = p :=
  map_comap_eq_of_surjective f.surjective
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
f : E ≃ₗᵢ[𝕜] F
U V : Submodule 𝕜 F
h : Submodule.comap f U ⟂ Submodule.comap f V
⊢ U ⟂ V
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
f : E ≃ₗᵢ[𝕜] F
U V : Submodule 𝕜 F
h : Submodule.comap f U ⟂ Submodule.comap f V
hf : ∀ (p : Submodule 𝕜 F), Submodule.map f.toLinearIsometry (Submodule.comap f p) = p
⊢ U ⟂ V

tactic: simpa only [hf] using h.map f.toLinearIsometry
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
f : E ≃ₗᵢ[𝕜] F
U V : Submodule 𝕜 F
h : Submodule.comap f U ⟂ Submodule.comap f V
hf : ∀ (p : Submodule 𝕜 F), Submodule.map f.toLinearIsometry (Submodule.comap f p) = p
⊢ U ⟂ V
state_after: no goals
Theorem: GeneralizedContinuedFraction.succ_nth_fib_le_of_nth_denom
File: Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean

tactic: rw [denom_eq_conts_b, nth_cont_eq_succ_nth_cont_aux]
state_before: K : Type u_1
v : K
n : ℕ
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
hyp : n = 0 ∨ ¬(of v).TerminatedAt (n - 1)
⊢ ↑(fib (n + 1)) ≤ (of v).denominators n
state_after: K : Type u_1
v : K
n : ℕ
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
hyp : n = 0 ∨ ¬(of v).TerminatedAt (n - 1)
⊢ ↑(fib (n + 1)) ≤ ((of v).continuantsAux (n + 1)).b

tactic: have : n + 1 ≤ 1 ∨ ¬(of v).TerminatedAt (n - 1) := by
  cases n with
  | zero => exact Or.inl <| le_refl 1
  | succ n => exact Or.inr (Or.resolve_left hyp n.succ_ne_zero)
state_before: K : Type u_1
v : K
n : ℕ
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
hyp : n = 0 ∨ ¬(of v).TerminatedAt (n - 1)
⊢ ↑(fib (n + 1)) ≤ ((of v).continuantsAux (n + 1)).b
state_after: K : Type u_1
v : K
n : ℕ
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
hyp : n = 0 ∨ ¬(of v).TerminatedAt (n - 1)
this : n + 1 ≤ 1 ∨ ¬(of v).TerminatedAt (n - 1)
⊢ ↑(fib (n + 1)) ≤ ((of v).continuantsAux (n + 1)).b

tactic: exact fib_le_of_continuantsAux_b this
state_before: K : Type u_1
v : K
n : ℕ
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
hyp : n = 0 ∨ ¬(of v).TerminatedAt (n - 1)
this : n + 1 ≤ 1 ∨ ¬(of v).TerminatedAt (n - 1)
⊢ ↑(fib (n + 1)) ≤ ((of v).continuantsAux (n + 1)).b
state_after: no goals

tactic: cases n with
| zero => exact Or.inl <| le_refl 1
| succ n => exact Or.inr (Or.resolve_left hyp n.succ_ne_zero)
state_before: K : Type u_1
v : K
n : ℕ
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
hyp : n = 0 ∨ ¬(of v).TerminatedAt (n - 1)
⊢ n + 1 ≤ 1 ∨ ¬(of v).TerminatedAt (n - 1)
state_after: no goals

tactic: exact Or.inl <| le_refl 1
state_before: case zero
K : Type u_1
v : K
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
hyp : 0 = 0 ∨ ¬(of v).TerminatedAt (0 - 1)
⊢ 0 + 1 ≤ 1 ∨ ¬(of v).TerminatedAt (0 - 1)
state_after: no goals

tactic: exact Or.inr (Or.resolve_left hyp n.succ_ne_zero)
state_before: case succ
K : Type u_1
v : K
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
n : ℕ
hyp : n + 1 = 0 ∨ ¬(of v).TerminatedAt (n + 1 - 1)
⊢ n + 1 + 1 ≤ 1 ∨ ¬(of v).TerminatedAt (n + 1 - 1)
state_after: no goals
Theorem: spectrum.pow_norm_pow_one_div_tendsto_nhds_spectralRadius
File: Mathlib/Analysis/NormedSpace/Spectrum.lean

tactic: convert pow_nnnorm_pow_one_div_tendsto_nhds_spectralRadius a using 1
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : CompleteSpace A
a : A
⊢ Tendsto (fun n => ENNReal.ofReal (‖a ^ n‖ ^ (1 / ↑n))) atTop (𝓝 (spectralRadius ℂ a))
state_after: case h.e'_3
𝕜 : Type u_1
A : Type u_2
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : CompleteSpace A
a : A
⊢ (fun n => ENNReal.ofReal (‖a ^ n‖ ^ (1 / ↑n))) = fun n => ↑‖a ^ n‖₊ ^ (1 / ↑n)

tactic: ext1
state_before: case h.e'_3
𝕜 : Type u_1
A : Type u_2
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : CompleteSpace A
a : A
⊢ (fun n => ENNReal.ofReal (‖a ^ n‖ ^ (1 / ↑n))) = fun n => ↑‖a ^ n‖₊ ^ (1 / ↑n)
state_after: case h.e'_3.h
𝕜 : Type u_1
A : Type u_2
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : CompleteSpace A
a : A
x✝ : ℕ
⊢ ENNReal.ofReal (‖a ^ x✝‖ ^ (1 / ↑x✝)) = ↑‖a ^ x✝‖₊ ^ (1 / ↑x✝)

tactic: rw [← ofReal_rpow_of_nonneg (norm_nonneg _) _, ← coe_nnnorm, coe_nnreal_eq]
state_before: case h.e'_3.h
𝕜 : Type u_1
A : Type u_2
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : CompleteSpace A
a : A
x✝ : ℕ
⊢ ENNReal.ofReal (‖a ^ x✝‖ ^ (1 / ↑x✝)) = ↑‖a ^ x✝‖₊ ^ (1 / ↑x✝)
state_after: 𝕜 : Type u_1
A : Type u_2
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : CompleteSpace A
a : A
x✝ : ℕ
⊢ 0 ≤ 1 / ↑x✝

tactic: exact one_div_nonneg.mpr (mod_cast zero_le _)
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : CompleteSpace A
a : A
x✝ : ℕ
⊢ 0 ≤ 1 / ↑x✝
state_after: no goals
Theorem: Polynomial.monomial_mul_X
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: erw [monomial_mul_monomial, mul_one]
state_before: R : Type u
a b : R
m n✝ : ℕ
inst✝ : Semiring R
p q : R[X]
n : ℕ
r : R
⊢ (monomial n) r * X = (monomial (n + 1)) r
state_after: no goals
Theorem: Ordinal.one_nmul
File: Mathlib/SetTheory/Ordinal/NaturalOps.lean

tactic: rw [nmul_comm, nmul_one]
state_before: a✝ b c d : Ordinal.{u}
a : Ordinal.{u_1}
⊢ 1 ⨳ a = a
state_after: no goals
Theorem: Infinite.of_injective_to_set
File: Mathlib/Data/Fintype/Card.lean

tactic: classical
  refine lt_irrefl (Fintype.card α) ?_
  calc
    Fintype.card α ≤ Fintype.card s := Fintype.card_le_of_injective f hf
    _ = s.toFinset.card := s.toFinset_card.symm
    _ < Fintype.card α :=
      Finset.card_lt_card <| by rwa [Set.toFinset_ssubset_univ, Set.ssubset_univ_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s : Set α
hs : s ≠ Set.univ
f : α → ↑s
hf : Injective f
h : Fintype α
⊢ False
state_after: no goals

tactic: refine lt_irrefl (Fintype.card α) ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s : Set α
hs : s ≠ Set.univ
f : α → ↑s
hf : Injective f
h : Fintype α
⊢ False
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
s : Set α
hs : s ≠ Set.univ
f : α → ↑s
hf : Injective f
h : Fintype α
⊢ Fintype.card α < Fintype.card α

tactic: calc
  Fintype.card α ≤ Fintype.card s := Fintype.card_le_of_injective f hf
  _ = s.toFinset.card := s.toFinset_card.symm
  _ < Fintype.card α :=
    Finset.card_lt_card <| by rwa [Set.toFinset_ssubset_univ, Set.ssubset_univ_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s : Set α
hs : s ≠ Set.univ
f : α → ↑s
hf : Injective f
h : Fintype α
⊢ Fintype.card α < Fintype.card α
state_after: no goals

tactic: rwa [Set.toFinset_ssubset_univ, Set.ssubset_univ_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s : Set α
hs : s ≠ Set.univ
f : α → ↑s
hf : Injective f
h : Fintype α
⊢ s.toFinset ⊂ univ
state_after: no goals
Theorem: MeasureTheory.measure_symmDiff_eq_zero_iff
File: Mathlib/MeasureTheory/OuterMeasure/AE.lean

tactic: simp [ae_eq_set, symmDiff_def]
state_before: α : Type u_1
β : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ : F
s✝ t✝ s t : Set α
⊢ μ (s ∆ t) = 0 ↔ s =ᶠ[ae μ] t
state_after: no goals
Theorem: Polynomial.leadingCoeff_C_mul_X
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: simpa only [pow_one] using leadingCoeff_C_mul_X_pow a 1
state_before: R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ p q : R[X]
ι : Type u_1
a : R
⊢ (C a * X).leadingCoeff = a
state_after: no goals
Theorem: LieDerivation.ad_isIdealMorphism
File: Mathlib/Algebra/Lie/Derivation/AdjointAction.lean

tactic: simp_rw [LieHom.isIdealMorphism_iff, lie_der_ad_eq_ad_der]
state_before: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
⊢ (ad R L).IsIdealMorphism
state_after: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
⊢ ∀ (x : LieDerivation R L L) (y : L), ∃ z, (ad R L) (x y) = (ad R L) z

tactic: tauto
state_before: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
⊢ ∀ (x : LieDerivation R L L) (y : L), ∃ z, (ad R L) (x y) = (ad R L) z
state_after: no goals
Theorem: suffixLevenshtein_nil_nil
File: Mathlib/Data/List/EditDistance/Defs.lean

tactic: rfl
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
inst✝¹ : AddZeroClass δ
inst✝ : Min δ
C : Cost α β δ
⊢ (suffixLevenshtein C [] []).val = [0]
state_after: no goals
Theorem: Matrix.rank_unit
File: Mathlib/Data/Matrix/Rank.lean

tactic: apply le_antisymm (rank_le_card_width (A : Matrix n n R)) _
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommRing R
inst✝¹ : StrongRankCondition R
inst✝ : DecidableEq n
A : (Matrix n n R)ˣ
⊢ (↑A).rank = Fintype.card n
state_after: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommRing R
inst✝¹ : StrongRankCondition R
inst✝ : DecidableEq n
A : (Matrix n n R)ˣ
⊢ Fintype.card n ≤ (↑A).rank

tactic: have := rank_mul_le_left (A : Matrix n n R) (↑A⁻¹ : Matrix n n R)
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommRing R
inst✝¹ : StrongRankCondition R
inst✝ : DecidableEq n
A : (Matrix n n R)ˣ
⊢ Fintype.card n ≤ (↑A).rank
state_after: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommRing R
inst✝¹ : StrongRankCondition R
inst✝ : DecidableEq n
A : (Matrix n n R)ˣ
this : (↑A * ↑A⁻¹).rank ≤ (↑A).rank
⊢ Fintype.card n ≤ (↑A).rank

tactic: rwa [← Units.val_mul, mul_inv_self, Units.val_one, rank_one] at this
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommRing R
inst✝¹ : StrongRankCondition R
inst✝ : DecidableEq n
A : (Matrix n n R)ˣ
this : (↑A * ↑A⁻¹).rank ≤ (↑A).rank
⊢ Fintype.card n ≤ (↑A).rank
state_after: no goals
Theorem: Multiset.coe_join
File: Mathlib/Data/Multiset/Bind.lean

tactic: exact congr_arg (fun s : Multiset α => ↑l + s) (coe_join L)
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
l : List α
L : List (List α)
⊢ (↑(List.map ofList (l :: L))).join = ↑(l :: L).join
state_after: no goals
Theorem: Nat.mono_cast
File: Mathlib/Data/Nat/Cast/Order.lean

tactic: rw [Nat.cast_succ]
state_before: α : Type u_1
β : Type u_2
inst✝³ : AddMonoidWithOne α
inst✝² : PartialOrder α
inst✝¹ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝ : ZeroLEOneClass α
n : ℕ
⊢ ↑n ≤ ↑(n + 1)
state_after: α : Type u_1
β : Type u_2
inst✝³ : AddMonoidWithOne α
inst✝² : PartialOrder α
inst✝¹ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝ : ZeroLEOneClass α
n : ℕ
⊢ ↑n ≤ ↑n + 1

tactic: exact le_add_of_nonneg_right zero_le_one
state_before: α : Type u_1
β : Type u_2
inst✝³ : AddMonoidWithOne α
inst✝² : PartialOrder α
inst✝¹ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝ : ZeroLEOneClass α
n : ℕ
⊢ ↑n ≤ ↑n + 1
state_after: no goals
Theorem: ProbabilityTheory.condKernel_const
File: Mathlib/Probability/Kernel/Disintegration/Unique.lean

tactic: have h := kernel.condKernel_apply_eq_condKernel (kernel.const α ρ) a
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : CountableOrCountablyGenerated α β
ρ : Measure (β × Ω)
inst✝ : IsFiniteMeasure ρ
a : α
⊢ (fun b => (kernel.condKernel (kernel.const α ρ)) (a, b)) =ᶠ[ae ρ.fst] ⇑ρ.condKernel
state_after: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : CountableOrCountablyGenerated α β
ρ : Measure (β × Ω)
inst✝ : IsFiniteMeasure ρ
a : α
h :
  (fun b => (kernel.condKernel (kernel.const α ρ)) (a, b)) =ᶠ[ae ((kernel.fst (kernel.const α ρ)) a)]
    ⇑((kernel.const α ρ) a).condKernel
⊢ (fun b => (kernel.condKernel (kernel.const α ρ)) (a, b)) =ᶠ[ae ρ.fst] ⇑ρ.condKernel

tactic: simp_rw [kernel.fst_apply, kernel.const_apply] at h
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : CountableOrCountablyGenerated α β
ρ : Measure (β × Ω)
inst✝ : IsFiniteMeasure ρ
a : α
h :
  (fun b => (kernel.condKernel (kernel.const α ρ)) (a, b)) =ᶠ[ae ((kernel.fst (kernel.const α ρ)) a)]
    ⇑((kernel.const α ρ) a).condKernel
⊢ (fun b => (kernel.condKernel (kernel.const α ρ)) (a, b)) =ᶠ[ae ρ.fst] ⇑ρ.condKernel
state_after: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : CountableOrCountablyGenerated α β
ρ : Measure (β × Ω)
inst✝ : IsFiniteMeasure ρ
a : α
h : (fun b => (kernel.condKernel (kernel.const α ρ)) (a, b)) =ᶠ[ae (Measure.map Prod.fst ρ)] ⇑ρ.condKernel
⊢ (fun b => (kernel.condKernel (kernel.const α ρ)) (a, b)) =ᶠ[ae ρ.fst] ⇑ρ.condKernel

tactic: filter_upwards [h] with b hb using hb
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : CountableOrCountablyGenerated α β
ρ : Measure (β × Ω)
inst✝ : IsFiniteMeasure ρ
a : α
h : (fun b => (kernel.condKernel (kernel.const α ρ)) (a, b)) =ᶠ[ae (Measure.map Prod.fst ρ)] ⇑ρ.condKernel
⊢ (fun b => (kernel.condKernel (kernel.const α ρ)) (a, b)) =ᶠ[ae ρ.fst] ⇑ρ.condKernel
state_after: no goals
Theorem: Finset.card_compl_add_card
File: Mathlib/Data/Fintype/Card.lean

tactic: rw [add_comm, card_add_card_compl]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : DecidableEq α
inst✝ : Fintype α
s : Finset α
⊢ sᶜ.card + s.card = Fintype.card α
state_after: no goals
Theorem: UniformConcaveOn.add
File: Mathlib/Analysis/Convex/Strong.lean

tactic: refine ⟨hf.1, fun x hx y hy a b ha hb hab ↦ ?_⟩
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
φ ψ : ℝ → ℝ
s : Set E
a b m : ℝ
x y : E
f g : E → ℝ
hf : UniformConcaveOn s φ f
hg : UniformConcaveOn s ψ g
⊢ UniformConcaveOn s (φ + ψ) (f + g)
state_after: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
φ ψ : ℝ → ℝ
s : Set E
a✝ b✝ m : ℝ
x✝ y✝ : E
f g : E → ℝ
hf : UniformConcaveOn s φ f
hg : UniformConcaveOn s ψ g
x : E
hx : x ∈ s
y : E
hy : y ∈ s
a b : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • (f + g) x + b • (f + g) y + a * b * (φ + ψ) ‖x - y‖ ≤ (f + g) (a • x + b • y)

tactic: simpa [mul_add, add_add_add_comm] using add_le_add (hf.2 hx hy ha hb hab) (hg.2 hx hy ha hb hab)
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
φ ψ : ℝ → ℝ
s : Set E
a✝ b✝ m : ℝ
x✝ y✝ : E
f g : E → ℝ
hf : UniformConcaveOn s φ f
hg : UniformConcaveOn s ψ g
x : E
hx : x ∈ s
y : E
hy : y ∈ s
a b : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • (f + g) x + b • (f + g) y + a * b * (φ + ψ) ‖x - y‖ ≤ (f + g) (a • x + b • y)
state_after: no goals
Theorem: quasiIso_of_arrow_mk_iso
File: Mathlib/Algebra/Homology/QuasiIso.lean

tactic: simpa only [← quasiIso_iff_of_arrow_mk_iso φ φ' e]
state_before: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁵ : Category.{v, u} C
inst✝⁴ : HasZeroMorphisms C
c : ComplexShape ι
K L M K' L' : HomologicalComplex C c
φ : K ⟶ L
φ' : K' ⟶ L'
e : Arrow.mk φ ≅ Arrow.mk φ'
inst✝³ : ∀ (i : ι), K.HasHomology i
inst✝² : ∀ (i : ι), L.HasHomology i
inst✝¹ : ∀ (i : ι), K'.HasHomology i
inst✝ : ∀ (i : ι), L'.HasHomology i
hφ : QuasiIso φ
⊢ QuasiIso φ'
state_after: no goals
Theorem: MeasureTheory.supermartingale_of_setIntegral_succ_le
File: Mathlib/Probability/Martingale/Basic.lean

tactic: rw [← neg_neg f]
state_before: Ω : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : Preorder ι
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
f✝ g : ι → Ω → E
ℱ : Filtration ι m0
𝒢 : Filtration ℕ m0
inst✝ : IsFiniteMeasure μ
f : ℕ → Ω → ℝ
hadp : Adapted 𝒢 f
hint : ∀ (i : ℕ), Integrable (f i) μ
hf : ∀ (i : ℕ) (s : Set Ω), MeasurableSet s → ∫ (ω : Ω) in s, f (i + 1) ω ∂μ ≤ ∫ (ω : Ω) in s, f i ω ∂μ
⊢ Supermartingale f 𝒢 μ
state_after: Ω : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : Preorder ι
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
f✝ g : ι → Ω → E
ℱ : Filtration ι m0
𝒢 : Filtration ℕ m0
inst✝ : IsFiniteMeasure μ
f : ℕ → Ω → ℝ
hadp : Adapted 𝒢 f
hint : ∀ (i : ℕ), Integrable (f i) μ
hf : ∀ (i : ℕ) (s : Set Ω), MeasurableSet s → ∫ (ω : Ω) in s, f (i + 1) ω ∂μ ≤ ∫ (ω : Ω) in s, f i ω ∂μ
⊢ Supermartingale (- -f) 𝒢 μ

tactic: refine (submartingale_of_setIntegral_le_succ hadp.neg (fun i => (hint i).neg) ?_).neg
state_before: Ω : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : Preorder ι
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
f✝ g : ι → Ω → E
ℱ : Filtration ι m0
𝒢 : Filtration ℕ m0
inst✝ : IsFiniteMeasure μ
f : ℕ → Ω → ℝ
hadp : Adapted 𝒢 f
hint : ∀ (i : ℕ), Integrable (f i) μ
hf : ∀ (i : ℕ) (s : Set Ω), MeasurableSet s → ∫ (ω : Ω) in s, f (i + 1) ω ∂μ ≤ ∫ (ω : Ω) in s, f i ω ∂μ
⊢ Supermartingale (- -f) 𝒢 μ
state_after: Ω : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : Preorder ι
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
f✝ g : ι → Ω → E
ℱ : Filtration ι m0
𝒢 : Filtration ℕ m0
inst✝ : IsFiniteMeasure μ
f : ℕ → Ω → ℝ
hadp : Adapted 𝒢 f
hint : ∀ (i : ℕ), Integrable (f i) μ
hf : ∀ (i : ℕ) (s : Set Ω), MeasurableSet s → ∫ (ω : Ω) in s, f (i + 1) ω ∂μ ≤ ∫ (ω : Ω) in s, f i ω ∂μ
⊢ ∀ (i : ℕ) (s : Set Ω), MeasurableSet s → ∫ (ω : Ω) in s, (-f) i ω ∂μ ≤ ∫ (ω : Ω) in s, (-f) (i + 1) ω ∂μ

tactic: simpa only [integral_neg, Pi.neg_apply, neg_le_neg_iff]
state_before: Ω : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : Preorder ι
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
f✝ g : ι → Ω → E
ℱ : Filtration ι m0
𝒢 : Filtration ℕ m0
inst✝ : IsFiniteMeasure μ
f : ℕ → Ω → ℝ
hadp : Adapted 𝒢 f
hint : ∀ (i : ℕ), Integrable (f i) μ
hf : ∀ (i : ℕ) (s : Set Ω), MeasurableSet s → ∫ (ω : Ω) in s, f (i + 1) ω ∂μ ≤ ∫ (ω : Ω) in s, f i ω ∂μ
⊢ ∀ (i : ℕ) (s : Set Ω), MeasurableSet s → ∫ (ω : Ω) in s, (-f) i ω ∂μ ≤ ∫ (ω : Ω) in s, (-f) (i + 1) ω ∂μ
state_after: no goals
Theorem: MeasureTheory.Measure.toSignedMeasure_add
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: ext i hi
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
⊢ (μ + ν).toSignedMeasure = μ.toSignedMeasure + ν.toSignedMeasure
state_after: case h
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
i : Set α
hi : MeasurableSet i
⊢ ↑(μ + ν).toSignedMeasure i = ↑(μ.toSignedMeasure + ν.toSignedMeasure) i

tactic: rw [toSignedMeasure_apply_measurable hi, add_apply,
  ENNReal.toReal_add (ne_of_lt (measure_lt_top _ _)) (ne_of_lt (measure_lt_top _ _)),
  VectorMeasure.add_apply, toSignedMeasure_apply_measurable hi,
  toSignedMeasure_apply_measurable hi]
state_before: case h
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
i : Set α
hi : MeasurableSet i
⊢ ↑(μ + ν).toSignedMeasure i = ↑(μ.toSignedMeasure + ν.toSignedMeasure) i
state_after: no goals
Theorem: lowerClosure_mul
File: Mathlib/Algebra/Order/UpperLower.lean

tactic: simp_rw [mul_comm _ t]
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
s t : Set α
a : α
⊢ ↑(lowerClosure s) * t = ↑(lowerClosure (s * t))
state_after: α : Type u_1
inst✝ : OrderedCommGroup α
s t : Set α
a : α
⊢ t * ↑(lowerClosure s) = ↑(lowerClosure (t * s))

tactic: exact mul_lowerClosure _ _
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
s t : Set α
a : α
⊢ t * ↑(lowerClosure s) = ↑(lowerClosure (t * s))
state_after: no goals