Theorem: LO.UnaryModalOperator.multimop_injective' (Logic/Modal/LogicSymbol.lean)

State before:
ι : Type u_2
F : Type u_1
inst✝ : UnaryModalOperator ι F
i : ι
p q : F
n : ℕ
⊢ (mop i)^[n] p = (mop i)^[n] q ↔ p = q
Tactic:
constructor
State after:
case mp
ι : Type u_2
F : Type u_1
inst✝ : UnaryModalOperator ι F
i : ι
p q : F
n : ℕ
⊢ (mop i)^[n] p = (mop i)^[n] q → p = q

case mpr
ι : Type u_2
F : Type u_1
inst✝ : UnaryModalOperator ι F
i : ι
p q : F
n : ℕ
⊢ p = q → (mop i)^[n] p = (mop i)^[n] q

State before:
case mp
ι : Type u_2
F : Type u_1
inst✝ : UnaryModalOperator ι F
i : ι
p q : F
n : ℕ
⊢ (mop i)^[n] p = (mop i)^[n] q → p = q

case mpr
ι : Type u_2
F : Type u_1
inst✝ : UnaryModalOperator ι F
i : ι
p q : F
n : ℕ
⊢ p = q → (mop i)^[n] p = (mop i)^[n] q
Tactic:
. intro h; exact multimop_injective h;
State after:
case mpr
ι : Type u_2
F : Type u_1
inst✝ : UnaryModalOperator ι F
i : ι
p q : F
n : ℕ
⊢ p = q → (mop i)^[n] p = (mop i)^[n] q

State before:
case mpr
ι : Type u_2
F : Type u_1
inst✝ : UnaryModalOperator ι F
i : ι
p q : F
n : ℕ
⊢ p = q → (mop i)^[n] p = (mop i)^[n] q
Tactic:
. simp_all;
State after:
no goals

State before:
case mp
ι : Type u_2
F : Type u_1
inst✝ : UnaryModalOperator ι F
i : ι
p q : F
n : ℕ
⊢ (mop i)^[n] p = (mop i)^[n] q → p = q
Tactic:
intro h
State after:
case mp
ι : Type u_2
F : Type u_1
inst✝ : UnaryModalOperator ι F
i : ι
p q : F
n : ℕ
h : (mop i)^[n] p = (mop i)^[n] q
⊢ p = q

State before:
case mp
ι : Type u_2
F : Type u_1
inst✝ : UnaryModalOperator ι F
i : ι
p q : F
n : ℕ
h : (mop i)^[n] p = (mop i)^[n] q
⊢ p = q
Tactic:
exact multimop_injective h
State after:
no goals

State before:
case mpr
ι : Type u_2
F : Type u_1
inst✝ : UnaryModalOperator ι F
i : ι
p q : F
n : ℕ
⊢ p = q → (mop i)^[n] p = (mop i)^[n] q
Tactic:
simp_all
State after:
no goals