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

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

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

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

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

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

State before:
case a.a
P Q : Formula
v : VarName
⊢ IsDeduct ∅
    (((forall_ v (P.iff_ Q)).imp_ ((forall_ v Q.not_).not_.imp_ (forall_ v P.not_).not_)).imp_
      (((forall_ v (P.iff_ Q)).imp_ ((forall_ v P.not_).not_.imp_ (forall_ v Q.not_).not_)).imp_
        ((forall_ v (P.iff_ Q)).imp_ ((forall_ v P.not_).not_.iff_ (forall_ v Q.not_).not_))))
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 Q.not_).not_.imp_ (forall_ v P.not_).not_)).imp_
      (((forall_ v ((P.imp_ Q).and_ (Q.imp_ P))).imp_ ((forall_ v P.not_).not_.imp_ (forall_ v Q.not_).not_)).imp_
        ((forall_ v ((P.imp_ Q).and_ (Q.imp_ P))).imp_
          (((forall_ v P.not_).not_.imp_ (forall_ v Q.not_).not_).and_
            ((forall_ v Q.not_).not_.imp_ (forall_ v P.not_).not_)))))

State before:
case a.a
P Q : Formula
v : VarName
⊢ IsDeduct ∅
    (((forall_ v ((P.imp_ Q).and_ (Q.imp_ P))).imp_ ((forall_ v Q.not_).not_.imp_ (forall_ v P.not_).not_)).imp_
      (((forall_ v ((P.imp_ Q).and_ (Q.imp_ P))).imp_ ((forall_ v P.not_).not_.imp_ (forall_ v Q.not_).not_)).imp_
        ((forall_ v ((P.imp_ Q).and_ (Q.imp_ P))).imp_
          (((forall_ v P.not_).not_.imp_ (forall_ v Q.not_).not_).and_
            ((forall_ v Q.not_).not_.imp_ (forall_ v P.not_).not_)))))
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 Q.not_).not_.imp_ (forall_ v P.not_).not_)).imp_
      (((forall_ v ((P.imp_ Q).imp_ (Q.imp_ P).not_).not_).imp_
            ((forall_ v P.not_).not_.imp_ (forall_ v Q.not_).not_)).imp_
        ((forall_ v ((P.imp_ Q).imp_ (Q.imp_ P).not_).not_).imp_
          (((forall_ v P.not_).not_.imp_ (forall_ v Q.not_).not_).imp_
              ((forall_ v Q.not_).not_.imp_ (forall_ v P.not_).not_).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 Q.not_).not_.imp_ (forall_ v P.not_).not_)).imp_
      (((forall_ v ((P.imp_ Q).imp_ (Q.imp_ P).not_).not_).imp_
            ((forall_ v P.not_).not_.imp_ (forall_ v Q.not_).not_)).imp_
        ((forall_ v ((P.imp_ Q).imp_ (Q.imp_ P).not_).not_).imp_
          (((forall_ v P.not_).not_.imp_ (forall_ v Q.not_).not_).imp_
              ((forall_ v Q.not_).not_.imp_ (forall_ v P.not_).not_).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_ ((exists_ v Q).imp_ (exists_ v P)))
Tactic:
apply T_19_6_right
State after:
no goals

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