@@ -27,8 +27,8 @@ interval.
27
27
* `to_Ioc_div hp a b` (where `hp : 0 < p`): The unique integer such that this multiple of `p`,
28
28
subtracted from `b`, is in `Ioc a (a + p)`.
29
29
* `to_Ioc_mod hp a b` (where `hp : 0 < p`): Reduce `b` to the interval `Ioc a (a + p)`.
30
- * `add_comm_group.modeq p a b `: `a` and `b` are congruent modulo a multiple of `p`. See also
31
- `smodeq` which is a more general version in arbitrary submodules.
30
+ * `a ≡ b [PMOD p] `: `a` and `b` are congruent modulo a multiple of `p`. See also `smodeq` which is a
31
+ more general version in arbitrary submodules. This is notation for `add_comm_group.modeq p a b` .
32
32
33
33
## TODO
34
34
@@ -462,8 +462,10 @@ with `to_Ioc_mod hp a` at `b`, or `to_Ico_div hp a` disagrees with `to_Ioc_div h
462
462
def modeq (p a b : α) : Prop := ∀ z : ℤ, b - z • p ∉ set.Ioo a (a + p)
463
463
include hα
464
464
465
+ notation a ` ≡ `:50 b ` [PMOD `:50 p `]`:0 := modeq p a b
466
+
465
467
lemma tfae_modeq :
466
- tfae [modeq p a b ,
468
+ tfae [a ≡ b [PMOD p] ,
467
469
to_Ico_mod hp a b ≠ to_Ioc_mod hp a b,
468
470
to_Ico_mod hp a b + p = to_Ioc_mod hp a b,
469
471
to_Ico_mod hp a b = a] :=
@@ -492,17 +494,17 @@ end
492
494
variables {a b}
493
495
494
496
lemma modeq_iff_to_Ico_mod_ne_to_Ioc_mod :
495
- modeq p a b ↔ to_Ico_mod hp a b ≠ to_Ioc_mod hp a b := (tfae_modeq hp a b).out 0 1
497
+ a ≡ b [PMOD p] ↔ to_Ico_mod hp a b ≠ to_Ioc_mod hp a b := (tfae_modeq hp a b).out 0 1
496
498
lemma modeq_iff_to_Ico_mod_add_period_eq_to_Ioc_mod :
497
- modeq p a b ↔ to_Ico_mod hp a b + p = to_Ioc_mod hp a b := (tfae_modeq hp a b).out 0 2
499
+ a ≡ b [PMOD p] ↔ to_Ico_mod hp a b + p = to_Ioc_mod hp a b := (tfae_modeq hp a b).out 0 2
498
500
lemma modeq_iff_to_Ico_mod_eq_left :
499
- modeq p a b ↔ to_Ico_mod hp a b = a := (tfae_modeq hp a b).out 0 3
501
+ a ≡ b [PMOD p] ↔ to_Ico_mod hp a b = a := (tfae_modeq hp a b).out 0 3
500
502
501
503
lemma not_modeq_iff_to_Ico_mod_eq_to_Ioc_mod :
502
- ¬modeq p a b ↔ to_Ico_mod hp a b = to_Ioc_mod hp a b :=
504
+ ¬a ≡ b [PMOD p] ↔ to_Ico_mod hp a b = to_Ioc_mod hp a b :=
503
505
(modeq_iff_to_Ico_mod_ne_to_Ioc_mod _).not_left
504
506
505
- lemma modeq_iff_to_Ioc_mod_eq_right : modeq p a b ↔ to_Ioc_mod hp a b = a + p :=
507
+ lemma modeq_iff_to_Ioc_mod_eq_right : a ≡ b [PMOD p] ↔ to_Ioc_mod hp a b = a + p :=
506
508
begin
507
509
rw [modeq_iff_to_Ico_mod_ne_to_Ioc_mod hp, ne, to_Ico_mod_eq_iff hp, not_iff_comm],
508
510
obtain ⟨h₁, h₂⟩ := to_Ioc_mod_mem_Ioc hp a b,
@@ -511,19 +513,19 @@ begin
511
513
end
512
514
513
515
lemma not_modeq_iff_to_Ico_div_eq_to_Ioc_div :
514
- ¬modeq p a b ↔ to_Ico_div hp a b = to_Ioc_div hp a b :=
516
+ ¬a ≡ b [PMOD p] ↔ to_Ico_div hp a b = to_Ioc_div hp a b :=
515
517
by rw [not_modeq_iff_to_Ico_mod_eq_to_Ioc_mod hp,
516
518
to_Ico_mod, to_Ioc_mod, sub_right_inj, (zsmul_strict_mono_left hp).injective.eq_iff]
517
519
518
520
lemma modeq_iff_to_Ico_div_eq_to_Ioc_div_add_one :
519
- modeq p a b ↔ to_Ico_div hp a b = to_Ioc_div hp a b + 1 :=
521
+ a ≡ b [PMOD p] ↔ to_Ico_div hp a b = to_Ioc_div hp a b + 1 :=
520
522
by rw [modeq_iff_to_Ico_mod_add_period_eq_to_Ioc_mod hp, to_Ico_mod, to_Ioc_mod,
521
523
← eq_sub_iff_add_eq, sub_sub, sub_right_inj, ← add_one_zsmul,
522
524
(zsmul_strict_mono_left hp).injective.eq_iff]
523
525
524
526
include hp
525
527
526
- lemma modeq_iff_eq_add_zsmul : modeq p a b ↔ ∃ z : ℤ, b = a + z • p :=
528
+ lemma modeq_iff_eq_add_zsmul : a ≡ b [PMOD p] ↔ ∃ z : ℤ, b = a + z • p :=
527
529
begin
528
530
rw [modeq_iff_to_Ico_mod_eq_left hp],
529
531
split; intro h,
@@ -533,16 +535,16 @@ begin
533
535
exact ⟨lt_add_of_pos_right a hp, h⟩, },
534
536
end
535
537
536
- lemma not_modeq_iff_ne_add_zsmul : ¬modeq p a b ↔ ∀ z : ℤ, b ≠ a + z • p :=
538
+ lemma not_modeq_iff_ne_add_zsmul : ¬a ≡ b [PMOD p] ↔ ∀ z : ℤ, b ≠ a + z • p :=
537
539
by rw [modeq_iff_eq_add_zsmul hp, not_exists]
538
540
539
541
lemma modeq_iff_eq_mod_zmultiples :
540
- modeq p a b ↔ (b : α ⧸ add_subgroup.zmultiples p) = a :=
542
+ a ≡ b [PMOD p] ↔ (b : α ⧸ add_subgroup.zmultiples p) = a :=
541
543
by simp_rw [modeq_iff_eq_add_zsmul hp, quotient_add_group.eq_iff_sub_mem,
542
544
add_subgroup.mem_zmultiples_iff, eq_sub_iff_add_eq', eq_comm]
543
545
544
546
lemma not_modeq_iff_ne_mod_zmultiples :
545
- ¬modeq p a b ↔ (b : α ⧸ add_subgroup.zmultiples p) ≠ a :=
547
+ ¬a ≡ b [PMOD p] ↔ (b : α ⧸ add_subgroup.zmultiples p) ≠ a :=
546
548
(modeq_iff_eq_mod_zmultiples hp).not
547
549
548
550
end add_comm_group
0 commit comments