@@ -896,4 +896,79 @@ theorem card_Iio : #(Iio b) = b := by rw [← Nat.card_Iio b, ← map_valEmbeddi
896896
897897end card
898898
899+ /-! ### Perturbations of endpoints by one -/
900+
901+ /-
902+ Note: the `haveI`s in the statements below are needed for `0` and `1`
903+ to be defined in `Fin n`. One could instead add `[NeZero n]` at the
904+ top of this section, but then this instance would be required to
905+ rewrite using the lemmas.
906+ -/
907+
908+ section pm_one
909+
910+ lemma Iio_add_one_eq_Iic {n : ℕ} {b : Fin n} (hb : b + 1 < n) :
911+ haveI := b.neZero
912+ Iio (b + 1 ) = Iic b := by
913+ grind [= Fin.lt_def, = Fin.le_def, = Fin.val_add_one_of_lt']
914+
915+ lemma Iic_sub_one_eq_Iio {n : ℕ} {b : Fin n} :
916+ haveI := b.neZero
917+ (hb : 0 < b) → Iic (b - 1 ) = Iio b := by
918+ haveI := b.neZero
919+ grind [= Fin.lt_def, = Fin.le_def, = Fin.val_sub_one_of_ne_zero]
920+
921+ lemma Ici_add_one_eq_Ioi {n : ℕ} {a : Fin n} (ha : a + 1 < n) :
922+ haveI := a.neZero
923+ Ici (a + 1 ) = Ioi a := by
924+ haveI := a.neZero
925+ grind [= Fin.lt_def, = Fin.le_def, = Fin.val_add_one_of_lt']
926+
927+ lemma Ioi_sub_one_eq_Ici {n : ℕ} {a : Fin n} :
928+ haveI := a.neZero
929+ (ha : 0 < a) → Ioi (a - 1 ) = Ici a := by
930+ grind [= Fin.lt_def, = Fin.le_def, = Fin.val_sub_one_of_ne_zero]
931+
932+ lemma Ioc_sub_one_eq_Icc {n : ℕ} {a b : Fin n} :
933+ haveI := a.neZero
934+ (ha : 0 < a) → Ioc (a - 1 ) b = Icc a b := by
935+ grind [= Fin.lt_def, = Fin.le_def, = Fin.val_sub_one_of_ne_zero]
936+
937+ lemma Icc_add_one_eq_Ioc {n : ℕ} {a b : Fin n} (ha : a + 1 < n) :
938+ haveI := a.neZero
939+ Icc (a + 1 ) b = Ioc a b := by
940+ grind [= Fin.lt_def, = Fin.le_def, = Fin.val_add_one_of_lt']
941+
942+ lemma Ioo_sub_one_eq_Ico {n : ℕ} {a b : Fin n} :
943+ haveI := a.neZero
944+ (ha : 0 < a) → Ioo (a - 1 ) b = Ico a b := by
945+ grind [= Fin.lt_def, = Fin.le_def, = Fin.val_sub_one_of_ne_zero]
946+
947+ lemma Ico_add_one_eq_Ioo {n : ℕ} {a b : Fin n} (ha : a + 1 < n) :
948+ haveI := a.neZero
949+ Ico (a + 1 ) b = Ioo a b := by
950+ grind [= Fin.lt_def, = Fin.le_def, = Fin.val_add_one_of_lt']
951+
952+ lemma Icc_sub_one_eq_Ico {n : ℕ} {a b : Fin n} :
953+ haveI := a.neZero
954+ (hb : 0 < b) → Icc a (b - 1 ) = Ico a b := by
955+ grind [= Fin.lt_def, = Fin.le_def, = Fin.val_sub_one_of_ne_zero]
956+
957+ lemma Ico_add_one_eq_Icc {n : ℕ} {a b : Fin n} (hb : b + 1 < n) :
958+ haveI := a.neZero
959+ Ico a (b + 1 ) = Icc a b := by
960+ grind [= Fin.lt_def, = Fin.le_def, = Fin.val_add_one_of_lt']
961+
962+ lemma Ioc_sub_one_eq_Ioo {n : ℕ} {a b : Fin n} :
963+ haveI := a.neZero
964+ (hb : 0 < b) → Ioc a (b - 1 ) = Ioo a b := by
965+ grind [= Fin.lt_def, = Fin.le_def, = Fin.val_sub_one_of_ne_zero]
966+
967+ lemma Ioo_add_one_eq_Ioc {n : ℕ} {a b : Fin n} (hb : b + 1 < n) :
968+ haveI := a.neZero
969+ Ioo a (b + 1 ) = Ioc a b := by
970+ grind [= Fin.lt_def, = Fin.le_def, = Fin.val_add_one_of_lt']
971+
972+ end pm_one
973+
899974end Fin
0 commit comments