@@ -220,7 +220,7 @@ This differs from `insert a ∅` in that it does not require a `decidable_eq` in
220
220
-/
221
221
instance : has_singleton α (finset α) := ⟨λ a, ⟨{a}, nodup_singleton a⟩⟩
222
222
223
- @[simp] theorem singleton_val (a : α) : ({a} : finset α).1 = a :: 0 := rfl
223
+ @[simp] theorem singleton_val (a : α) : ({a} : finset α).1 = a ::ₘ 0 := rfl
224
224
225
225
@[simp] theorem mem_singleton {a b : α} : b ∈ ({a} : finset α) ↔ b = a := mem_singleton
226
226
@@ -264,15 +264,15 @@ singleton_subset_set_iff
264
264
`insert a s` when it is defined, but unlike `insert a s` it does not require `decidable_eq α`,
265
265
and the union is guaranteed to be disjoint. -/
266
266
def cons {α} (a : α) (s : finset α) (h : a ∉ s) : finset α :=
267
- ⟨a :: s.1 , multiset.nodup_cons.2 ⟨h, s.2 ⟩⟩
267
+ ⟨a ::ₘ s.1 , multiset.nodup_cons.2 ⟨h, s.2 ⟩⟩
268
268
269
269
@[simp] theorem mem_cons {α a s h b} : b ∈ @cons α a s h ↔ b = a ∨ b ∈ s :=
270
270
by rcases s with ⟨⟨s⟩⟩; apply list.mem_cons_iff
271
271
272
- @[simp] theorem cons_val {a : α} {s : finset α} (h : a ∉ s) : (cons a s h).1 = a :: s.1 := rfl
272
+ @[simp] theorem cons_val {a : α} {s : finset α} (h : a ∉ s) : (cons a s h).1 = a ::ₘ s.1 := rfl
273
273
274
- @[simp] theorem mk_cons {a : α} {s : multiset α} (h : (a :: s).nodup) :
275
- (⟨a :: s, h⟩ : finset α) = cons a ⟨s, (multiset.nodup_cons.1 h).2 ⟩ (multiset.nodup_cons.1 h).1 :=
274
+ @[simp] theorem mk_cons {a : α} {s : multiset α} (h : (a ::ₘ s).nodup) :
275
+ (⟨a ::ₘ s, h⟩ : finset α) = cons a ⟨s, (multiset.nodup_cons.1 h).2 ⟩ (multiset.nodup_cons.1 h).1 :=
276
276
rfl
277
277
278
278
@[simp] theorem nonempty_cons {a : α} {s : finset α} (h : a ∉ s) : (cons a s h).nonempty :=
@@ -305,10 +305,10 @@ theorem insert_def (a : α) (s : finset α) : insert a s = ⟨_, nodup_ndinsert
305
305
306
306
@[simp] theorem insert_val (a : α) (s : finset α) : (insert a s).1 = ndinsert a s.1 := rfl
307
307
308
- theorem insert_val' (a : α) (s : finset α) : (insert a s).1 = erase_dup (a :: s.1 ) :=
308
+ theorem insert_val' (a : α) (s : finset α) : (insert a s).1 = erase_dup (a ::ₘ s.1 ) :=
309
309
by rw [erase_dup_cons, erase_dup_eq_self]; refl
310
310
311
- theorem insert_val_of_not_mem {a : α} {s : finset α} (h : a ∉ s) : (insert a s).1 = a :: s.1 :=
311
+ theorem insert_val_of_not_mem {a : α} {s : finset α} (h : a ∉ s) : (insert a s).1 = a ::ₘ s.1 :=
312
312
by rw [insert_val, ndinsert_of_not_mem h]
313
313
314
314
@[simp] theorem mem_insert {a b : α} {s : finset α} : a ∈ insert b s ↔ a = b ∨ a ∈ s := mem_ndinsert
@@ -373,7 +373,7 @@ protected theorem induction {α : Type*} {p : finset α → Prop} [decidable_eq
373
373
(h₁ : p ∅) (h₂ : ∀ ⦃a : α⦄ {s : finset α}, a ∉ s → p s → p (insert a s)) : ∀ s, p s
374
374
| ⟨s, nd⟩ := multiset.induction_on s (λ _, h₁) (λ a s IH nd, begin
375
375
cases nodup_cons.1 nd with m nd',
376
- rw [← (eq_of_veq _ : insert a (finset.mk s _) = ⟨a:: s, nd⟩)],
376
+ rw [← (eq_of_veq _ : insert a (finset.mk s _) = ⟨a ::ₘ s, nd⟩)],
377
377
{ exact h₂ (by exact m) (IH nd') },
378
378
{ rw [insert_val, ndinsert_of_not_mem m] }
379
379
end ) nd
@@ -1215,7 +1215,7 @@ mem_erase_dup
1215
1215
rfl
1216
1216
1217
1217
@[simp] lemma to_finset_cons (a : α) (s : multiset α) :
1218
- to_finset (a :: s) = insert a (to_finset s) :=
1218
+ to_finset (a ::ₘ s) = insert a (to_finset s) :=
1219
1219
finset.eq_of_veq erase_dup_cons
1220
1220
1221
1221
@[simp] lemma to_finset_add (s t : multiset α) :
0 commit comments