@@ -620,17 +620,20 @@ theorem ncard_le_ncard_insert (a : α) (s : Set α) : s.ncard ≤ (insert a s).n
620
620
s.finite_or_infinite.elim (fun h ↦ ?_) (fun h ↦ by (rw [h.ncard]; exact Nat.zero_le _))
621
621
rw [ncard_insert_eq_ite h]; split_ifs <;> simp
622
622
623
- @[simp] theorem ncard_pair {a b : α} (h : a ≠ b) : ({a, b} : Set α).ncard = 2 := by
624
- rw [ncard_insert_of_not_mem, ncard_singleton]; simpa
623
+ theorem ncard_pair {a b : α} (h : a ≠ b) : ({a, b} : Set α).ncard = 2 := by
624
+ simp [h]
625
625
626
- @[simp] theorem ncard_diff_singleton_add_one {a : α} (h : a ∈ s)
626
+ -- removing `@[simp]` because the LHS is not in simp normal form
627
+ theorem ncard_diff_singleton_add_one {a : α} (h : a ∈ s)
627
628
(hs : s.Finite := by toFinite_tac) : (s \ {a}).ncard + 1 = s.ncard := by
628
- to_encard_tac; rw [hs.cast_ncard_eq, hs.diff.cast_ncard_eq,
629
- encard_diff_singleton_add_one h]
629
+ to_encard_tac
630
+ rw [hs.cast_ncard_eq, hs.diff.cast_ncard_eq, encard_diff_singleton_add_one h]
630
631
631
- @[simp] theorem ncard_diff_singleton_of_mem {a : α} (h : a ∈ s) (hs : s.Finite := by toFinite_tac) :
632
- (s \ {a}).ncard = s.ncard - 1 :=
633
- eq_tsub_of_add_eq (ncard_diff_singleton_add_one h hs)
632
+ @[simp] theorem ncard_diff_singleton_of_mem {a : α} (h : a ∈ s) :
633
+ (s \ {a}).ncard = s.ncard - 1 := by
634
+ rcases s.infinite_or_finite with hs | hs
635
+ · simp_all [ncard, Infinite.diff hs (finite_singleton a)]
636
+ · exact eq_tsub_of_add_eq (ncard_diff_singleton_add_one h hs)
634
637
635
638
theorem ncard_diff_singleton_lt_of_mem {a : α} (h : a ∈ s) (hs : s.Finite := by toFinite_tac) :
636
639
(s \ {a}).ncard < s.ncard := by
@@ -643,13 +646,10 @@ theorem ncard_diff_singleton_le (s : Set α) (a : α) : (s \ {a}).ncard ≤ s.nc
643
646
exact (hs.diff (by simp : Set.Finite {a})).ncard
644
647
645
648
theorem pred_ncard_le_ncard_diff_singleton (s : Set α) (a : α) : s.ncard - 1 ≤ (s \ {a}).ncard := by
646
- rcases s.finite_or_infinite with hs | hs
647
- · by_cases h : a ∈ s
648
- · rw [ncard_diff_singleton_of_mem h hs]
649
- rw [diff_singleton_eq_self h]
650
- apply Nat.pred_le
651
- convert Nat.zero_le _
652
- rw [hs.ncard]
649
+ by_cases h : a ∈ s
650
+ · rw [ncard_diff_singleton_of_mem h]
651
+ rw [diff_singleton_eq_self h]
652
+ apply Nat.pred_le
653
653
654
654
theorem ncard_exchange {a b : α} (ha : a ∉ s) (hb : b ∈ s) : (insert a (s \ {b})).ncard = s.ncard :=
655
655
congr_arg ENat.toNat <| encard_exchange ha hb
0 commit comments