Reducing to an interval modulo its length #
This file defines operations that reduce a number (in an Archimedean
LinearOrderedAddCommGroup
) to a number in a given interval, modulo the length of that
interval.
Main definitions #
toIcoDiv hp a b
(wherehp : 0 < p
): The unique integer such that this multiple ofp
, subtracted fromb
, is inIco a (a + p)
.toIcoMod hp a b
(wherehp : 0 < p
): Reduceb
to the intervalIco a (a + p)
.toIocDiv hp a b
(wherehp : 0 < p
): The unique integer such that this multiple ofp
, subtracted fromb
, is inIoc a (a + p)
.toIocMod hp a b
(wherehp : 0 < p
): Reduceb
to the intervalIoc a (a + p)
.
The unique integer such that this multiple of p
, subtracted from b
, is in Ico a (a + p)
.
Equations
- toIcoDiv hp a b = Exists.choose ⋯
Instances For
The unique integer such that this multiple of p
, subtracted from b
, is in Ioc a (a + p)
.
Equations
- toIocDiv hp a b = Exists.choose ⋯
Instances For
Note we omit toIcoDiv_zsmul_add'
as -m + toIcoDiv hp a b
is not very convenient.
Note we omit toIocDiv_zsmul_add'
as -m + toIocDiv hp a b
is not very convenient.
Links between the Ico
and Ioc
variants applied to the same element #
Alias of the forward direction of AddCommGroup.modEq_iff_toIcoMod_eq_left
.
Alias of the forward direction of AddCommGroup.modEq_iff_toIocMod_eq_right
.
If a
and b
fall within the same cycle WRT c
, then they are congruent modulo p
.
Alias of the reverse direction of toIcoMod_inj
.
If a
and b
fall within the same cycle WRT c
, then they are congruent modulo p
.
toIcoMod
as an equiv from the quotient.
Equations
- One or more equations did not get rendered due to their size.
Instances For
toIocMod
as an equiv from the quotient.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The circular order structure on α ⧸ AddSubgroup.zmultiples p
#
Equations
- One or more equations did not get rendered due to their size.
Equations
- QuotientAddGroup.circularPreorder = CircularPreorder.mk ⋯ ⋯ ⋯ ⋯
Equations
- QuotientAddGroup.circularOrder = let __src := QuotientAddGroup.circularPreorder; CircularOrder.mk ⋯