Theorem: Finset.mapRange_finsuppAntidiag_subset
File: Mathlib/Algebra/Order/Antidiag/Finsupp.lean

tactic: intro f
state_before: ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
e : μ ≃+ μ'
s : Finset ι
n : μ
⊢ map (mapRange.addEquiv e).toEmbedding (s.finsuppAntidiag n) ⊆ s.finsuppAntidiag (e n)
state_after: ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
e : μ ≃+ μ'
s : Finset ι
n : μ
f : ι →₀ μ'
⊢ f ∈ map (mapRange.addEquiv e).toEmbedding (s.finsuppAntidiag n) → f ∈ s.finsuppAntidiag (e n)

tactic: simp only [mem_map, mem_finsuppAntidiag]
state_before: ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
e : μ ≃+ μ'
s : Finset ι
n : μ
f : ι →₀ μ'
⊢ f ∈ map (mapRange.addEquiv e).toEmbedding (s.finsuppAntidiag n) → f ∈ s.finsuppAntidiag (e n)
state_after: ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
e : μ ≃+ μ'
s : Finset ι
n : μ
f : ι →₀ μ'
⊢ (∃ a, (a.support ⊆ s ∧ (a.sum fun x x => x) = n) ∧ (mapRange.addEquiv e).toEmbedding a = f) →
    f.support ⊆ s ∧ (f.sum fun x x => x) = e n

tactic: rintro ⟨g, ⟨hsupp, hsum⟩, rfl⟩
state_before: ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
e : μ ≃+ μ'
s : Finset ι
n : μ
f : ι →₀ μ'
⊢ (∃ a, (a.support ⊆ s ∧ (a.sum fun x x => x) = n) ∧ (mapRange.addEquiv e).toEmbedding a = f) →
    f.support ⊆ s ∧ (f.sum fun x x => x) = e n
state_after: case intro.intro.intro
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
e : μ ≃+ μ'
s : Finset ι
n : μ
g : ι →₀ μ
hsupp : g.support ⊆ s
hsum : (g.sum fun x x => x) = n
⊢ ((mapRange.addEquiv e).toEmbedding g).support ⊆ s ∧ (((mapRange.addEquiv e).toEmbedding g).sum fun x x => x) = e n

tactic: simp only [AddEquiv.toEquiv_eq_coe, mapRange.addEquiv_toEquiv, Equiv.coe_toEmbedding,
  mapRange.equiv_apply, EquivLike.coe_coe]
state_before: case intro.intro.intro
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
e : μ ≃+ μ'
s : Finset ι
n : μ
g : ι →₀ μ
hsupp : g.support ⊆ s
hsum : (g.sum fun x x => x) = n
⊢ ((mapRange.addEquiv e).toEmbedding g).support ⊆ s ∧ (((mapRange.addEquiv e).toEmbedding g).sum fun x x => x) = e n
state_after: case intro.intro.intro
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
e : μ ≃+ μ'
s : Finset ι
n : μ
g : ι →₀ μ
hsupp : g.support ⊆ s
hsum : (g.sum fun x x => x) = n
⊢ (mapRange ⇑e ⋯ g).support ⊆ s ∧ ((mapRange ⇑e ⋯ g).sum fun x x => x) = e n

tactic: constructor
state_before: case intro.intro.intro
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
e : μ ≃+ μ'
s : Finset ι
n : μ
g : ι →₀ μ
hsupp : g.support ⊆ s
hsum : (g.sum fun x x => x) = n
⊢ (mapRange ⇑e ⋯ g).support ⊆ s ∧ ((mapRange ⇑e ⋯ g).sum fun x x => x) = e n
state_after: case intro.intro.intro.left
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
e : μ ≃+ μ'
s : Finset ι
n : μ
g : ι →₀ μ
hsupp : g.support ⊆ s
hsum : (g.sum fun x x => x) = n
⊢ (mapRange ⇑e ⋯ g).support ⊆ s

case intro.intro.intro.right
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
e : μ ≃+ μ'
s : Finset ι
n : μ
g : ι →₀ μ
hsupp : g.support ⊆ s
hsum : (g.sum fun x x => x) = n
⊢ ((mapRange ⇑e ⋯ g).sum fun x x => x) = e n

tactic: exact subset_trans (support_mapRange) hsupp
state_before: case intro.intro.intro.left
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
e : μ ≃+ μ'
s : Finset ι
n : μ
g : ι →₀ μ
hsupp : g.support ⊆ s
hsum : (g.sum fun x x => x) = n
⊢ (mapRange ⇑e ⋯ g).support ⊆ s
state_after: no goals

tactic: rw [sum_mapRange_index (fun _ => rfl), ← hsum, _root_.map_finsupp_sum]
state_before: case intro.intro.intro.right
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
e : μ ≃+ μ'
s : Finset ι
n : μ
g : ι →₀ μ
hsupp : g.support ⊆ s
hsum : (g.sum fun x x => x) = n
⊢ ((mapRange ⇑e ⋯ g).sum fun x x => x) = e n
state_after: no goals