You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jul 24, 2024. It is now read-only.
refactor(data/is_R_or_C,analysis/inner_product_space): review API (#18919)
## Drop `is_R_or_C.abs` and lemmas about it
Use `has_norm.norm` instead. The norm is definitionally equal both to
`real.abs` and `complex.abs`, so it's easier to specialize generic
theorems to real numbers. Also, we don't have to convert between norm
and `is_R_or_C.abs` here and there.
- Drop `is_R_or_C.abs`, `is_R_or_C.norm_eq_abs`,
`is_R_or_C.abs_of_nonneg`, `is_R_or_C.abs_zero`,
`is_R_or_C.abs_one`, `is_R_or_C.abs_nonneg`,
`is_R_or_C.abs_eq_zero`, `is_R_or_C.abs_ne_zero`,
`is_R_or_C.abs_mul`, `is_R_or_C.abs_add`,
`is_R_or_C.is_absolute_value`, `is_R_or_C.abs_abs`,
`is_R_or_C.abs_pos`, `is_R_or_C.abs_neg`, `is_R_or_C.abs_inv`,
`is_R_or_C.abs_div`, `is_R_or_C.abs_abs_sub_le_abs_sub`,
`is_R_or_C.norm_sq_eq_abs`, `is_R_or_C.abs_to_real`,
`is_R_or_C.continuous_abs`, `is_R_or_C.abs_to_complex`,
`inner_product_space.core.abs_inner_symm`, `abs_inner_le_norm`.
## Rename/merge lemmas
### `is_R_or_C`
- Rename `is_R_or_C.of_real_smul` to `is_R_or_C.real_smul_of_real`.
- Merge `is_R_or_C.norm_real`, `is_R_or_C.norm_of_real`, and
`is_R_or_C.abs_of_real` into `is_R_or_C.norm_of_real`.
- Merge `is_R_or_C.abs_of_nat` and `is_R_or_C.abs_cast_nat` into
`is_R_or_C.norm_nat_cast`, use `has_norm.norm`, make it a `simp,
priority 900, is_R_or_C_simps, norm_cast` lemma.
- Rename `is_R_or_C.mul_self_abs` to `is_R_or_C.mul_self_norm`, use
`has_norm.norm`.
- Rename `is_R_or_C.abs_two` to `is_R_or_C.norm_two`, use
`has_norm.norm`.
- Rename `is_R_or_C.abs_conj` to `is_R_or_C.norm_conj`, use
`has_norm.norm`.
- Rename `is_R_or_C.abs_re_le_abs` to `is_R_or_C.abs_re_le_norm`, use
`has_norm.norm`.
- Rename `is_R_or_C.abs_im_le_abs` to `is_R_or_C.abs_im_le_norm`, use
`has_norm.norm`.
- Rename `is_R_or_C.re_le_abs` and `is_R_or_C.im_le_abs` to
`is_R_or_C.re_le_norm` and `is_R_or_C.im_le_norm`, respectively; use
`has_norm.norm`.
- Use `has_norm.norm` in `is_R_or_C.im_eq_zero_of_le` and
`is_R_or_C.re_eq_self_of_le`.
- Rename `is_R_or_C.abs_re_div_abs_le_one` and
`is_R_or_C.abs_im_div_abs_le_one` to
`is_R_or_C.abs_re_div_norm_le_one` and
`is_R_or_C.abs_im_div_norm_le_one`, respectively; use
`has_norm.norm`.
- Rename `is_R_or_C.re_eq_abs_of_mul_conj` to
`is_R_or_C.re_eq_norm_of_mul_conj`, use `has_norm.norm`.
- Rename `is_R_or_C.abs_sq_re_add_conj` and
`is_R_or_C.abs_sq_re_add_conj'` to `is_R_or_C.norm_sq_re_add_conj`
and `is_R_or_C.norm_sq_re_conj_add`, respectively; use
`has_norm.norm`.
- Use `has_norm.norm` in all lemmas/definitions about `is_cau_seq` and
`cau_seq` sequences of `is_R_or_C` numbers.
- Rename `is_R_or_C.is_cau_seq_abs` to `is_R_or_C.is_cau_seq_norm`,
use `has_norm.norm`.
### Inner products
- Rename `inner_product_space.core.inner_mul_conj_re_abs` to
`inner_product_space.core.inner_mul_symm_re_eq_norm`, use
`has_norm.norm`.
- Do the same in the root NS.
- Rename `inner_self_re_abs` to `inner_self_re_eq_norm`, use
`has_norm.norm`.
- Rename `inner_self_abs_to_K` to `inner_self_norm_to_K`, use
`has_norm.norm`.
- Rename `abs_inner_symm` to `norm_inner_symm`, use `has_norm.norm`.
- Rename
`abs_inner_div_norm_mul_norm_eq_one_of_ne_zero_of_ne_zero_mul` to
`norm_inner_div_norm_mul_norm_eq_one_of_ne_zero_of_ne_zero_mul`, use
`has_norm.norm`.
## Add lemmas
- Add `is_R_or_C.is_real_tfae` and `is_real_tfae.conj_eq_iff_im`.
- Add `is_R_or_C.norm_sq_apply`.
## Change attributes
- `is_R_or_C.zero_re'` is no longer a `simp` lemma
- `is_R_or_C.norm_conj` is now a `simp` lemma.
## Misc
- Reorder lemmas here and there to golf.
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
0 commit comments