@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
4
4
Authors: Scott Morrison, Yaël Dillies
5
5
-/
6
6
import order.locally_finite
7
+ import data.set.intervals.monoid
7
8
8
9
/-!
9
10
# Intervals as finsets
@@ -498,78 +499,65 @@ by { ext, simp [eq_comm] }
498
499
end linear_order
499
500
500
501
section ordered_cancel_add_comm_monoid
501
- variables [ordered_cancel_add_comm_monoid α] [has_exists_add_of_le α] [decidable_eq α]
502
- [locally_finite_order α]
502
+ variables [ordered_cancel_add_comm_monoid α] [has_exists_add_of_le α] [locally_finite_order α]
503
503
504
- lemma image_add_left_Icc (a b c : α) : (Icc a b).image ((+) c) = Icc (c + a) (c + b) :=
505
- begin
506
- ext x,
507
- rw [mem_image, mem_Icc],
508
- split,
509
- { rintro ⟨y, hy, rfl⟩,
510
- rw mem_Icc at hy,
511
- exact ⟨add_le_add_left hy.1 c, add_le_add_left hy.2 c⟩ },
512
- { intro hx,
513
- obtain ⟨y, hy⟩ := exists_add_of_le hx.1 ,
514
- rw add_assoc at hy,
515
- rw hy at hx,
516
- exact ⟨a + y, mem_Icc.2 ⟨le_of_add_le_add_left hx.1 , le_of_add_le_add_left hx.2 ⟩, hy.symm⟩ }
517
- end
504
+ @[simp] lemma map_add_left_Icc (a b c : α) :
505
+ (Icc a b).map (add_left_embedding c) = Icc (c + a) (c + b) :=
506
+ by { rw [← coe_inj, coe_map, coe_Icc, coe_Icc], exact set.image_const_add_Icc _ _ _ }
518
507
519
- lemma image_add_left_Ico (a b c : α) : (Ico a b).image ((+) c) = Ico (c + a) (c + b) :=
520
- begin
521
- ext x,
522
- rw [mem_image, mem_Ico],
523
- split,
524
- { rintro ⟨y, hy, rfl⟩,
525
- rw mem_Ico at hy,
526
- exact ⟨add_le_add_left hy.1 c, add_lt_add_left hy.2 c⟩ },
527
- { intro hx,
528
- obtain ⟨y, hy⟩ := exists_add_of_le hx.1 ,
529
- rw add_assoc at hy,
530
- rw hy at hx,
531
- exact ⟨a + y, mem_Ico.2 ⟨le_of_add_le_add_left hx.1 , lt_of_add_lt_add_left hx.2 ⟩, hy.symm⟩ }
532
- end
508
+ @[simp] lemma map_add_right_Icc (a b c : α) :
509
+ (Icc a b).map (add_right_embedding c) = Icc (a + c) (b + c) :=
510
+ by { rw [← coe_inj, coe_map, coe_Icc, coe_Icc], exact set.image_add_const_Icc _ _ _ }
533
511
534
- lemma image_add_left_Ioc (a b c : α) : (Ioc a b).image ((+) c) = Ioc (c + a) (c + b) :=
535
- begin
536
- ext x,
537
- rw [mem_image, mem_Ioc],
538
- refine ⟨_, λ hx, _⟩,
539
- { rintro ⟨y, hy, rfl⟩,
540
- rw mem_Ioc at hy,
541
- exact ⟨add_lt_add_left hy.1 c, add_le_add_left hy.2 c⟩ },
542
- { obtain ⟨y, hy⟩ := exists_add_of_le hx.1 .le,
543
- rw add_assoc at hy,
544
- rw hy at hx,
545
- exact ⟨a + y, mem_Ioc.2 ⟨lt_of_add_lt_add_left hx.1 , le_of_add_le_add_left hx.2 ⟩, hy.symm⟩ }
546
- end
512
+ @[simp] lemma map_add_left_Ico (a b c : α) :
513
+ (Ico a b).map (add_left_embedding c) = Ico (c + a) (c + b) :=
514
+ by { rw [← coe_inj, coe_map, coe_Ico, coe_Ico], exact set.image_const_add_Ico _ _ _ }
547
515
548
- lemma image_add_left_Ioo (a b c : α) : (Ioo a b).image ((+) c) = Ioo (c + a) (c + b) :=
549
- begin
550
- ext x,
551
- rw [mem_image, mem_Ioo],
552
- refine ⟨_, λ hx, _⟩,
553
- { rintro ⟨y, hy, rfl⟩,
554
- rw mem_Ioo at hy,
555
- exact ⟨add_lt_add_left hy.1 c, add_lt_add_left hy.2 c⟩ },
556
- { obtain ⟨y, hy⟩ := exists_add_of_le hx.1 .le,
557
- rw add_assoc at hy,
558
- rw hy at hx,
559
- exact ⟨a + y, mem_Ioo.2 ⟨lt_of_add_lt_add_left hx.1 , lt_of_add_lt_add_left hx.2 ⟩, hy.symm⟩ }
560
- end
516
+ @[simp] lemma map_add_right_Ico (a b c : α) :
517
+ (Ico a b).map (add_right_embedding c) = Ico (a + c) (b + c) :=
518
+ by { rw [← coe_inj, coe_map, coe_Ico, coe_Ico], exact set.image_add_const_Ico _ _ _ }
519
+
520
+ @[simp] lemma map_add_left_Ioc (a b c : α) :
521
+ (Ioc a b).map (add_left_embedding c) = Ioc (c + a) (c + b) :=
522
+ by { rw [← coe_inj, coe_map, coe_Ioc, coe_Ioc], exact set.image_const_add_Ioc _ _ _ }
523
+
524
+ @[simp] lemma map_add_right_Ioc (a b c : α) :
525
+ (Ioc a b).map (add_right_embedding c) = Ioc (a + c) (b + c) :=
526
+ by { rw [← coe_inj, coe_map, coe_Ioc, coe_Ioc], exact set.image_add_const_Ioc _ _ _ }
527
+
528
+ @[simp] lemma map_add_left_Ioo (a b c : α) :
529
+ (Ioo a b).map (add_left_embedding c) = Ioo (c + a) (c + b) :=
530
+ by { rw [← coe_inj, coe_map, coe_Ioo, coe_Ioo], exact set.image_const_add_Ioo _ _ _ }
531
+
532
+ @[simp] lemma map_add_right_Ioo (a b c : α) :
533
+ (Ioo a b).map (add_right_embedding c) = Ioo (a + c) (b + c) :=
534
+ by { rw [← coe_inj, coe_map, coe_Ioo, coe_Ioo], exact set.image_add_const_Ioo _ _ _ }
535
+
536
+ variables [decidable_eq α]
537
+
538
+ @[simp] lemma image_add_left_Icc (a b c : α) : (Icc a b).image ((+) c) = Icc (c + a) (c + b) :=
539
+ by { rw [← map_add_left_Icc, map_eq_image], refl }
540
+
541
+ @[simp] lemma image_add_left_Ico (a b c : α) : (Ico a b).image ((+) c) = Ico (c + a) (c + b) :=
542
+ by { rw [← map_add_left_Ico, map_eq_image], refl }
543
+
544
+ @[simp] lemma image_add_left_Ioc (a b c : α) : (Ioc a b).image ((+) c) = Ioc (c + a) (c + b) :=
545
+ by { rw [← map_add_left_Ioc, map_eq_image], refl }
546
+
547
+ @[simp] lemma image_add_left_Ioo (a b c : α) : (Ioo a b).image ((+) c) = Ioo (c + a) (c + b) :=
548
+ by { rw [← map_add_left_Ioo, map_eq_image], refl }
561
549
562
- lemma image_add_right_Icc (a b c : α) : (Icc a b).image (+ c) = Icc (a + c) (b + c) :=
563
- by { simp_rw add_comm _ c, exact image_add_left_Icc a b c }
550
+ @[simp] lemma image_add_right_Icc (a b c : α) : (Icc a b).image (+ c) = Icc (a + c) (b + c) :=
551
+ by { rw [← map_add_right_Icc, map_eq_image], refl }
564
552
565
553
lemma image_add_right_Ico (a b c : α) : (Ico a b).image (+ c) = Ico (a + c) (b + c) :=
566
- by { simp_rw add_comm _ c, exact image_add_left_Ico a b c }
554
+ by { rw [← map_add_right_Ico, map_eq_image], refl }
567
555
568
556
lemma image_add_right_Ioc (a b c : α) : (Ioc a b).image (+ c) = Ioc (a + c) (b + c) :=
569
- by { simp_rw add_comm _ c, exact image_add_left_Ioc a b c }
557
+ by { rw [← map_add_right_Ioc, map_eq_image], refl }
570
558
571
559
lemma image_add_right_Ioo (a b c : α) : (Ioo a b).image (+ c) = Ioo (a + c) (b + c) :=
572
- by { simp_rw add_comm _ c, exact image_add_left_Ioo a b c }
560
+ by { rw [← map_add_right_Ioo, map_eq_image], refl }
573
561
574
562
end ordered_cancel_add_comm_monoid
575
563
0 commit comments