ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Monovary.sum_smul_comp_perm_le_sum_smul
theorem Monovary.sum_smul_comp_perm_le_sum_smul (hfg : Monovary f g) :
    ∑ i, f i • g (σ i) ≤ ∑ i, f i • g i 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [LinearOrderedRing α] [LinearOrderedAddCommGroup β] [Module α β] [OrderedSMul α β] {σ : Equiv.Perm ι} {f : ι → α} {g : ι → β} [Fintype ι] (hfg : Monovary f g)
Goal: ∑ i : ι, f i • g (σ i) ≤ ∑ i : ι, f i • g i
-- Monovary.sum_smul_comp_perm_eq_sum_smul_iff
theorem Monovary.sum_smul_comp_perm_eq_sum_smul_iff (hfg : Monovary f g) :
    ∑ i, f i • g (σ i) = ∑ i, f i • g i ↔ Monovary f (g ∘ σ) 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [LinearOrderedRing α] [LinearOrderedAddCommGroup β] [Module α β] [OrderedSMul α β] {σ : Equiv.Perm ι} {f : ι → α} {g : ι → β} [Fintype ι] (hfg : Monovary f g)
Goal: ∑ i : ι, f i • g (σ i) = ∑ i : ι, f i • g i ↔ Monovary f (g ∘ ⇑σ)
-- Monovary.sum_smul_comp_perm_lt_sum_smul_iff
theorem Monovary.sum_smul_comp_perm_lt_sum_smul_iff (hfg : Monovary f g) :
    ∑ i, f i • g (σ i) < ∑ i, f i • g i ↔ ¬Monovary f (g ∘ σ) 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [LinearOrderedRing α] [LinearOrderedAddCommGroup β] [Module α β] [OrderedSMul α β] {σ : Equiv.Perm ι} {f : ι → α} {g : ι → β} [Fintype ι] (hfg : Monovary f g)
Goal: ∑ i : ι, f i • g (σ i) < ∑ i : ι, f i • g i ↔ ¬Monovary f (g ∘ ⇑σ)
-- Monovary.sum_comp_perm_smul_le_sum_smul
theorem Monovary.sum_comp_perm_smul_le_sum_smul (hfg : Monovary f g) :
    ∑ i, f (σ i) • g i ≤ ∑ i, f i • g i 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [LinearOrderedRing α] [LinearOrderedAddCommGroup β] [Module α β] [OrderedSMul α β] {σ : Equiv.Perm ι} {f : ι → α} {g : ι → β} [Fintype ι] (hfg : Monovary f g)
Goal: ∑ i : ι, f (σ i) • g i ≤ ∑ i : ι, f i • g i
-- Monovary.sum_comp_perm_smul_eq_sum_smul_iff
theorem Monovary.sum_comp_perm_smul_eq_sum_smul_iff (hfg : Monovary f g) :
    ∑ i, f (σ i) • g i = ∑ i, f i • g i ↔ Monovary (f ∘ σ) g 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [LinearOrderedRing α] [LinearOrderedAddCommGroup β] [Module α β] [OrderedSMul α β] {σ : Equiv.Perm ι} {f : ι → α} {g : ι → β} [Fintype ι] (hfg : Monovary f g)
Goal: ∑ i : ι, f (σ i) • g i = ∑ i : ι, f i • g i ↔ Monovary (f ∘ ⇑σ) g
-- Monovary.sum_comp_perm_smul_lt_sum_smul_iff
theorem Monovary.sum_comp_perm_smul_lt_sum_smul_iff (hfg : Monovary f g) :
    ∑ i, f (σ i) • g i < ∑ i, f i • g i ↔ ¬Monovary (f ∘ σ) g 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [LinearOrderedRing α] [LinearOrderedAddCommGroup β] [Module α β] [OrderedSMul α β] {σ : Equiv.Perm ι} {f : ι → α} {g : ι → β} [Fintype ι] (hfg : Monovary f g)
Goal: ∑ i : ι, f (σ i) • g i < ∑ i : ι, f i • g i ↔ ¬Monovary (f ∘ ⇑σ) g
-- Antivary.sum_smul_le_sum_smul_comp_perm
theorem Antivary.sum_smul_le_sum_smul_comp_perm (hfg : Antivary f g) :
    ∑ i, f i • g i ≤ ∑ i, f i • g (σ i) 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [LinearOrderedRing α] [LinearOrderedAddCommGroup β] [Module α β] [OrderedSMul α β] {σ : Equiv.Perm ι} {f : ι → α} {g : ι → β} [Fintype ι] (hfg : Antivary f g)
Goal: ∑ i : ι, f i • g i ≤ ∑ i : ι, f i • g (σ i)
-- Antivary.sum_smul_comp_perm_eq_sum_smul_iff
theorem Antivary.sum_smul_comp_perm_eq_sum_smul_iff (hfg : Antivary f g) :
    ∑ i, f i • g (σ i) = ∑ i, f i • g i ↔ Antivary f (g ∘ σ) 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [LinearOrderedRing α] [LinearOrderedAddCommGroup β] [Module α β] [OrderedSMul α β] {σ : Equiv.Perm ι} {f : ι → α} {g : ι → β} [Fintype ι] (hfg : Antivary f g)
Goal: ∑ i : ι, f i • g (σ i) = ∑ i : ι, f i • g i ↔ Antivary f (g ∘ ⇑σ)
-- Antivary.sum_smul_lt_sum_smul_comp_perm_iff
theorem Antivary.sum_smul_lt_sum_smul_comp_perm_iff (hfg : Antivary f g) :
    ∑ i, f i • g i < ∑ i, f i • g (σ i) ↔ ¬Antivary f (g ∘ σ) 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [LinearOrderedRing α] [LinearOrderedAddCommGroup β] [Module α β] [OrderedSMul α β] {σ : Equiv.Perm ι} {f : ι → α} {g : ι → β} [Fintype ι] (hfg : Antivary f g)
Goal: ∑ i : ι, f i • g i < ∑ i : ι, f i • g (σ i) ↔ ¬Antivary f (g ∘ ⇑σ)
-- Antivary.sum_smul_le_sum_comp_perm_smul
theorem Antivary.sum_smul_le_sum_comp_perm_smul (hfg : Antivary f g) :
    ∑ i, f i • g i ≤ ∑ i, f (σ i) • g i 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [LinearOrderedRing α] [LinearOrderedAddCommGroup β] [Module α β] [OrderedSMul α β] {σ : Equiv.Perm ι} {f : ι → α} {g : ι → β} [Fintype ι] (hfg : Antivary f g)
Goal: ∑ i : ι, f i • g i ≤ ∑ i : ι, f (σ i) • g i
-- Antivary.sum_comp_perm_smul_eq_sum_smul_iff
theorem Antivary.sum_comp_perm_smul_eq_sum_smul_iff (hfg : Antivary f g) :
    ∑ i, f (σ i) • g i = ∑ i, f i • g i ↔ Antivary (f ∘ σ) g 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [LinearOrderedRing α] [LinearOrderedAddCommGroup β] [Module α β] [OrderedSMul α β] {σ : Equiv.Perm ι} {f : ι → α} {g : ι → β} [Fintype ι] (hfg : Antivary f g)
Goal: ∑ i : ι, f (σ i) • g i = ∑ i : ι, f i • g i ↔ Antivary (f ∘ ⇑σ) g
-- Antivary.sum_smul_lt_sum_comp_perm_smul_iff
theorem Antivary.sum_smul_lt_sum_comp_perm_smul_iff (hfg : Antivary f g) :
    ∑ i, f i • g i < ∑ i, f (σ i) • g i ↔ ¬Antivary (f ∘ σ) g 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [LinearOrderedRing α] [LinearOrderedAddCommGroup β] [Module α β] [OrderedSMul α β] {σ : Equiv.Perm ι} {f : ι → α} {g : ι → β} [Fintype ι] (hfg : Antivary f g)
Goal: ∑ i : ι, f i • g i < ∑ i : ι, f (σ i) • g i ↔ ¬Antivary (f ∘ ⇑σ) g
-- MonovaryOn.sum_mul_comp_perm_le_sum_mul
theorem MonovaryOn.sum_mul_comp_perm_le_sum_mul (hfg : MonovaryOn f g s)
    (hσ : {x | σ x ≠ x} ⊆ s) : ∑ i ∈ s, f i * g (σ i) ≤ ∑ i ∈ s, f i * g i 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {s : Finset ι} {σ : Equiv.Perm ι} {f g : ι → α} (hfg : MonovaryOn f g ↑s) (hσ : {x | σ x ≠ x} ⊆ ↑s)
Goal: ∑ i ∈ s, f i * g (σ i) ≤ ∑ i ∈ s, f i * g i
-- MonovaryOn.sum_mul_comp_perm_eq_sum_mul_iff
theorem MonovaryOn.sum_mul_comp_perm_eq_sum_mul_iff (hfg : MonovaryOn f g s)
    (hσ : {x | σ x ≠ x} ⊆ s) :
    ∑ i ∈ s, f i * g (σ i) = ∑ i ∈ s, f i * g i ↔ MonovaryOn f (g ∘ σ) s 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {s : Finset ι} {σ : Equiv.Perm ι} {f g : ι → α} (hfg : MonovaryOn f g ↑s) (hσ : {x | σ x ≠ x} ⊆ ↑s)
Goal: ∑ i ∈ s, f i * g (σ i) = ∑ i ∈ s, f i * g i ↔ MonovaryOn f (g ∘ ⇑σ) ↑s
-- MonovaryOn.sum_mul_comp_perm_lt_sum_mul_iff
theorem MonovaryOn.sum_mul_comp_perm_lt_sum_mul_iff (hfg : MonovaryOn f g s)
    (hσ : {x | σ x ≠ x} ⊆ s) :
    ∑ i ∈ s, f i • g (σ i) < ∑ i ∈ s, f i • g i ↔ ¬MonovaryOn f (g ∘ σ) s 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {s : Finset ι} {σ : Equiv.Perm ι} {f g : ι → α} (hfg : MonovaryOn f g ↑s) (hσ : {x | σ x ≠ x} ⊆ ↑s)
Goal: ∑ i ∈ s, f i • g (σ i) < ∑ i ∈ s, f i • g i ↔ ¬MonovaryOn f (g ∘ ⇑σ) ↑s
-- MonovaryOn.sum_comp_perm_mul_le_sum_mul
theorem MonovaryOn.sum_comp_perm_mul_le_sum_mul (hfg : MonovaryOn f g s)
    (hσ : {x | σ x ≠ x} ⊆ s) : ∑ i ∈ s, f (σ i) * g i ≤ ∑ i ∈ s, f i * g i 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {s : Finset ι} {σ : Equiv.Perm ι} {f g : ι → α} (hfg : MonovaryOn f g ↑s) (hσ : {x | σ x ≠ x} ⊆ ↑s)
Goal: ∑ i ∈ s, f (σ i) * g i ≤ ∑ i ∈ s, f i * g i
-- MonovaryOn.sum_comp_perm_mul_eq_sum_mul_iff
theorem MonovaryOn.sum_comp_perm_mul_eq_sum_mul_iff (hfg : MonovaryOn f g s)
    (hσ : {x | σ x ≠ x} ⊆ s) :
    ∑ i ∈ s, f (σ i) * g i = ∑ i ∈ s, f i * g i ↔ MonovaryOn (f ∘ σ) g s 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {s : Finset ι} {σ : Equiv.Perm ι} {f g : ι → α} (hfg : MonovaryOn f g ↑s) (hσ : {x | σ x ≠ x} ⊆ ↑s)
Goal: ∑ i ∈ s, f (σ i) * g i = ∑ i ∈ s, f i * g i ↔ MonovaryOn (f ∘ ⇑σ) g ↑s
-- MonovaryOn.sum_comp_perm_mul_lt_sum_mul_iff
theorem MonovaryOn.sum_comp_perm_mul_lt_sum_mul_iff (hfg : MonovaryOn f g s)
    (hσ : {x | σ x ≠ x} ⊆ s) :
    ∑ i ∈ s, f (σ i) * g i < ∑ i ∈ s, f i * g i ↔ ¬MonovaryOn (f ∘ σ) g s 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {s : Finset ι} {σ : Equiv.Perm ι} {f g : ι → α} (hfg : MonovaryOn f g ↑s) (hσ : {x | σ x ≠ x} ⊆ ↑s)
Goal: ∑ i ∈ s, f (σ i) * g i < ∑ i ∈ s, f i * g i ↔ ¬MonovaryOn (f ∘ ⇑σ) g ↑s
-- AntivaryOn.sum_mul_le_sum_mul_comp_perm
theorem AntivaryOn.sum_mul_le_sum_mul_comp_perm (hfg : AntivaryOn f g s)
    (hσ : {x | σ x ≠ x} ⊆ s) : ∑ i ∈ s, f i * g i ≤ ∑ i ∈ s, f i * g (σ i) 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {s : Finset ι} {σ : Equiv.Perm ι} {f g : ι → α} (hfg : AntivaryOn f g ↑s) (hσ : {x | σ x ≠ x} ⊆ ↑s)
Goal: ∑ i ∈ s, f i * g i ≤ ∑ i ∈ s, f i * g (σ i)
-- AntivaryOn.sum_mul_eq_sum_mul_comp_perm_iff
theorem AntivaryOn.sum_mul_eq_sum_mul_comp_perm_iff (hfg : AntivaryOn f g s)
    (hσ : {x | σ x ≠ x} ⊆ s) :
    ∑ i ∈ s, f i * g (σ i) = ∑ i ∈ s, f i * g i ↔ AntivaryOn f (g ∘ σ) s 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {s : Finset ι} {σ : Equiv.Perm ι} {f g : ι → α} (hfg : AntivaryOn f g ↑s) (hσ : {x | σ x ≠ x} ⊆ ↑s)
Goal: ∑ i ∈ s, f i * g (σ i) = ∑ i ∈ s, f i * g i ↔ AntivaryOn f (g ∘ ⇑σ) ↑s
-- AntivaryOn.sum_mul_lt_sum_mul_comp_perm_iff
theorem AntivaryOn.sum_mul_lt_sum_mul_comp_perm_iff (hfg : AntivaryOn f g s)
    (hσ : {x | σ x ≠ x} ⊆ s) :
    ∑ i ∈ s, f i * g i < ∑ i ∈ s, f i * g (σ i) ↔ ¬AntivaryOn f (g ∘ σ) s 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {s : Finset ι} {σ : Equiv.Perm ι} {f g : ι → α} (hfg : AntivaryOn f g ↑s) (hσ : {x | σ x ≠ x} ⊆ ↑s)
Goal: ∑ i ∈ s, f i * g i < ∑ i ∈ s, f i * g (σ i) ↔ ¬AntivaryOn f (g ∘ ⇑σ) ↑s
-- AntivaryOn.sum_mul_le_sum_comp_perm_mul
theorem AntivaryOn.sum_mul_le_sum_comp_perm_mul (hfg : AntivaryOn f g s)
    (hσ : {x | σ x ≠ x} ⊆ s) : ∑ i ∈ s, f i * g i ≤ ∑ i ∈ s, f (σ i) * g i 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {s : Finset ι} {σ : Equiv.Perm ι} {f g : ι → α} (hfg : AntivaryOn f g ↑s) (hσ : {x | σ x ≠ x} ⊆ ↑s)
Goal: ∑ i ∈ s, f i * g i ≤ ∑ i ∈ s, f (σ i) * g i
-- AntivaryOn.sum_comp_perm_mul_eq_sum_mul_iff
theorem AntivaryOn.sum_comp_perm_mul_eq_sum_mul_iff (hfg : AntivaryOn f g s)
    (hσ : {x | σ x ≠ x} ⊆ s) :
    ∑ i ∈ s, f (σ i) * g i = ∑ i ∈ s, f i * g i ↔ AntivaryOn (f ∘ σ) g s 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {s : Finset ι} {σ : Equiv.Perm ι} {f g : ι → α} (hfg : AntivaryOn f g ↑s) (hσ : {x | σ x ≠ x} ⊆ ↑s)
Goal: ∑ i ∈ s, f (σ i) * g i = ∑ i ∈ s, f i * g i ↔ AntivaryOn (f ∘ ⇑σ) g ↑s
-- AntivaryOn.sum_mul_lt_sum_comp_perm_mul_iff
theorem AntivaryOn.sum_mul_lt_sum_comp_perm_mul_iff (hfg : AntivaryOn f g s)
    (hσ : {x | σ x ≠ x} ⊆ s) :
    ∑ i ∈ s, f i * g i < ∑ i ∈ s, f (σ i) * g i ↔ ¬AntivaryOn (f ∘ σ) g s 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {s : Finset ι} {σ : Equiv.Perm ι} {f g : ι → α} (hfg : AntivaryOn f g ↑s) (hσ : {x | σ x ≠ x} ⊆ ↑s)
Goal: ∑ i ∈ s, f i * g i < ∑ i ∈ s, f (σ i) * g i ↔ ¬AntivaryOn (f ∘ ⇑σ) g ↑s
-- Monovary.sum_mul_comp_perm_le_sum_mul
theorem Monovary.sum_mul_comp_perm_le_sum_mul (hfg : Monovary f g) :
    ∑ i, f i * g (σ i) ≤ ∑ i, f i * g i 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {σ : Equiv.Perm ι} {f g : ι → α} [Fintype ι] (hfg : Monovary f g)
Goal: ∑ i : ι, f i * g (σ i) ≤ ∑ i : ι, f i * g i
-- Monovary.sum_mul_comp_perm_eq_sum_mul_iff
theorem Monovary.sum_mul_comp_perm_eq_sum_mul_iff (hfg : Monovary f g) :
    ∑ i, f i * g (σ i) = ∑ i, f i * g i ↔ Monovary f (g ∘ σ) 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {σ : Equiv.Perm ι} {f g : ι → α} [Fintype ι] (hfg : Monovary f g)
Goal: ∑ i : ι, f i * g (σ i) = ∑ i : ι, f i * g i ↔ Monovary f (g ∘ ⇑σ)
-- Monovary.sum_mul_comp_perm_lt_sum_mul_iff
theorem Monovary.sum_mul_comp_perm_lt_sum_mul_iff (hfg : Monovary f g) :
    ∑ i, f i * g (σ i) < ∑ i, f i * g i ↔ ¬Monovary f (g ∘ σ) 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {σ : Equiv.Perm ι} {f g : ι → α} [Fintype ι] (hfg : Monovary f g)
Goal: ∑ i : ι, f i * g (σ i) < ∑ i : ι, f i * g i ↔ ¬Monovary f (g ∘ ⇑σ)
-- Monovary.sum_comp_perm_mul_le_sum_mul
theorem Monovary.sum_comp_perm_mul_le_sum_mul (hfg : Monovary f g) :
    ∑ i, f (σ i) * g i ≤ ∑ i, f i * g i 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {σ : Equiv.Perm ι} {f g : ι → α} [Fintype ι] (hfg : Monovary f g)
Goal: ∑ i : ι, f (σ i) * g i ≤ ∑ i : ι, f i * g i
-- Monovary.sum_comp_perm_mul_eq_sum_mul_iff
theorem Monovary.sum_comp_perm_mul_eq_sum_mul_iff (hfg : Monovary f g) :
    ∑ i, f (σ i) * g i = ∑ i, f i * g i ↔ Monovary (f ∘ σ) g 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {σ : Equiv.Perm ι} {f g : ι → α} [Fintype ι] (hfg : Monovary f g)
Goal: ∑ i : ι, f (σ i) * g i = ∑ i : ι, f i * g i ↔ Monovary (f ∘ ⇑σ) g
-- Monovary.sum_comp_perm_mul_lt_sum_mul_iff
theorem Monovary.sum_comp_perm_mul_lt_sum_mul_iff (hfg : Monovary f g) :
    ∑ i, f (σ i) * g i < ∑ i, f i * g i ↔ ¬Monovary (f ∘ σ) g 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {σ : Equiv.Perm ι} {f g : ι → α} [Fintype ι] (hfg : Monovary f g)
Goal: ∑ i : ι, f (σ i) * g i < ∑ i : ι, f i * g i ↔ ¬Monovary (f ∘ ⇑σ) g
-- Antivary.sum_mul_le_sum_mul_comp_perm
theorem Antivary.sum_mul_le_sum_mul_comp_perm (hfg : Antivary f g) :
    ∑ i, f i * g i ≤ ∑ i, f i * g (σ i) 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {σ : Equiv.Perm ι} {f g : ι → α} [Fintype ι] (hfg : Antivary f g)
Goal: ∑ i : ι, f i * g i ≤ ∑ i : ι, f i * g (σ i)
-- Antivary.sum_mul_eq_sum_mul_comp_perm_iff
theorem Antivary.sum_mul_eq_sum_mul_comp_perm_iff (hfg : Antivary f g) :
    ∑ i, f i * g (σ i) = ∑ i, f i * g i ↔ Antivary f (g ∘ σ) 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {σ : Equiv.Perm ι} {f g : ι → α} [Fintype ι] (hfg : Antivary f g)
Goal: ∑ i : ι, f i * g (σ i) = ∑ i : ι, f i * g i ↔ Antivary f (g ∘ ⇑σ)
-- Antivary.sum_mul_lt_sum_mul_comp_perm_iff
theorem Antivary.sum_mul_lt_sum_mul_comp_perm_iff (hfg : Antivary f g) :
    ∑ i, f i • g i < ∑ i, f i • g (σ i) ↔ ¬Antivary f (g ∘ σ) 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {σ : Equiv.Perm ι} {f g : ι → α} [Fintype ι] (hfg : Antivary f g)
Goal: ∑ i : ι, f i • g i < ∑ i : ι, f i • g (σ i) ↔ ¬Antivary f (g ∘ ⇑σ)
-- Antivary.sum_mul_le_sum_comp_perm_mul
theorem Antivary.sum_mul_le_sum_comp_perm_mul (hfg : Antivary f g) :
    ∑ i, f i * g i ≤ ∑ i, f (σ i) * g i 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {σ : Equiv.Perm ι} {f g : ι → α} [Fintype ι] (hfg : Antivary f g)
Goal: ∑ i : ι, f i * g i ≤ ∑ i : ι, f (σ i) * g i
-- Antivary.sum_comp_perm_mul_eq_sum_mul_iff
theorem Antivary.sum_comp_perm_mul_eq_sum_mul_iff (hfg : Antivary f g) :
    ∑ i, f (σ i) * g i = ∑ i, f i * g i ↔ Antivary (f ∘ σ) g 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {σ : Equiv.Perm ι} {f g : ι → α} [Fintype ι] (hfg : Antivary f g)
Goal: ∑ i : ι, f (σ i) * g i = ∑ i : ι, f i * g i ↔ Antivary (f ∘ ⇑σ) g
-- Antivary.sum_mul_lt_sum_comp_perm_mul_iff
theorem Antivary.sum_mul_lt_sum_comp_perm_mul_iff (hfg : Antivary f g) :
    ∑ i, f i * g i < ∑ i, f (σ i) * g i ↔ ¬Antivary (f ∘ σ) g 
Arguments: {ι : Type u_1} {α : Type u_2} [LinearOrderedRing α] {σ : Equiv.Perm ι} {f g : ι → α} [Fintype ι] (hfg : Antivary f g)
Goal: ∑ i : ι, f i * g i < ∑ i : ι, f (σ i) * g i ↔ ¬Antivary (f ∘ ⇑σ) g
-- GradedMonoid.fst_smul
@[simp] theorem fst_smul [∀ i, SMul α (A i)] (a : α) (x : GradedMonoid A) :
    (a • x).fst = x.fst 
Arguments: {ι : Type u_1} {α : Type u_3} {A : ι → Type u_2} [(i : ι) → SMul α (A i)] (a : α) (x : GradedMonoid A)
Goal: (a • x).fst = x.fst
-- GradedMonoid.snd_smul
@[simp] theorem snd_smul [∀ i, SMul α (A i)] (a : α) (x : GradedMonoid A) :
    (a • x).snd = a • x.snd 
Arguments: {ι : Type u_1} {α : Type u_3} {A : ι → Type u_2} [(i : ι) → SMul α (A i)] (a : α) (x : GradedMonoid A)
Goal: (a • x).snd = a • x.snd
-- GradedMonoid.smul_mk
theorem smul_mk [∀ i, SMul α (A i)] {i} (c : α) (a : A i) :
    c • mk i a = mk i (c • a) 
Arguments: {ι : Type u_1} {α : Type u_3} {A : ι → Type u_2} [(i : ι) → SMul α (A i)] {i : ι} (c : α) (a : A i)
Goal: c • GradedMonoid.mk i a = GradedMonoid.mk i (c • a)
-- GradedMonoid.fst_one
@[simp] theorem fst_one [Zero ι] [GOne A] : (1 : GradedMonoid A).fst = 0 
Arguments: {ι : Type u_1} (A : ι → Type u_2) [Zero ι] [GradedMonoid.GOne A]
Goal: Sigma.fst 1 = 0
-- GradedMonoid.snd_one
@[simp] theorem snd_one [Zero ι] [GOne A] : (1 : GradedMonoid A).snd = GOne.one 
Arguments: {ι : Type u_1} (A : ι → Type u_2) [Zero ι] [GradedMonoid.GOne A]
Goal: Sigma.snd 1 = GradedMonoid.GOne.one
-- GradedMonoid.fst_mul
@[simp] theorem fst_mul [Add ι] [GMul A] (x y : GradedMonoid A) :
    (x * y).fst = x.fst + y.fst 
Arguments: {ι : Type u_1} (A : ι → Type u_2) [Add ι] [GradedMonoid.GMul A] (x y : GradedMonoid A)
Goal: (x * y).fst = x.fst + y.fst
-- GradedMonoid.snd_mul
@[simp] theorem snd_mul [Add ι] [GMul A] (x y : GradedMonoid A) :
    (x * y).snd = GMul.mul x.snd y.snd 
Arguments: {ι : Type u_1} (A : ι → Type u_2) [Add ι] [GradedMonoid.GMul A] (x y : GradedMonoid A)
Goal: (x * y).snd = GradedMonoid.GMul.mul x.snd y.snd
-- GradedMonoid.mk_mul_mk
theorem mk_mul_mk [Add ι] [GMul A] {i j} (a : A i) (b : A j) :
    mk i a * mk j b = mk (i + j) (GMul.mul a b) 
Arguments: {ι : Type u_1} (A : ι → Type u_2) [Add ι] [GradedMonoid.GMul A] {i j : ι} (a : A i) (b : A j)
Goal: GradedMonoid.mk i a * GradedMonoid.mk j b = GradedMonoid.mk (i + j) (GradedMonoid.GMul.mul a b)
-- GradedMonoid.GMonoid.gnpowRec_zero
@[simp]
theorem gnpowRec_zero (a : GradedMonoid A) : GradedMonoid.mk _ (gnpowRec 0 a.snd) = 1 
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddMonoid ι] [GradedMonoid.GMul A] [GradedMonoid.GOne A] (a : GradedMonoid A)
Goal: GradedMonoid.mk (0 • a.fst) (GradedMonoid.GMonoid.gnpowRec 0 a.snd) = 1
-- GradedMonoid.GMonoid.gnpowRec_succ
@[simp]
theorem gnpowRec_succ (n : ℕ) (a : GradedMonoid A) :
    (GradedMonoid.mk _ <| gnpowRec n.succ a.snd) = ⟨_, gnpowRec n a.snd⟩ * a 
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddMonoid ι] [GradedMonoid.GMul A] [GradedMonoid.GOne A] (n : ℕ) (a : GradedMonoid A)
Goal: GradedMonoid.mk (n.succ • a.fst) (GradedMonoid.GMonoid.gnpowRec n.succ a.snd) =
  ⟨n • a.fst, GradedMonoid.GMonoid.gnpowRec n a.snd⟩ * a
-- GradedMonoid.GMonoid.gnpow_succ'
class GMonoid [AddMonoid ι] extends GMul A, GOne A where
    one_mul (a : GradedMonoid A) : 1 * a = a
    mul_one (a : GradedMonoid A) : a * 1 = a
    mul_assoc (a b c : GradedMonoid A) : a * b * c = a * (b * c)
    gnpow : ∀ (n : ℕ) {i}, A i → A (n • i) := GMonoid.gnpowRec
    gnpow_zero' : ∀ a : GradedMonoid A, GradedMonoid.mk _ (gnpow 0 a.snd) = 1 := by
    apply_gmonoid_gnpowRec_zero_tac
    gnpow_succ' :
    ∀ (n : ℕ) (a : GradedMonoid A),
      (GradedMonoid.mk _ <| gnpow n.succ a.snd) = ⟨_, gnpow n a.snd⟩ * a := by
    apply_gmonoid_gnpowRec_succ_tac
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddMonoid ι] [self : GradedMonoid.GMonoid A] (n : ℕ) (a : GradedMonoid A)
Goal: GradedMonoid.mk (n.succ • a.fst) (GradedMonoid.GMonoid.gnpow n.succ a.snd) =
  ⟨n • a.fst, GradedMonoid.GMonoid.gnpow n a.snd⟩ * a
-- GradedMonoid.GMonoid.mul_assoc
class GMonoid [AddMonoid ι] extends GMul A, GOne A where
    one_mul (a : GradedMonoid A) : 1 * a = a
    mul_one (a : GradedMonoid A) : a * 1 = a
    mul_assoc (a b c : GradedMonoid A) : a * b * c = a * (b * c)
    gnpow : ∀ (n : ℕ) {i}, A i → A (n • i) := GMonoid.gnpowRec
    gnpow_zero' : ∀ a : GradedMonoid A, GradedMonoid.mk _ (gnpow 0 a.snd) = 1 := by
    apply_gmonoid_gnpowRec_zero_tac
    gnpow_succ' :
    ∀ (n : ℕ) (a : GradedMonoid A),
      (GradedMonoid.mk _ <| gnpow n.succ a.snd) = ⟨_, gnpow n a.snd⟩ * a := by
    apply_gmonoid_gnpowRec_succ_tac
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddMonoid ι] [self : GradedMonoid.GMonoid A] (a b c : GradedMonoid A)
Goal: a * b * c = a * (b * c)
-- GradedMonoid.GMonoid.mul_one
class GMonoid [AddMonoid ι] extends GMul A, GOne A where
    one_mul (a : GradedMonoid A) : 1 * a = a
    mul_one (a : GradedMonoid A) : a * 1 = a
    mul_assoc (a b c : GradedMonoid A) : a * b * c = a * (b * c)
    gnpow : ∀ (n : ℕ) {i}, A i → A (n • i) := GMonoid.gnpowRec
    gnpow_zero' : ∀ a : GradedMonoid A, GradedMonoid.mk _ (gnpow 0 a.snd) = 1 := by
    apply_gmonoid_gnpowRec_zero_tac
    gnpow_succ' :
    ∀ (n : ℕ) (a : GradedMonoid A),
      (GradedMonoid.mk _ <| gnpow n.succ a.snd) = ⟨_, gnpow n a.snd⟩ * a := by
    apply_gmonoid_gnpowRec_succ_tac
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddMonoid ι] [self : GradedMonoid.GMonoid A] (a : GradedMonoid A)
Goal: a * 1 = a
-- GradedMonoid.GMonoid.one_mul
class GMonoid [AddMonoid ι] extends GMul A, GOne A where
    one_mul (a : GradedMonoid A) : 1 * a = a
    mul_one (a : GradedMonoid A) : a * 1 = a
    mul_assoc (a b c : GradedMonoid A) : a * b * c = a * (b * c)
    gnpow : ∀ (n : ℕ) {i}, A i → A (n • i) := GMonoid.gnpowRec
    gnpow_zero' : ∀ a : GradedMonoid A, GradedMonoid.mk _ (gnpow 0 a.snd) = 1 := by
    apply_gmonoid_gnpowRec_zero_tac
    gnpow_succ' :
    ∀ (n : ℕ) (a : GradedMonoid A),
      (GradedMonoid.mk _ <| gnpow n.succ a.snd) = ⟨_, gnpow n a.snd⟩ * a := by
    apply_gmonoid_gnpowRec_succ_tac
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddMonoid ι] [self : GradedMonoid.GMonoid A] (a : GradedMonoid A)
Goal: 1 * a = a
-- GradedMonoid.GMonoid.gnpow_zero'
class GMonoid [AddMonoid ι] extends GMul A, GOne A where
    one_mul (a : GradedMonoid A) : 1 * a = a
    mul_one (a : GradedMonoid A) : a * 1 = a
    mul_assoc (a b c : GradedMonoid A) : a * b * c = a * (b * c)
    gnpow : ∀ (n : ℕ) {i}, A i → A (n • i) := GMonoid.gnpowRec
    gnpow_zero' : ∀ a : GradedMonoid A, GradedMonoid.mk _ (gnpow 0 a.snd) = 1 := by
    apply_gmonoid_gnpowRec_zero_tac
    gnpow_succ' :
    ∀ (n : ℕ) (a : GradedMonoid A),
      (GradedMonoid.mk _ <| gnpow n.succ a.snd) = ⟨_, gnpow n a.snd⟩ * a := by
    apply_gmonoid_gnpowRec_succ_tac
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddMonoid ι] [self : GradedMonoid.GMonoid A] (a : GradedMonoid A)
Goal: GradedMonoid.mk (0 • a.fst) (GradedMonoid.GMonoid.gnpow 0 a.snd) = 1
-- GradedMonoid.fst_pow
@[simp] theorem fst_pow [AddMonoid ι] [GMonoid A] (x : GradedMonoid A) (n : ℕ) :
    (x ^ n).fst = n • x.fst 
Arguments: {ι : Type u_1} (A : ι → Type u_2) [AddMonoid ι] [GradedMonoid.GMonoid A] (x : GradedMonoid A) (n : ℕ)
Goal: (x ^ n).fst = n • x.fst
-- GradedMonoid.snd_pow
@[simp] theorem snd_pow [AddMonoid ι] [GMonoid A] (x : GradedMonoid A) (n : ℕ) :
    (x ^ n).snd = GMonoid.gnpow n x.snd 
Arguments: {ι : Type u_1} (A : ι → Type u_2) [AddMonoid ι] [GradedMonoid.GMonoid A] (x : GradedMonoid A) (n : ℕ)
Goal: (x ^ n).snd = GradedMonoid.GMonoid.gnpow n x.snd
-- GradedMonoid.mk_pow
theorem mk_pow [AddMonoid ι] [GMonoid A] {i} (a : A i) (n : ℕ) :
    mk i a ^ n = mk (n • i) (GMonoid.gnpow _ a) 
Arguments: {ι : Type u_1} (A : ι → Type u_2) [AddMonoid ι] [GradedMonoid.GMonoid A] {i : ι} (a : A i) (n : ℕ)
Goal: GradedMonoid.mk i a ^ n = GradedMonoid.mk (n • i) (GradedMonoid.GMonoid.gnpow n a)
-- GradedMonoid.GCommMonoid.mul_comm
class GCommMonoid [AddCommMonoid ι] extends GMonoid A where
    mul_comm (a : GradedMonoid A) (b : GradedMonoid A) : a * b = b * a
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddCommMonoid ι] [self : GradedMonoid.GCommMonoid A] (a b : GradedMonoid A)
Goal: a * b = b * a
-- GradedMonoid.mk_zero_smul
@[simp]
theorem mk_zero_smul {i} (a : A 0) (b : A i) : mk _ (a • b) = mk _ a * mk _ b 
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddZeroClass ι] [GradedMonoid.GMul A] {i : ι} (a : A 0) (b : A i)
Goal: GradedMonoid.mk i (a • b) = GradedMonoid.mk 0 a * GradedMonoid.mk i b
-- GradedMonoid.GradeZero.smul_eq_mul
@[simp]
theorem GradeZero.smul_eq_mul (a b : A 0) : a • b = a * b 
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddZeroClass ι] [GradedMonoid.GMul A] (a b : A 0)
Goal: a • b = a * b
-- GradedMonoid.mk_zero_pow
@[simp]
theorem mk_zero_pow (a : A 0) (n : ℕ) : mk _ (a ^ n) = mk _ a ^ n 
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddMonoid ι] [GradedMonoid.GMonoid A] (a : A 0) (n : ℕ)
Goal: GradedMonoid.mk 0 (a ^ n) = GradedMonoid.mk 0 a ^ n
-- List.dProdIndex_nil
@[simp]
theorem List.dProdIndex_nil (fι : α → ι) : ([] : List α).dProdIndex fι = 0 
Arguments: {ι : Type u_1} {α : Type u_2} [AddMonoid ι] (fι : α → ι)
Goal: [].dProdIndex fι = 0