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

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

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

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

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

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

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

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

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

State before:
case a.a.a
P : Formula
v : VarName
h1 : ¬isFreeIn v P
⊢ IsAxiom (P.imp_ (forall_ v P))
Tactic:
exact IsAxiom.pred_3_ v P h1
State after:
no goals

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

State before:
case a.a
P : Formula
v : VarName
h1 : ¬isFreeIn v P
⊢ IsAxiom ((forall_ v P).imp_ P)
Tactic:
apply IsAxiom.pred_2_ v v P P
State after:
case a.a.a
P : Formula
v : VarName
h1 : ¬isFreeIn v P
⊢ fastAdmits v v P

case a.a.a
P : Formula
v : VarName
h1 : ¬isFreeIn v P
⊢ fastReplaceFree v v P = P

State before:
case a.a.a
P : Formula
v : VarName
h1 : ¬isFreeIn v P
⊢ fastAdmits v v P
Tactic:
apply fastAdmits_self
State after:
no goals

State before:
case a.a.a
P : Formula
v : VarName
h1 : ¬isFreeIn v P
⊢ fastReplaceFree v v P = P
Tactic:
apply fastReplaceFree_self
State after:
no goals