@@ -30,18 +30,18 @@ def of_real (r : ℝ) : ℂ := ⟨r, 0⟩
30
30
instance : has_coe ℝ ℂ := ⟨of_real⟩
31
31
@[simp] lemma of_real_eq_coe (r : ℝ) : of_real r = r := rfl
32
32
33
- @[simp, elim_cast ] lemma of_real_re (r : ℝ) : (r : ℂ).re = r := rfl
34
- @[simp, elim_cast ] lemma of_real_im (r : ℝ) : (r : ℂ).im = 0 := rfl
33
+ @[simp, norm_cast ] lemma of_real_re (r : ℝ) : (r : ℂ).re = r := rfl
34
+ @[simp, norm_cast ] lemma of_real_im (r : ℝ) : (r : ℂ).im = 0 := rfl
35
35
36
- @[simp, elim_cast ] theorem of_real_inj {z w : ℝ} : (z : ℂ) = w ↔ z = w :=
36
+ @[simp, norm_cast ] theorem of_real_inj {z w : ℝ} : (z : ℂ) = w ↔ z = w :=
37
37
⟨congr_arg re, congr_arg _⟩
38
38
39
39
instance : has_zero ℂ := ⟨(0 : ℝ)⟩
40
40
instance : inhabited ℂ := ⟨0 ⟩
41
41
42
42
@[simp] lemma zero_re : (0 : ℂ).re = 0 := rfl
43
43
@[simp] lemma zero_im : (0 : ℂ).im = 0 := rfl
44
- @[simp, squash_cast ] lemma of_real_zero : ((0 : ℝ) : ℂ) = 0 := rfl
44
+ @[simp, norm_cast ] lemma of_real_zero : ((0 : ℝ) : ℂ) = 0 := rfl
45
45
46
46
@[simp] theorem of_real_eq_zero {z : ℝ} : (z : ℂ) = 0 ↔ z = 0 := of_real_inj
47
47
theorem of_real_ne_zero {z : ℝ} : (z : ℂ) ≠ 0 ↔ z ≠ 0 := not_congr of_real_eq_zero
@@ -50,7 +50,7 @@ instance : has_one ℂ := ⟨(1 : ℝ)⟩
50
50
51
51
@[simp] lemma one_re : (1 : ℂ).re = 1 := rfl
52
52
@[simp] lemma one_im : (1 : ℂ).im = 0 := rfl
53
- @[simp, squash_cast ] lemma of_real_one : ((1 : ℝ) : ℂ) = 1 := rfl
53
+ @[simp, norm_cast ] lemma of_real_one : ((1 : ℝ) : ℂ) = 1 := rfl
54
54
55
55
def I : ℂ := ⟨0 , 1 ⟩
56
56
@@ -61,22 +61,22 @@ instance : has_add ℂ := ⟨λ z w, ⟨z.re + w.re, z.im + w.im⟩⟩
61
61
62
62
@[simp] lemma add_re (z w : ℂ) : (z + w).re = z.re + w.re := rfl
63
63
@[simp] lemma add_im (z w : ℂ) : (z + w).im = z.im + w.im := rfl
64
- @[simp, move_cast ] lemma of_real_add (r s : ℝ) : ((r + s : ℝ) : ℂ) = r + s := ext_iff.2 $ by simp
64
+ @[simp, norm_cast ] lemma of_real_add (r s : ℝ) : ((r + s : ℝ) : ℂ) = r + s := ext_iff.2 $ by simp
65
65
66
- @[simp, squash_cast, move_cast ] lemma of_real_bit0 (r : ℝ) : ((bit0 r : ℝ) : ℂ) = bit0 r := ext_iff.2 $ by simp [bit0]
67
- @[simp, squash_cast, move_cast ] lemma of_real_bit1 (r : ℝ) : ((bit1 r : ℝ) : ℂ) = bit1 r := ext_iff.2 $ by simp [bit1]
66
+ @[simp, norm_cast ] lemma of_real_bit0 (r : ℝ) : ((bit0 r : ℝ) : ℂ) = bit0 r := ext_iff.2 $ by simp [bit0]
67
+ @[simp, norm_cast ] lemma of_real_bit1 (r : ℝ) : ((bit1 r : ℝ) : ℂ) = bit1 r := ext_iff.2 $ by simp [bit1]
68
68
69
69
instance : has_neg ℂ := ⟨λ z, ⟨-z.re, -z.im⟩⟩
70
70
71
71
@[simp] lemma neg_re (z : ℂ) : (-z).re = -z.re := rfl
72
72
@[simp] lemma neg_im (z : ℂ) : (-z).im = -z.im := rfl
73
- @[simp, move_cast ] lemma of_real_neg (r : ℝ) : ((-r : ℝ) : ℂ) = -r := ext_iff.2 $ by simp
73
+ @[simp, norm_cast ] lemma of_real_neg (r : ℝ) : ((-r : ℝ) : ℂ) = -r := ext_iff.2 $ by simp
74
74
75
75
instance : has_mul ℂ := ⟨λ z w, ⟨z.re * w.re - z.im * w.im, z.re * w.im + z.im * w.re⟩⟩
76
76
77
77
@[simp] lemma mul_re (z w : ℂ) : (z * w).re = z.re * w.re - z.im * w.im := rfl
78
78
@[simp] lemma mul_im (z w : ℂ) : (z * w).im = z.re * w.im + z.im * w.re := rfl
79
- @[simp, move_cast ] lemma of_real_mul (r s : ℝ) : ((r * s : ℝ) : ℂ) = r * s := ext_iff.2 $ by simp
79
+ @[simp, norm_cast ] lemma of_real_mul (r s : ℝ) : ((r * s : ℝ) : ℂ) = r * s := ext_iff.2 $ by simp
80
80
81
81
lemma smul_re (r : ℝ) (z : ℂ) : (↑r * z).re = r * z.re := by simp
82
82
lemma smul_im (r : ℝ) (z : ℂ) : (↑r * z).im = r * z.im := by simp
@@ -201,8 +201,8 @@ by refine { zero := 0, add := (+), neg := has_neg.neg, one := 1, mul := (*), ..}
201
201
202
202
@[simp] lemma sub_re (z w : ℂ) : (z - w).re = z.re - w.re := rfl
203
203
@[simp] lemma sub_im (z w : ℂ) : (z - w).im = z.im - w.im := rfl
204
- @[simp, move_cast ] lemma of_real_sub (r s : ℝ) : ((r - s : ℝ) : ℂ) = r - s := ext_iff.2 $ by simp
205
- @[simp, move_cast ] lemma of_real_pow (r : ℝ) (n : ℕ) : ((r ^ n : ℝ) : ℂ) = r ^ n :=
204
+ @[simp, norm_cast ] lemma of_real_sub (r s : ℝ) : ((r - s : ℝ) : ℂ) = r - s := ext_iff.2 $ by simp
205
+ @[simp, norm_cast ] lemma of_real_pow (r : ℝ) (n : ℕ) : ((r ^ n : ℝ) : ℂ) = r ^ n :=
206
206
by induction n; simp [*, of_real_mul, pow_succ]
207
207
208
208
theorem sub_conj (z : ℂ) : z - conj z = (2 * z.im : ℝ) * I :=
@@ -223,7 +223,7 @@ theorem inv_def (z : ℂ) : z⁻¹ = conj z * ((norm_sq z)⁻¹:ℝ) := rfl
223
223
@[simp] lemma inv_re (z : ℂ) : (z⁻¹).re = z.re / norm_sq z := by simp [inv_def, division_def]
224
224
@[simp] lemma inv_im (z : ℂ) : (z⁻¹).im = -z.im / norm_sq z := by simp [inv_def, division_def]
225
225
226
- @[simp, move_cast ] lemma of_real_inv (r : ℝ) : ((r⁻¹ : ℝ) : ℂ) = r⁻¹ :=
226
+ @[simp, norm_cast ] lemma of_real_inv (r : ℝ) : ((r⁻¹ : ℝ) : ℂ) = r⁻¹ :=
227
227
ext_iff.2 $ begin
228
228
simp,
229
229
by_cases r = 0 , {simp [h]},
@@ -261,18 +261,18 @@ by simp [div_eq_mul_inv, mul_assoc, sub_eq_add_neg, add_comm, add_left_comm]
261
261
lemma div_im (z w : ℂ) : (z / w).im = z.im * w.re / norm_sq w - z.re * w.im / norm_sq w :=
262
262
by simp [div_eq_mul_inv, mul_assoc, sub_eq_add_neg, add_comm, add_left_comm]
263
263
264
- @[simp, move_cast ] lemma of_real_div (r s : ℝ) : ((r / s : ℝ) : ℂ) = r / s :=
264
+ @[simp, norm_cast ] lemma of_real_div (r s : ℝ) : ((r / s : ℝ) : ℂ) = r / s :=
265
265
is_ring_hom.map_div coe
266
266
267
- @[simp, move_cast ] lemma of_real_fpow (r : ℝ) (n : ℤ) : ((r ^ n : ℝ) : ℂ) = (r : ℂ) ^ n :=
267
+ @[simp, norm_cast ] lemma of_real_fpow (r : ℝ) (n : ℤ) : ((r ^ n : ℝ) : ℂ) = (r : ℂ) ^ n :=
268
268
is_ring_hom.map_fpow of_real r n
269
269
270
- @[simp, squash_cast ] theorem of_real_int_cast : ∀ n : ℤ, ((n : ℝ) : ℂ) = n :=
270
+ @[simp, norm_cast ] theorem of_real_int_cast : ∀ n : ℤ, ((n : ℝ) : ℂ) = n :=
271
271
int.eq_cast (λ n, ((n : ℝ) : ℂ))
272
272
(by rw [int.cast_one, of_real_one])
273
273
(λ _ _, by rw [int.cast_add, of_real_add])
274
274
275
- @[simp, squash_cast ] theorem of_real_nat_cast (n : ℕ) : ((n : ℝ) : ℂ) = n :=
275
+ @[simp, norm_cast ] theorem of_real_nat_cast (n : ℕ) : ((n : ℝ) : ℂ) = n :=
276
276
by rw [← int.cast_coe_nat, of_real_int_cast]; refl
277
277
278
278
@[simp] lemma conj_sub (z w : ℂ) : conj (z - w) = conj z - conj w :=
@@ -297,28 +297,28 @@ instance char_zero_complex : char_zero ℂ :=
297
297
add_group.char_zero_of_inj_zero $ λ n h,
298
298
by rwa [← of_real_nat_cast, of_real_eq_zero, nat.cast_eq_zero] at h
299
299
300
- @[simp, squash_cast ] theorem of_real_rat_cast : ∀ n : ℚ, ((n : ℝ) : ℂ) = n :=
300
+ @[simp, norm_cast ] theorem of_real_rat_cast : ∀ n : ℚ, ((n : ℝ) : ℂ) = n :=
301
301
by apply rat.eq_cast (λ n, ((n : ℝ) : ℂ)); simp
302
302
303
303
theorem re_eq_add_conj (z : ℂ) : (z.re : ℂ) = (z + conj z) / 2 :=
304
304
by rw [add_conj]; simp; rw [mul_div_cancel_left (z.re:ℂ) two_ne_zero']
305
305
306
- @[simp, elim_cast ] lemma nat_cast_re (n : ℕ) : (n : ℂ).re = n :=
306
+ @[simp, norm_cast ] lemma nat_cast_re (n : ℕ) : (n : ℂ).re = n :=
307
307
by rw [← of_real_nat_cast, of_real_re]
308
308
309
- @[simp, elim_cast ] lemma nat_cast_im (n : ℕ) : (n : ℂ).im = 0 :=
309
+ @[simp, norm_cast ] lemma nat_cast_im (n : ℕ) : (n : ℂ).im = 0 :=
310
310
by rw [← of_real_nat_cast, of_real_im]
311
311
312
- @[simp, elim_cast ] lemma int_cast_re (n : ℤ) : (n : ℂ).re = n :=
312
+ @[simp, norm_cast ] lemma int_cast_re (n : ℤ) : (n : ℂ).re = n :=
313
313
by rw [← of_real_int_cast, of_real_re]
314
314
315
- @[simp, elim_cast ] lemma int_cast_im (n : ℤ) : (n : ℂ).im = 0 :=
315
+ @[simp, norm_cast ] lemma int_cast_im (n : ℤ) : (n : ℂ).im = 0 :=
316
316
by rw [← of_real_int_cast, of_real_im]
317
317
318
- @[simp, elim_cast ] lemma rat_cast_re (q : ℚ) : (q : ℂ).re = q :=
318
+ @[simp, norm_cast ] lemma rat_cast_re (q : ℚ) : (q : ℂ).re = q :=
319
319
by rw [← of_real_rat_cast, of_real_re]
320
320
321
- @[simp, elim_cast ] lemma rat_cast_im (q : ℚ) : (q : ℂ).im = 0 :=
321
+ @[simp, norm_cast ] lemma rat_cast_im (q : ℚ) : (q : ℂ).im = 0 :=
322
322
by rw [← of_real_rat_cast, of_real_im]
323
323
324
324
noncomputable def abs (z : ℂ) : ℝ := (norm_sq z).sqrt
@@ -417,7 +417,7 @@ if hz : z = 0 then by simp [hz, zero_le_one]
417
417
else by rw [_root_.abs_div, abs_abs]; exact
418
418
div_le_of_le_mul (abs_pos.2 hz) (by rw mul_one; exact abs_im_le_abs _)
419
419
420
- @[simp, elim_cast ] lemma abs_cast_nat (n : ℕ) : abs (n : ℂ) = n :=
420
+ @[simp, norm_cast ] lemma abs_cast_nat (n : ℕ) : abs (n : ℂ) = n :=
421
421
by rw [← of_real_nat_cast, abs_of_nonneg (nat.cast_nonneg n)]
422
422
423
423
lemma norm_sq_eq_abs (x : ℂ) : norm_sq x = abs x ^ 2 :=
0 commit comments