Step * of Lemma assert-PZF_safe

No Annotations
C:Type. ∀phi:Form(C). ∀vs:Atom List.  (↑PZF_safe(phi;vs) ⇐⇒ PZF-safe(phi;vs))
BY
((Intros THEN RepUR ``PZF_safe PZF-safe`` 0)
   THEN (RWO  "FormSafe1-iff-FormSafe1\'\'" THENA Auto)
   THEN (Assert ⌜↑(FormSafe2(phi) vs) ⇐⇒ FormSafe1''(phi) vs⌝⋅ THENM (RWO "-1" THEN Auto))
   THEN RepeatFor (MoveToConcl (-1))
   THEN (BLemma `Form-induction` THENW Auto)
   THEN RepUR ``FormSafe1\'\' FormSafe2`` 0
   THEN Try (Fold `FormSafe2` 0)
   THEN Try (Fold `FormSafe1\'\'` 0)
   THEN Try (QuickAuto)) }

1
1. Type
⊢ ∀left,right:Form(C).
    ((∀vs:Atom List. (↑(FormSafe2(left) vs) ⇐⇒ FormSafe1''(left) vs))
     (∀vs:Atom List. (↑(FormSafe2(right) vs) ⇐⇒ FormSafe1''(right) vs))
     (∀vs:Atom List
          (↑(null(vs)
           ∨blet hd(vs) in
                 null(vs-[x])
                 ∧b ((FormVar?(left) ∧b FormVar-name(left) =a x ∧b bx ∈b FormFvs(right)))
                    ∨b(FormVar?(right) ∧b FormVar-name(right) =a x ∧b bx ∈b FormFvs(left)))))
          ⇐⇒ (↑null(vs))
              ∨ (∃x:Atom
                  (set-equal(Atom;vs;[x])
                  ∧ (((↑FormVar?(left)) ∧ (FormVar-name(left) x ∈ Atom) ∧ (x ∈ FormFvs(right))))
                    ∨ ((↑FormVar?(right)) ∧ (FormVar-name(right) x ∈ Atom) ∧ (x ∈ FormFvs(left))))))))))

2
1. Type
⊢ ∀element,set:Form(C).
    ((∀vs:Atom List. (↑(FormSafe2(element) vs) ⇐⇒ FormSafe1''(element) vs))
     (∀vs:Atom List. (↑(FormSafe2(set) vs) ⇐⇒ FormSafe1''(set) vs))
     (∀vs:Atom List
          (↑(null(vs)
           ∨blet hd(vs) in
                 null(vs-[x])
                 ∧b FormVar?(element)
                 ∧b FormVar-name(element) =a x
                 ∧b ((FormVar?(set) ∧b FormVar-name(set) =a x) ∨bbx ∈b FormFvs(set))))
          ⇐⇒ (↑null(vs))
              ∨ (∃x:Atom
                  (set-equal(Atom;vs;[x])
                  ∧ (↑FormVar?(element))
                  ∧ (FormVar-name(element) x ∈ Atom)
                  ∧ (((↑FormVar?(set)) ∧ (FormVar-name(set) x ∈ Atom)) ∨ (x ∈ FormFvs(set)))))))))

3
1. Type
⊢ ∀left,right:Form(C).
    ((∀vs:Atom List. (↑(FormSafe2(left) vs) ⇐⇒ FormSafe1''(left) vs))
     (∀vs:Atom List. (↑(FormSafe2(right) vs) ⇐⇒ FormSafe1''(right) vs))
     (∀vs:Atom List
          (↑eval as FormFvs(left) in
            eval bs FormFvs(right) in
              eval theta vs-bs in
              (FormSafe2(left) theta) ∧b (FormSafe2(right) vs-theta)
              ∨beval phi vs-as in
                (FormSafe2(left) vs-phi) ∧b (FormSafe2(right) phi)
          ⇐⇒ let theta vs-FormFvs(right) in
                  (FormSafe1''(left) theta) ∧ (FormSafe1''(right) vs-theta)
              ∨ let phi vs-FormFvs(left) in
                    (FormSafe1''(left) vs-phi) ∧ (FormSafe1''(right) phi))))

4
1. Type
⊢ ∀body:Form(C)
    ((∀vs:Atom List. (↑(FormSafe2(body) vs) ⇐⇒ FormSafe1''(body) vs))
     (∀vs:Atom List. (↑(null(vs) ∧b (FormSafe2(body) [])) ⇐⇒ (↑null(vs)) ∧ (FormSafe1''(body) []))))

5
1. Type
⊢ ∀var:Atom. ∀body:Form(C).
    ((∀vs:Atom List. (↑(FormSafe2(body) vs) ⇐⇒ FormSafe1''(body) vs))
     (∀vs:Atom List
          (↑((¬bvar ∈b vs) ∧b (FormSafe2(body) [var vs])) ⇐⇒ (var ∈ vs)) ∧ (FormSafe1''(body) [var vs]))))


Latex:


Latex:
No  Annotations
\mforall{}C:Type.  \mforall{}phi:Form(C).  \mforall{}vs:Atom  List.    (\muparrow{}PZF\_safe(phi;vs)  \mLeftarrow{}{}\mRightarrow{}  PZF-safe(phi;vs))


By


Latex:
((Intros  THEN  RepUR  ``PZF\_safe  PZF-safe``  0)
  THEN  (RWO    "FormSafe1-iff-FormSafe1\mbackslash{}'\mbackslash{}'"  0  THENA  Auto)
  THEN  (Assert  \mkleeneopen{}\muparrow{}(FormSafe2(phi)  vs)  \mLeftarrow{}{}\mRightarrow{}  FormSafe1''(phi)  vs\mkleeneclose{}\mcdot{}  THENM  (RWO  "-1"  0  THEN  Auto))
  THEN  RepeatFor  2  (MoveToConcl  (-1))
  THEN  (BLemma  `Form-induction`  THENW  Auto)
  THEN  RepUR  ``FormSafe1\mbackslash{}'\mbackslash{}'  FormSafe2``  0
  THEN  Try  (Fold  `FormSafe2`  0)
  THEN  Try  (Fold  `FormSafe1\mbackslash{}'\mbackslash{}'`  0)
  THEN  Try  (QuickAuto))




Home Index