File: Mathlib/Data/Fintype/Sum.lean

full_name: instFintypeSum
code: instance (α : Type u) (β : Type v) [Fintype α] [Fintype β] : Fintype (α ⊕ β) 
goal: Fintype (α ⊕ β)

full_name: Finset.univ_disjSum_univ
code: @[simp]
theorem Finset.univ_disjSum_univ {α β : Type*} [Fintype α] [Fintype β] :
    univ.disjSum univ = (univ : Finset (α ⊕ β)) 
goal: Finset.univ.disjSum Finset.univ = Finset.univ

full_name: Fintype.card_sum
code: @[simp]
theorem Fintype.card_sum [Fintype α] [Fintype β] :
    Fintype.card (α ⊕ β) = Fintype.card α + Fintype.card β 
goal: Fintype.card (α ⊕ β) = Fintype.card α + Fintype.card β

full_name: fintypeOfFintypeNe
code: /-- If the subtype of all-but-one elements is a `Fintype` then the type itself is a `Fintype`. -/
def fintypeOfFintypeNe (a : α) (h : Fintype { b // b ≠ a }) : Fintype α 
goal: Fintype α

full_name: image_subtype_ne_univ_eq_image_erase
code: theorem image_subtype_ne_univ_eq_image_erase [Fintype α] [DecidableEq β] (k : β) (b : α → β) :
    image (fun i : { a // b a ≠ k } => b ↑i) univ = (image b univ).erase k 
goal: Finset.image (fun i => b ↑i) Finset.univ = (Finset.image b Finset.univ).erase k

full_name: image_subtype_univ_ssubset_image_univ
code: theorem image_subtype_univ_ssubset_image_univ [Fintype α] [DecidableEq β] (k : β) (b : α → β)
    (hk : k ∈ Finset.image b univ) (p : β → Prop) [DecidablePred p] (hp : ¬p k) :
    image (fun i : { a // p (b a) } => b ↑i) univ ⊂ image b univ 
goal: Finset.image (fun i => b ↑i) Finset.univ ⊂ Finset.image b Finset.univ

full_name: Finset.exists_equiv_extend_of_card_eq
code: /-- Any injection from a finset `s` in a fintype `α` to a finset `t` of the same cardinality as `α`
can be extended to a bijection between `α` and `t`. -/
theorem Finset.exists_equiv_extend_of_card_eq [Fintype α] [DecidableEq β] {t : Finset β}
    (hαt : Fintype.card α = t.card) {s : Finset α} {f : α → β} (hfst : Finset.image f s ⊆ t)
    (hfs : Set.InjOn f s) : ∃ g : α ≃ t, ∀ i ∈ s, (g i : β) = f i 
goal: ∃ g, ∀ i ∈ s, ↑(g i) = f i

full_name: Set.MapsTo.exists_equiv_extend_of_card_eq
code: /-- Any injection from a set `s` in a fintype `α` to a finset `t` of the same cardinality as `α`
can be extended to a bijection between `α` and `t`. -/
theorem Set.MapsTo.exists_equiv_extend_of_card_eq [Fintype α] {t : Finset β}
    (hαt : Fintype.card α = t.card) {s : Set α} {f : α → β} (hfst : s.MapsTo f t)
    (hfs : Set.InjOn f s) : ∃ g : α ≃ t, ∀ i ∈ s, (g i : β) = f i 
goal: ∃ g, ∀ i ∈ s, ↑(g i) = f i

full_name: Fintype.card_subtype_or
code: theorem Fintype.card_subtype_or (p q : α → Prop) [Fintype { x // p x }] [Fintype { x // q x }]
    [Fintype { x // p x ∨ q x }] :
    Fintype.card { x // p x ∨ q x } ≤ Fintype.card { x // p x } + Fintype.card { x // q x } 
goal: Fintype.card { x // p x ∨ q x } ≤ Fintype.card { x // p x } + Fintype.card { x // q x }

full_name: Fintype.card_subtype_or_disjoint
code: theorem Fintype.card_subtype_or_disjoint (p q : α → Prop) (h : Disjoint p q) [Fintype { x // p x }]
    [Fintype { x // q x }] [Fintype { x // p x ∨ q x }] :
    Fintype.card { x // p x ∨ q x } = Fintype.card { x // p x } + Fintype.card { x // q x } 
goal: Fintype.card { x // p x ∨ q x } = Fintype.card { x // p x } + Fintype.card { x // q x }

full_name: infinite_sum
code: @[simp]
theorem infinite_sum : Infinite (α ⊕ β) ↔ Infinite α ∨ Infinite β 
goal: Infinite (α ⊕ β) ↔ Infinite α ∨ Infinite β