Theorem: Complex.arg_conj
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

Proof steps:
state_before: a x✝ z x : ℂ
⊢ ((starRingEnd ℂ) x).arg = if x.arg = π then π else -x.arg
state_after: a x✝ z x : ℂ
⊢ (if 0 ≤ x.re then -Real.arcsin (x.im / abs x)
    else if 0 ≤ -x.im then Real.arcsin (x.im / abs x) + π else Real.arcsin (x.im / abs x) - π) =
    if x.re < 0 ∧ x.im = 0 then π
    else
      -if 0 ≤ x.re then Real.arcsin (x.im / abs x)
        else if 0 ≤ x.im then -Real.arcsin (x.im / abs x) + π else -Real.arcsin (x.im / abs x) - π
tactic: simp_rw [arg_eq_pi_iff, arg, neg_im, conj_im, conj_re, abs_conj, neg_div, neg_neg,
    Real.arcsin_neg]
state_before: a x✝ z x : ℂ
⊢ (if 0 ≤ x.re then -Real.arcsin (x.im / abs x)
    else if 0 ≤ -x.im then Real.arcsin (x.im / abs x) + π else Real.arcsin (x.im / abs x) - π) =
    if x.re < 0 ∧ x.im = 0 then π
    else
      -if 0 ≤ x.re then Real.arcsin (x.im / abs x)
        else if 0 ≤ x.im then -Real.arcsin (x.im / abs x) + π else -Real.arcsin (x.im / abs x) - π
state_after: case inl.inl
a x✝ z x : ℂ
hr : x.re < 0
hi : x.im < 0
⊢ (if 0 ≤ x.re then -Real.arcsin (x.im / abs x)
    else if 0 ≤ -x.im then Real.arcsin (x.im / abs x) + π else Real.arcsin (x.im / abs x) - π) =
    if x.re < 0 ∧ x.im = 0 then π
    else
      -if 0 ≤ x.re then Real.arcsin (x.im / abs x)
        else if 0 ≤ x.im then -Real.arcsin (x.im / abs x) + π else -Real.arcsin (x.im / abs x) - π

case inl.inr.inl
a x✝ z x : ℂ
hr : x.re < 0
hi : x.im = 0
⊢ (if 0 ≤ x.re then -Real.arcsin (x.im / abs x)
    else if 0 ≤ -x.im then Real.arcsin (x.im / abs x) + π else Real.arcsin (x.im / abs x) - π) =
    if x.re < 0 ∧ x.im = 0 then π
    else
      -if 0 ≤ x.re then Real.arcsin (x.im / abs x)
        else if 0 ≤ x.im then -Real.arcsin (x.im / abs x) + π else -Real.arcsin (x.im / abs x) - π

case inl.inr.inr
a x✝ z x : ℂ
hr : x.re < 0
hi : 0 < x.im
⊢ (if 0 ≤ x.re then -Real.arcsin (x.im / abs x)
    else if 0 ≤ -x.im then Real.arcsin (x.im / abs x) + π else Real.arcsin (x.im / abs x) - π) =
    if x.re < 0 ∧ x.im = 0 then π
    else
      -if 0 ≤ x.re then Real.arcsin (x.im / abs x)
        else if 0 ≤ x.im then -Real.arcsin (x.im / abs x) + π else -Real.arcsin (x.im / abs x) - π

case inr.inl.inl
a x✝ z x : ℂ
hr : x.re = 0
hi : x.im < 0
⊢ (if 0 ≤ x.re then -Real.arcsin (x.im / abs x)
    else if 0 ≤ -x.im then Real.arcsin (x.im / abs x) + π else Real.arcsin (x.im / abs x) - π) =
    if x.re < 0 ∧ x.im = 0 then π
    else
      -if 0 ≤ x.re then Real.arcsin (x.im / abs x)
        else if 0 ≤ x.im then -Real.arcsin (x.im / abs x) + π else -Real.arcsin (x.im / abs x) - π

case inr.inl.inr.inl
a x✝ z x : ℂ
hr : x.re = 0
hi : x.im = 0
⊢ (if 0 ≤ x.re then -Real.arcsin (x.im / abs x)
    else if 0 ≤ -x.im then Real.arcsin (x.im / abs x) + π else Real.arcsin (x.im / abs x) - π) =
    if x.re < 0 ∧ x.im = 0 then π
    else
      -if 0 ≤ x.re then Real.arcsin (x.im / abs x)
        else if 0 ≤ x.im then -Real.arcsin (x.im / abs x) + π else -Real.arcsin (x.im / abs x) - π

case inr.inl.inr.inr
a x✝ z x : ℂ
hr : x.re = 0
hi : 0 < x.im
⊢ (if 0 ≤ x.re then -Real.arcsin (x.im / abs x)
    else if 0 ≤ -x.im then Real.arcsin (x.im / abs x) + π else Real.arcsin (x.im / abs x) - π) =
    if x.re < 0 ∧ x.im = 0 then π
    else
      -if 0 ≤ x.re then Real.arcsin (x.im / abs x)
        else if 0 ≤ x.im then -Real.arcsin (x.im / abs x) + π else -Real.arcsin (x.im / abs x) - π

case inr.inr.inl
a x✝ z x : ℂ
hr : 0 < x.re
hi : x.im < 0
⊢ (if 0 ≤ x.re then -Real.arcsin (x.im / abs x)
    else if 0 ≤ -x.im then Real.arcsin (x.im / abs x) + π else Real.arcsin (x.im / abs x) - π) =
    if x.re < 0 ∧ x.im = 0 then π
    else
      -if 0 ≤ x.re then Real.arcsin (x.im / abs x)
        else if 0 ≤ x.im then -Real.arcsin (x.im / abs x) + π else -Real.arcsin (x.im / abs x) - π

case inr.inr.inr.inl
a x✝ z x : ℂ
hr : 0 < x.re
hi : x.im = 0
⊢ (if 0 ≤ x.re then -Real.arcsin (x.im / abs x)
    else if 0 ≤ -x.im then Real.arcsin (x.im / abs x) + π else Real.arcsin (x.im / abs x) - π) =
    if x.re < 0 ∧ x.im = 0 then π
    else
      -if 0 ≤ x.re then Real.arcsin (x.im / abs x)
        else if 0 ≤ x.im then -Real.arcsin (x.im / abs x) + π else -Real.arcsin (x.im / abs x) - π

case inr.inr.inr.inr
a x✝ z x : ℂ
hr : 0 < x.re
hi : 0 < x.im
⊢ (if 0 ≤ x.re then -Real.arcsin (x.im / abs x)
    else if 0 ≤ -x.im then Real.arcsin (x.im / abs x) + π else Real.arcsin (x.im / abs x) - π) =
    if x.re < 0 ∧ x.im = 0 then π
    else
      -if 0 ≤ x.re then Real.arcsin (x.im / abs x)
        else if 0 ≤ x.im then -Real.arcsin (x.im / abs x) + π else -Real.arcsin (x.im / abs x) - π
tactic: rcases lt_trichotomy x.re 0 with (hr | hr | hr) <;>
    rcases lt_trichotomy x.im 0 with (hi | hi | hi)