Theorem: FOL.NV.T_18_1 (FOL/NV/Margaris/Fol.lean)

State before:
P Q : Formula
v : VarName
⊢ IsProof ((forall_ v (P.iff_ Q)).imp_ ((forall_ v P).iff_ (forall_ v Q)))
Tactic:
apply IsDeduct.mp_ ((forall_ v (P.iff_ Q)).imp_ ((forall_ v Q).imp_ (forall_ v P)))
State after:
case a
P Q : Formula
v : VarName
⊢ IsDeduct ∅
    (((forall_ v (P.iff_ Q)).imp_ ((forall_ v Q).imp_ (forall_ v P))).imp_
      ((forall_ v (P.iff_ Q)).imp_ ((forall_ v P).iff_ (forall_ v Q))))

case a
P Q : Formula
v : VarName
⊢ IsDeduct ∅ ((forall_ v (P.iff_ Q)).imp_ ((forall_ v Q).imp_ (forall_ v P)))

State before:
case a
P Q : Formula
v : VarName
⊢ IsDeduct ∅
    (((forall_ v (P.iff_ Q)).imp_ ((forall_ v Q).imp_ (forall_ v P))).imp_
      ((forall_ v (P.iff_ Q)).imp_ ((forall_ v P).iff_ (forall_ v Q))))
Tactic:
apply IsDeduct.mp_ ((forall_ v (P.iff_ Q)).imp_ ((forall_ v P).imp_ (forall_ v Q)))
State after:
case a.a
P Q : Formula
v : VarName
⊢ IsDeduct ∅
    (((forall_ v (P.iff_ Q)).imp_ ((forall_ v P).imp_ (forall_ v Q))).imp_
      (((forall_ v (P.iff_ Q)).imp_ ((forall_ v Q).imp_ (forall_ v P))).imp_
        ((forall_ v (P.iff_ Q)).imp_ ((forall_ v P).iff_ (forall_ v Q)))))

case a.a
P Q : Formula
v : VarName
⊢ IsDeduct ∅ ((forall_ v (P.iff_ Q)).imp_ ((forall_ v P).imp_ (forall_ v Q)))

State before:
case a.a
P Q : Formula
v : VarName
⊢ IsDeduct ∅
    (((forall_ v (P.iff_ Q)).imp_ ((forall_ v P).imp_ (forall_ v Q))).imp_
      (((forall_ v (P.iff_ Q)).imp_ ((forall_ v Q).imp_ (forall_ v P))).imp_
        ((forall_ v (P.iff_ Q)).imp_ ((forall_ v P).iff_ (forall_ v Q)))))
Tactic:
simp only [def_iff_]
State after:
case a.a
P Q : Formula
v : VarName
⊢ IsDeduct ∅
    (((forall_ v ((P.imp_ Q).and_ (Q.imp_ P))).imp_ ((forall_ v P).imp_ (forall_ v Q))).imp_
      (((forall_ v ((P.imp_ Q).and_ (Q.imp_ P))).imp_ ((forall_ v Q).imp_ (forall_ v P))).imp_
        ((forall_ v ((P.imp_ Q).and_ (Q.imp_ P))).imp_
          (((forall_ v P).imp_ (forall_ v Q)).and_ ((forall_ v Q).imp_ (forall_ v P))))))

State before:
case a.a
P Q : Formula
v : VarName
⊢ IsDeduct ∅
    (((forall_ v ((P.imp_ Q).and_ (Q.imp_ P))).imp_ ((forall_ v P).imp_ (forall_ v Q))).imp_
      (((forall_ v ((P.imp_ Q).and_ (Q.imp_ P))).imp_ ((forall_ v Q).imp_ (forall_ v P))).imp_
        ((forall_ v ((P.imp_ Q).and_ (Q.imp_ P))).imp_
          (((forall_ v P).imp_ (forall_ v Q)).and_ ((forall_ v Q).imp_ (forall_ v P))))))
Tactic:
simp only [def_and_]
State after:
case a.a
P Q : Formula
v : VarName
⊢ IsDeduct ∅
    (((forall_ v ((P.imp_ Q).imp_ (Q.imp_ P).not_).not_).imp_ ((forall_ v P).imp_ (forall_ v Q))).imp_
      (((forall_ v ((P.imp_ Q).imp_ (Q.imp_ P).not_).not_).imp_ ((forall_ v Q).imp_ (forall_ v P))).imp_
        ((forall_ v ((P.imp_ Q).imp_ (Q.imp_ P).not_).not_).imp_
          (((forall_ v P).imp_ (forall_ v Q)).imp_ ((forall_ v Q).imp_ (forall_ v P)).not_).not_)))

State before:
case a.a
P Q : Formula
v : VarName
⊢ IsDeduct ∅
    (((forall_ v ((P.imp_ Q).imp_ (Q.imp_ P).not_).not_).imp_ ((forall_ v P).imp_ (forall_ v Q))).imp_
      (((forall_ v ((P.imp_ Q).imp_ (Q.imp_ P).not_).not_).imp_ ((forall_ v Q).imp_ (forall_ v P))).imp_
        ((forall_ v ((P.imp_ Q).imp_ (Q.imp_ P).not_).not_).imp_
          (((forall_ v P).imp_ (forall_ v Q)).imp_ ((forall_ v Q).imp_ (forall_ v P)).not_).not_)))
Tactic:
SC
State after:
no goals

State before:
case a.a
P Q : Formula
v : VarName
⊢ IsDeduct ∅ ((forall_ v (P.iff_ Q)).imp_ ((forall_ v P).imp_ (forall_ v Q)))
Tactic:
apply T_18_1_left
State after:
no goals

State before:
case a
P Q : Formula
v : VarName
⊢ IsDeduct ∅ ((forall_ v (P.iff_ Q)).imp_ ((forall_ v Q).imp_ (forall_ v P)))
Tactic:
apply T_18_1_right
State after:
no goals