File: Mathlib/Data/Set/MulAntidiagonal.lean

full_name: Set.addAntidiagonal
code: /-- `Set.mulAntidiagonal s t a` is the set of all pairs of an element in `s` and an element in `t`
that multiply to `a`. -/
@[to_additive
      "`Set.addAntidiagonal s t a` is the set of all pairs of an element in `s` and an
      element in `t` that add to `a`."]
def mulAntidiagonal (s t : Set α) (a : α) : Set (α × α) 
goal: Set (α × α)

full_name: Set.mulAntidiagonal
code: /-- `Set.mulAntidiagonal s t a` is the set of all pairs of an element in `s` and an element in `t`
that multiply to `a`. -/
@[to_additive
      "`Set.addAntidiagonal s t a` is the set of all pairs of an element in `s` and an
      element in `t` that add to `a`."]
def mulAntidiagonal (s t : Set α) (a : α) : Set (α × α) 
goal: Set (α × α)

full_name: Set.mem_addAntidiagonal
code: @[to_additive (attr := simp)]
theorem mem_mulAntidiagonal : x ∈ mulAntidiagonal s t a ↔ x.1 ∈ s ∧ x.2 ∈ t ∧ x.1 * x.2 = a 
goal: x ∈ s.addAntidiagonal t a ↔ x.1 ∈ s ∧ x.2 ∈ t ∧ x.1 + x.2 = a

full_name: Set.mem_mulAntidiagonal
code: @[to_additive (attr := simp)]
theorem mem_mulAntidiagonal : x ∈ mulAntidiagonal s t a ↔ x.1 ∈ s ∧ x.2 ∈ t ∧ x.1 * x.2 = a 
goal: x ∈ s.mulAntidiagonal t a ↔ x.1 ∈ s ∧ x.2 ∈ t ∧ x.1 * x.2 = a

full_name: Set.addAntidiagonal_mono_left
code: @[to_additive]
theorem mulAntidiagonal_mono_left (h : s₁ ⊆ s₂) : mulAntidiagonal s₁ t a ⊆ mulAntidiagonal s₂ t a 
goal: s₁.addAntidiagonal t a ⊆ s₂.addAntidiagonal t a

full_name: Set.mulAntidiagonal_mono_left
code: @[to_additive]
theorem mulAntidiagonal_mono_left (h : s₁ ⊆ s₂) : mulAntidiagonal s₁ t a ⊆ mulAntidiagonal s₂ t a 
goal: s₁.mulAntidiagonal t a ⊆ s₂.mulAntidiagonal t a

full_name: Set.mulAntidiagonal_mono_right
code: @[to_additive]
theorem mulAntidiagonal_mono_right (h : t₁ ⊆ t₂) :
    mulAntidiagonal s t₁ a ⊆ mulAntidiagonal s t₂ a 
goal: s.mulAntidiagonal t₁ a ⊆ s.mulAntidiagonal t₂ a

full_name: Set.addAntidiagonal_mono_right
code: @[to_additive]
theorem mulAntidiagonal_mono_right (h : t₁ ⊆ t₂) :
    mulAntidiagonal s t₁ a ⊆ mulAntidiagonal s t₂ a 
goal: s.addAntidiagonal t₁ a ⊆ s.addAntidiagonal t₂ a

full_name: Set.swap_mem_addAntidiagonal
code: @[to_additive]
theorem swap_mem_mulAntidiagonal [CommSemigroup α] {s t : Set α} {a : α} {x : α × α} :
    x.swap ∈ Set.mulAntidiagonal s t a ↔ x ∈ Set.mulAntidiagonal t s a 
goal: x.swap ∈ s.addAntidiagonal t a ↔ x ∈ t.addAntidiagonal s a

full_name: Set.swap_mem_mulAntidiagonal
code: @[to_additive]
theorem swap_mem_mulAntidiagonal [CommSemigroup α] {s t : Set α} {a : α} {x : α × α} :
    x.swap ∈ Set.mulAntidiagonal s t a ↔ x ∈ Set.mulAntidiagonal t s a 
goal: x.swap ∈ s.mulAntidiagonal t a ↔ x ∈ t.mulAntidiagonal s a

full_name: Set.swap_mem_mulAntidiagonal_aux
code: @[to_additive (attr := simp)]
theorem swap_mem_mulAntidiagonal_aux [CommSemigroup α] {s t : Set α} {a : α} {x : α × α} :
    x.snd ∈ s ∧ x.fst ∈ t ∧ x.snd * x.fst = a
      ↔ x ∈ Set.mulAntidiagonal t s a 
goal: x.2 ∈ s ∧ x.1 ∈ t ∧ x.2 * x.1 = a ↔ x ∈ t.mulAntidiagonal s a

full_name: Set.swap_mem_addAntidiagonal_aux
code: @[to_additive (attr := simp)]
theorem swap_mem_mulAntidiagonal_aux [CommSemigroup α] {s t : Set α} {a : α} {x : α × α} :
    x.snd ∈ s ∧ x.fst ∈ t ∧ x.snd * x.fst = a
      ↔ x ∈ Set.mulAntidiagonal t s a 
goal: x.2 ∈ s ∧ x.1 ∈ t ∧ x.2 + x.1 = a ↔ x ∈ t.addAntidiagonal s a

full_name: Set.MulAntidiagonal.fst_eq_fst_iff_snd_eq_snd
code: @[to_additive Set.AddAntidiagonal.fst_eq_fst_iff_snd_eq_snd]
theorem fst_eq_fst_iff_snd_eq_snd : (x : α × α).1 = (y : α × α).1 ↔ (x : α × α).2 = (y : α × α).2 
goal: (↑x).1 = (↑y).1 ↔ (↑x).2 = (↑y).2

full_name: Set.AddAntidiagonal.fst_eq_fst_iff_snd_eq_snd
code: @[to_additive Set.AddAntidiagonal.fst_eq_fst_iff_snd_eq_snd]
theorem fst_eq_fst_iff_snd_eq_snd : (x : α × α).1 = (y : α × α).1 ↔ (x : α × α).2 = (y : α × α).2 
goal: (↑x).1 = (↑y).1 ↔ (↑x).2 = (↑y).2

full_name: Set.AddAntidiagonal.eq_of_fst_eq_fst
code: @[to_additive Set.AddAntidiagonal.eq_of_fst_eq_fst]
theorem eq_of_fst_eq_fst (h : (x : α × α).fst = (y : α × α).fst) : x = y 
goal: x = y

full_name: Set.MulAntidiagonal.eq_of_fst_eq_fst
code: @[to_additive Set.AddAntidiagonal.eq_of_fst_eq_fst]
theorem eq_of_fst_eq_fst (h : (x : α × α).fst = (y : α × α).fst) : x = y 
goal: x = y

full_name: Set.MulAntidiagonal.eq_of_snd_eq_snd
code: @[to_additive Set.AddAntidiagonal.eq_of_snd_eq_snd]
theorem eq_of_snd_eq_snd (h : (x : α × α).snd = (y : α × α).snd) : x = y 
goal: x = y

full_name: Set.AddAntidiagonal.eq_of_snd_eq_snd
code: @[to_additive Set.AddAntidiagonal.eq_of_snd_eq_snd]
theorem eq_of_snd_eq_snd (h : (x : α × α).snd = (y : α × α).snd) : x = y 
goal: x = y

full_name: Set.MulAntidiagonal.eq_of_fst_le_fst_of_snd_le_snd
code: @[to_additive Set.AddAntidiagonal.eq_of_fst_le_fst_of_snd_le_snd]
theorem eq_of_fst_le_fst_of_snd_le_snd (h₁ : (x : α × α).1 ≤ (y : α × α).1)
    (h₂ : (x : α × α).2 ≤ (y : α × α).2) : x = y 
goal: x = y

full_name: Set.AddAntidiagonal.eq_of_fst_le_fst_of_snd_le_snd
code: @[to_additive Set.AddAntidiagonal.eq_of_fst_le_fst_of_snd_le_snd]
theorem eq_of_fst_le_fst_of_snd_le_snd (h₁ : (x : α × α).1 ≤ (y : α × α).1)
    (h₂ : (x : α × α).2 ≤ (y : α × α).2) : x = y 
goal: x = y

full_name: Set.MulAntidiagonal.finite_of_isPWO
code: @[to_additive Set.AddAntidiagonal.finite_of_isPWO]
theorem finite_of_isPWO (hs : s.IsPWO) (ht : t.IsPWO) (a) : (mulAntidiagonal s t a).Finite 
goal: (s.mulAntidiagonal t a).Finite

full_name: Set.AddAntidiagonal.finite_of_isPWO
code: @[to_additive Set.AddAntidiagonal.finite_of_isPWO]
theorem finite_of_isPWO (hs : s.IsPWO) (ht : t.IsPWO) (a) : (mulAntidiagonal s t a).Finite 
goal: (s.addAntidiagonal t a).Finite

full_name: Set.MulAntidiagonal.finite_of_isWF
code: @[to_additive Set.AddAntidiagonal.finite_of_isWF]
theorem finite_of_isWF [LinearOrderedCancelCommMonoid α] {s t : Set α} (hs : s.IsWF) (ht : t.IsWF)
    (a) : (mulAntidiagonal s t a).Finite 
goal: (s.mulAntidiagonal t a).Finite

full_name: Set.AddAntidiagonal.finite_of_isWF
code: @[to_additive Set.AddAntidiagonal.finite_of_isWF]
theorem finite_of_isWF [LinearOrderedCancelCommMonoid α] {s t : Set α} (hs : s.IsWF) (ht : t.IsWF)
    (a) : (mulAntidiagonal s t a).Finite 
goal: (s.addAntidiagonal t a).Finite