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

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

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

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

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

State before:
case a.a
P Q : Formula
v : VarName
h1 : ¬isFreeIn v P
⊢ IsDeduct ∅
    (((forall_ v (P.iff_ Q)).imp_ ((forall_ v P).iff_ (forall_ v Q))).imp_
      (((forall_ v P).iff_ P).imp_ ((forall_ v (P.iff_ Q)).imp_ (P.iff_ (forall_ v Q)))))
Tactic:
simp only [def_iff_]
State after:
case a.a
P Q : Formula
v : VarName
h1 : ¬isFreeIn v P
⊢ IsDeduct ∅
    (((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)))).imp_
      ((((forall_ v P).imp_ P).and_ (P.imp_ (forall_ v P))).imp_
        ((forall_ v ((P.imp_ Q).and_ (Q.imp_ P))).imp_ ((P.imp_ (forall_ v Q)).and_ ((forall_ v Q).imp_ P)))))

State before:
case a.a
P Q : Formula
v : VarName
h1 : ¬isFreeIn v P
⊢ IsDeduct ∅
    (((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)))).imp_
      ((((forall_ v P).imp_ P).and_ (P.imp_ (forall_ v P))).imp_
        ((forall_ v ((P.imp_ Q).and_ (Q.imp_ P))).imp_ ((P.imp_ (forall_ v Q)).and_ ((forall_ v Q).imp_ P)))))
Tactic:
simp only [def_and_]
State after:
case a.a
P Q : Formula
v : VarName
h1 : ¬isFreeIn v P
⊢ IsDeduct ∅
    (((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_).imp_
      ((((forall_ v P).imp_ P).imp_ (P.imp_ (forall_ v P)).not_).not_.imp_
        ((forall_ v ((P.imp_ Q).imp_ (Q.imp_ P).not_).not_).imp_
          ((P.imp_ (forall_ v Q)).imp_ ((forall_ v Q).imp_ P).not_).not_)))

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

State before:
case a.a
P Q : Formula
v : VarName
h1 : ¬isFreeIn v P
⊢ IsDeduct ∅ ((forall_ v (P.iff_ Q)).imp_ ((forall_ v P).iff_ (forall_ v Q)))
Tactic:
exact T_18_1 P Q v
State after:
no goals

State before:
case a
P Q : Formula
v : VarName
h1 : ¬isFreeIn v P
⊢ IsDeduct ∅ ((forall_ v P).iff_ P)
Tactic:
exact T_19_1 P v h1
State after:
no goals