/- Copyright (c) 2021 Yaël Dillies. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Yaël Dillies ! This file was ported from Lean 3 source module data.finset.pairwise ! leanprover-community/mathlib commit 9003f28797c0664a49e4179487267c494477d853 ! Please do not edit these lines, except to modify the commit id ! if you have ported upstream changes. -/ import Mathlib.Data.Finset.Lattice /-! # Relations holding pairwise on finite sets In this file we prove a few results about the interaction of `Set.PairwiseDisjoint` and `Finset`, as well as the interaction of `List.Pairwise Disjoint` and the condition of `Disjoint` on `List.toFinset`, in `Set` form. -/ open Finset variable {αα: Type ?u.2ιι: Type ?u.3870ι' :ι': Type ?u.8Type _}Type _: Type (?u.3546+1)instance [DecidableEqinstance: {α : Type u_1} → [inst : DecidableEq α] → {r : α → α → Prop} → [inst : DecidableRel r] → {s : Finset α} → Decidable (Set.Pairwise (↑s) r)α] {α: Type ?u.11r :r: α → α → Propα →α: Type ?u.11α →α: Type ?u.11Prop} [DecidableRelProp: Typer] {r: α → α → Props : Finsets: Finset αα} : Decidable ((α: Type ?u.11s : Sets: Finset αα).Pairwiseα: Type ?u.11r) := decidable_of_iff' (∀r: α → α → Propa ∈a: ?m.180s, ∀s: Finset αb ∈b: ?m.213s,s: Finset αa ≠a: ?m.180b →b: ?m.213rr: α → α → Propaa: ?m.180b) Iff.rfl theoremb: ?m.213Finset.pairwiseDisjoint_range_singleton : (Set.range (singleton :Finset.pairwiseDisjoint_range_singleton: ∀ {α : Type u_1}, Set.PairwiseDisjoint (Set.range singleton) idα → Finsetα: Type ?u.1014α)).α: Type ?u.1014PairwiseDisjointid :=id: {α : Sort ?u.1145} → α → αGoals accomplished! 🐙Set.PairwiseDisjoint (Set.range singleton) idSet.PairwiseDisjoint (Set.range singleton) id#align finset.pairwise_disjoint_range_singletonGoals accomplished! 🐙Finset.pairwiseDisjoint_range_singleton namespace Set theoremFinset.pairwiseDisjoint_range_singleton: ∀ {α : Type u_1}, Set.PairwiseDisjoint (Set.range singleton) idPairwiseDisjoint.elim_finset {s : Sets: Set ιι} {ι: Type ?u.1341f :f: ι → Finset αι → Finsetι: Type ?u.1341α} (α: Type ?u.1338hs :hs: PairwiseDisjoint s fs.PairwiseDisjoints: Set ιf) {f: ι → Finset αii: ιj :j: ιι} (ι: Type ?u.1341hi :hi: i ∈ si ∈i: ιs) (s: Set ιhj :hj: j ∈ sj ∈j: ιs) (s: Set ιa :a: αα) (α: Type ?u.1338hai :hai: a ∈ f ia ∈a: αff: ι → Finset αi) (i: ιhaj :haj: a ∈ f ja ∈a: αff: ι → Finset αj) :j: ιi =i: ιj :=j: ιhs.elimhs: PairwiseDisjoint s fhihi: i ∈ shj (Finset.not_disjoint_iff.2 ⟨hj: j ∈ sa,a: αhai,hai: a ∈ f ihaj⟩) #align set.pairwise_disjoint.elim_finset Set.PairwiseDisjoint.elim_finset theoremhaj: a ∈ f jPairwiseDisjoint.image_finset_of_le [DecidableEqPairwiseDisjoint.image_finset_of_le: ∀ [inst : DecidableEq ι] [inst_1 : SemilatticeInf α] [inst_2 : OrderBot α] {s : Finset ι} {f : ι → α}, PairwiseDisjoint (↑s) f → ∀ {g : ι → ι}, (∀ (a : ι), f (g a) ≤ f a) → PairwiseDisjoint (↑(Finset.image g s)) fι] [SemilatticeInfι: Type ?u.1725α] [OrderBotα: Type ?u.1722α] {α: Type ?u.1722s : Finsets: Finset ιι} {ι: Type ?u.1725f :f: ι → αι →ι: Type ?u.1725α} (α: Type ?u.1722hs : (hs: PairwiseDisjoint (↑s) fs : Sets: Finset ιι).ι: Type ?u.1725PairwiseDisjointf) {f: ι → αg :g: ι → ιι →ι: Type ?u.1725ι} (ι: Type ?u.1725hf : ∀hf: ∀ (a : ι), f (g a) ≤ f aa,a: ?m.2482f (f: ι → αgg: ι → ιa) ≤a: ?m.2482ff: ι → αa) : (a: ?m.2482s.s: Finset ιimageimage: {α : Type ?u.2723} → {β : Type ?u.2722} → [inst : DecidableEq β] → (α → β) → Finset α → Finset βg : Setg: ι → ιι).ι: Type ?u.1725PairwiseDisjointf :=f: ι → αGoals accomplished! 🐙α: Type u_2
ι: Type u_1
ι': Type ?u.1728
inst✝²: DecidableEq ι
inst✝¹: SemilatticeInf α
inst✝: OrderBot α
s: Finset ι
f: ι → α
hs: PairwiseDisjoint (↑s) f
g: ι → ι
hf: ∀ (a : ι), f (g a) ≤ f aPairwiseDisjoint (↑(Finset.image g s)) fα: Type u_2
ι: Type u_1
ι': Type ?u.1728
inst✝²: DecidableEq ι
inst✝¹: SemilatticeInf α
inst✝: OrderBot α
s: Finset ι
f: ι → α
hs: PairwiseDisjoint (↑s) f
g: ι → ι
hf: ∀ (a : ι), f (g a) ≤ f aPairwiseDisjoint (↑(Finset.image g s)) fα: Type u_2
ι: Type u_1
ι': Type ?u.1728
inst✝²: DecidableEq ι
inst✝¹: SemilatticeInf α
inst✝: OrderBot α
s: Finset ι
f: ι → α
hs: PairwiseDisjoint (↑s) f
g: ι → ι
hf: ∀ (a : ι), f (g a) ≤ f aPairwiseDisjoint (g '' ↑s) fα: Type u_2
ι: Type u_1
ι': Type ?u.1728
inst✝²: DecidableEq ι
inst✝¹: SemilatticeInf α
inst✝: OrderBot α
s: Finset ι
f: ι → α
hs: PairwiseDisjoint (↑s) f
g: ι → ι
hf: ∀ (a : ι), f (g a) ≤ f aPairwiseDisjoint (g '' ↑s) fα: Type u_2
ι: Type u_1
ι': Type ?u.1728
inst✝²: DecidableEq ι
inst✝¹: SemilatticeInf α
inst✝: OrderBot α
s: Finset ι
f: ι → α
hs: PairwiseDisjoint (↑s) f
g: ι → ι
hf: ∀ (a : ι), f (g a) ≤ f aPairwiseDisjoint (↑(Finset.image g s)) f#align set.pairwise_disjoint.image_finset_of_leGoals accomplished! 🐙Set.PairwiseDisjoint.image_finset_of_le variable [LatticeSet.PairwiseDisjoint.image_finset_of_le: ∀ {α : Type u_2} {ι : Type u_1} [inst : DecidableEq ι] [inst_1 : SemilatticeInf α] [inst_2 : OrderBot α] {s : Finset ι} {f : ι → α}, PairwiseDisjoint (↑s) f → ∀ {g : ι → ι}, (∀ (a : ι), f (g a) ≤ f a) → PairwiseDisjoint (↑(Finset.image g s)) fα] [OrderBotα: Type ?u.3867α] /-- Bind operation for `Set.PairwiseDisjoint`. In a complete lattice, you can use `Set.PairwiseDisjoint.biUnion`. -/ theoremα: Type ?u.3540PairwiseDisjoint.biUnion_finset {PairwiseDisjoint.biUnion_finset: ∀ {α : Type u_3} {ι : Type u_2} {ι' : Type u_1} [inst : Lattice α] [inst_1 : OrderBot α] {s : Set ι'} {g : ι' → Finset ι} {f : ι → α}, (PairwiseDisjoint s fun i' => sup (g i') f) → (∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) f) → PairwiseDisjoint (iUnion fun i => iUnion fun h => ↑(g i)) fs : Sets: Set ι'ι'} {ι': Type ?u.3873g :g: ι' → Finset ιι' → Finsetι': Type ?u.3873ι} {ι: Type ?u.3870f :f: ι → αι →ι: Type ?u.3870α} (α: Type ?u.3867hs :hs: PairwiseDisjoint s fun i' => sup (g i') fs.PairwiseDisjoint funs: Set ι'i' :i': ι'ι' => (ι': Type ?u.3873gg: ι' → Finset ιi').i': ι'supsup: {α : Type ?u.4290} → {β : Type ?u.4289} → [inst : SemilatticeSup α] → [inst : OrderBot α] → Finset β → (β → α) → αf) (f: ι → αhg : ∀hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) fi ∈i: ?m.4691s, (s: Set ι'gg: ι' → Finset ιi : Seti: ?m.4691ι).ι: Type ?u.3870PairwiseDisjointf) : (⋃f: ι → αi ∈i: ?m.4920s, ↑(s: Set ι'gg: ι' → Finset ιi)).i: ?m.4920PairwiseDisjointf :=f: ι → αGoals accomplished! 🐙α: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) fPairwiseDisjoint (iUnion fun i => iUnion fun h => ↑(g i)) fα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) f
a: ι
ha: a ∈ iUnion fun i => iUnion fun h => ↑(g i)
b: ι
hb: b ∈ iUnion fun i => iUnion fun h => ↑(g i)
hab: a ≠ bα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) fPairwiseDisjoint (iUnion fun i => iUnion fun h => ↑(g i)) fα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) f
a: ι
ha: a ∈ iUnion fun i => iUnion fun h => ↑(g i)
b: ι
hb: b ∈ iUnion fun i => iUnion fun h => ↑(g i)
hab: a ≠ bα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) fPairwiseDisjoint (iUnion fun i => iUnion fun h => ↑(g i)) fα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) fPairwiseDisjoint (iUnion fun i => iUnion fun h => ↑(g i)) fα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) fPairwiseDisjoint (iUnion fun i => iUnion fun h => ↑(g i)) fα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) f
a, b: ι
hab: a ≠ b
c: ι'
hc: c ∈ s
ha: a ∈ ↑(g c)
d: ι'
hd: d ∈ s
hb: b ∈ ↑(g d)
hcd: g c = g d
intro.intro.intro.intro.inlα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) f
a, b: ι
hab: a ≠ b
c: ι'
hc: c ∈ s
ha: a ∈ ↑(g c)
d: ι'
hd: d ∈ s
hb: b ∈ ↑(g d)
hcd: g c ≠ g d
intro.intro.intro.intro.inrα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) fPairwiseDisjoint (iUnion fun i => iUnion fun h => ↑(g i)) fα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) f
a, b: ι
hab: a ≠ b
c: ι'
hc: c ∈ s
ha: a ∈ ↑(g c)
d: ι'
hd: d ∈ s
hb: b ∈ ↑(g d)
hcd: g c = g d
intro.intro.intro.intro.inlα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) f
a, b: ι
hab: a ≠ b
c: ι'
hc: c ∈ s
ha: a ∈ ↑(g c)
d: ι'
hd: d ∈ s
hb: b ∈ ↑(g d)
hcd: g c = g d
intro.intro.intro.intro.inlα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) f
a, b: ι
hab: a ≠ b
c: ι'
hc: c ∈ s
ha: a ∈ ↑(g c)
d: ι'
hd: d ∈ s
hb: b ∈ ↑(g d)
hcd: g c ≠ g d
intro.intro.intro.intro.inrα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) f
a, b: ι
hab: a ≠ b
c: ι'
hc: c ∈ s
ha: a ∈ ↑(g c)
d: ι'
hd: d ∈ s
hb: b ∈ ↑(g d)
hcd: g c = g d
intro.intro.intro.intro.inlGoals accomplished! 🐙Goals accomplished! 🐙Goals accomplished! 🐙α: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) fPairwiseDisjoint (iUnion fun i => iUnion fun h => ↑(g i)) fα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) f
a, b: ι
hab: a ≠ b
c: ι'
hc: c ∈ s
ha: a ∈ ↑(g c)
d: ι'
hd: d ∈ s
hb: b ∈ ↑(g d)
hcd: g c ≠ g d
intro.intro.intro.intro.inrα: Type u_3
ι: Type u_2
ι': Type u_1
inst✝¹: Lattice α
inst✝: OrderBot α
s: Set ι'
g: ι' → Finset ι
f: ι → α
hs: PairwiseDisjoint s fun i' => sup (g i') f
hg: ∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) f
a, b: ι
hab: a ≠ b
c: ι'
hc: c ∈ s
ha: a ∈ ↑(g c)
d: ι'
hd: d ∈ s
hb: b ∈ ↑(g d)
hcd: g c ≠ g d
intro.intro.intro.intro.inr#align set.pairwise_disjoint.bUnion_finsetGoals accomplished! 🐙Set.PairwiseDisjoint.biUnion_finset end Set namespace List variable {Set.PairwiseDisjoint.biUnion_finset: ∀ {α : Type u_3} {ι : Type u_2} {ι' : Type u_1} [inst : Lattice α] [inst_1 : OrderBot α] {s : Set ι'} {g : ι' → Finset ι} {f : ι → α}, (PairwiseDisjoint s fun i' => sup (g i') f) → (∀ (i : ι'), i ∈ s → PairwiseDisjoint (↑(g i)) f) → PairwiseDisjoint (iUnion fun i => iUnion fun h => ↑(g i)) fβ :β: Type ?u.6961Type _} [DecidableEqType _: Type (?u.6961+1)α] {α: Type ?u.6982r :r: α → α → Propα →α: Type ?u.6982α →α: Type ?u.6952Prop} {Prop: Typel : Listl: List αα} theoremα: Type ?u.6952pairwise_of_coe_toFinset_pairwise (pairwise_of_coe_toFinset_pairwise: ∀ {α : Type u_1} [inst : DecidableEq α] {r : α → α → Prop} {l : List α}, Set.Pairwise (↑(toFinset l)) r → Nodup l → Pairwise r lhl : (hl: Set.Pairwise (↑(toFinset l)) rl.l: List αtoFinset : SettoFinset: {α : Type ?u.7014} → [inst : DecidableEq α] → List α → Finset αα).Pairwiseα: Type ?u.6982r) (r: α → α → Prophn :hn: Nodup ll.Nodup) :l: List αl.Pairwisel: List αr :=r: α → α → PropGoals accomplished! 🐙#align list.pairwise_of_coe_to_finset_pairwiseGoals accomplished! 🐙List.pairwise_of_coe_toFinset_pairwise theoremList.pairwise_of_coe_toFinset_pairwise: ∀ {α : Type u_1} [inst : DecidableEq α] {r : α → α → Prop} {l : List α}, Set.Pairwise (↑(toFinset l)) r → Nodup l → Pairwise r lpairwise_iff_coe_toFinset_pairwise (pairwise_iff_coe_toFinset_pairwise: ∀ {α : Type u_1} [inst : DecidableEq α] {r : α → α → Prop} {l : List α}, Nodup l → Symmetric r → (Set.Pairwise (↑(toFinset l)) r ↔ Pairwise r l)hn :hn: Nodup ll.Nodup) (l: List αhs : Symmetrichs: Symmetric rr) : (r: α → α → Propl.l: List αtoFinset : SettoFinset: {α : Type ?u.7460} → [inst : DecidableEq α] → List α → Finset αα).Pairwiseα: Type ?u.7411r ↔r: α → α → Propl.Pairwisel: List αr :=r: α → α → PropGoals accomplished! 🐙#align list.pairwise_iff_coe_to_finset_pairwiseGoals accomplished! 🐙List.pairwise_iff_coe_toFinset_pairwise theoremList.pairwise_iff_coe_toFinset_pairwise: ∀ {α : Type u_1} [inst : DecidableEq α] {r : α → α → Prop} {l : List α}, Nodup l → Symmetric r → (Set.Pairwise (↑(toFinset l)) r ↔ Pairwise r l)pairwise_disjoint_of_coe_toFinset_pairwiseDisjoint {pairwise_disjoint_of_coe_toFinset_pairwiseDisjoint: ∀ {α : Type u_1} {ι : Type u_2} [inst : SemilatticeInf α] [inst_1 : OrderBot α] [inst_2 : DecidableEq ι] {l : List ι} {f : ι → α}, Set.PairwiseDisjoint (↑(toFinset l)) f → Nodup l → Pairwise (_root_.Disjoint on f) lαα: ?m.7897ι} [SemilatticeInfι: Type u_2α] [OrderBotα: ?m.7897α] [DecidableEqα: ?m.7897ι] {ι: ?m.7900l : Listl: List ιι} {ι: ?m.7900f :f: ι → αι →ι: ?m.7900α} (α: ?m.7897hl : (hl: Set.PairwiseDisjoint (↑(toFinset l)) fl.l: List ιtoFinset : SettoFinset: {α : Type ?u.8229} → [inst : DecidableEq α] → List α → Finset αι).ι: ?m.7900PairwiseDisjointf) (f: ι → αhn :hn: Nodup ll.Nodup) :l: List ιl.Pairwise (l: List ι_root_.Disjoint on_root_.Disjoint: {α : Type ?u.8722} → [inst : PartialOrder α] → [inst : OrderBot α] → α → α → Propf) :=f: ι → αpairwise_of_coe_toFinset_pairwisepairwise_of_coe_toFinset_pairwise: ∀ {α : Type ?u.8886} [inst : DecidableEq α] {r : α → α → Prop} {l : List α}, Set.Pairwise (↑(toFinset l)) r → Nodup l → Pairwise r lhlhl: Set.PairwiseDisjoint (↑(toFinset l)) fhn #align list.pairwise_disjoint_of_coe_to_finset_pairwise_disjointhn: Nodup lList.pairwise_disjoint_of_coe_toFinset_pairwiseDisjoint theoremList.pairwise_disjoint_of_coe_toFinset_pairwiseDisjoint: ∀ {α : Type u_1} {ι : Type u_2} [inst : SemilatticeInf α] [inst_1 : OrderBot α] [inst_2 : DecidableEq ι] {l : List ι} {f : ι → α}, Set.PairwiseDisjoint (↑(toFinset l)) f → Nodup l → Pairwise (_root_.Disjoint on f) lpairwiseDisjoint_iff_coe_toFinset_pairwise_disjoint {pairwiseDisjoint_iff_coe_toFinset_pairwise_disjoint: ∀ {α : Type u_1} {ι : Type u_2} [inst : SemilatticeInf α] [inst_1 : OrderBot α] [inst_2 : DecidableEq ι] {l : List ι} {f : ι → α}, Nodup l → (Set.PairwiseDisjoint (↑(toFinset l)) f ↔ Pairwise (_root_.Disjoint on f) l)αα: ?m.9049ι} [SemilatticeInfι: ?m.9052α] [OrderBotα: ?m.9049α] [DecidableEqα: ?m.9049ι] {ι: ?m.9052l : Listl: List ιι} {ι: ?m.9052f :f: ι → αι →ι: ?m.9052α} (α: ?m.9049hn :hn: Nodup ll.Nodup) : (l: List ιl.l: List ιtoFinset : SettoFinset: {α : Type ?u.9388} → [inst : DecidableEq α] → List α → Finset αι).ι: ?m.9052PairwiseDisjointf ↔f: ι → αl.Pairwise (l: List ι_root_.Disjoint on_root_.Disjoint: {α : Type ?u.9804} → [inst : PartialOrder α] → [inst : OrderBot α] → α → α → Propf) :=f: ι → αpairwise_iff_coe_toFinset_pairwisepairwise_iff_coe_toFinset_pairwise: ∀ {α : Type ?u.9967} [inst : DecidableEq α] {r : α → α → Prop} {l : List α}, Nodup l → Symmetric r → (Set.Pairwise (↑(toFinset l)) r ↔ Pairwise r l)hn (hn: Nodup lsymmetric_disjoint.comapsymmetric_disjoint: ∀ {α : Type ?u.10061} [inst : PartialOrder α] [inst_1 : OrderBot α], Symmetric _root_.Disjointf) #align list.pairwise_disjoint_iff_coe_to_finset_pairwise_disjointf: ι → αList.pairwiseDisjoint_iff_coe_toFinset_pairwise_disjoint end ListList.pairwiseDisjoint_iff_coe_toFinset_pairwise_disjoint: ∀ {α : Type u_1} {ι : Type u_2} [inst : SemilatticeInf α] [inst_1 : OrderBot α] [inst_2 : DecidableEq ι] {l : List ι} {f : ι → α}, Nodup l → (Set.PairwiseDisjoint (↑(toFinset l)) f ↔ Pairwise (_root_.Disjoint on f) l)