Step
*
2
1
of Lemma
assert-PZF_safe
1. C : Type
2. element : Form(C)
3. set : Form(C)
4. ∀vs:Atom List. (↑(FormSafe2(element) vs) 
⇐⇒ FormSafe1''(element) vs)
5. ∀vs:Atom List. (↑(FormSafe2(set) vs) 
⇐⇒ FormSafe1''(set) vs)
6. vs : Atom List
7. ¬(vs = [] ∈ (Atom List))
8. x : Atom
9. hd(vs) = x ∈ Atom
10. ∀x:Atom. ((x ∈ vs) 
⇒ (vs-[x] = [] ∈ (Atom List) 
⇐⇒ set-equal(Atom;vs;[x])))
⊢ ↑(null(vs-[x])
  ∧b FormVar?(element)
  ∧b FormVar-name(element) =a x
  ∧b ((FormVar?(set) ∧b FormVar-name(set) =a x) ∨b(¬bx ∈b FormFvs(set))))
⇐⇒ False
    ∨ (∃x:Atom
        (set-equal(Atom;vs;[x])
        ∧ (↑FormVar?(element))
        ∧ (FormVar-name(element) = x ∈ Atom)
        ∧ (((↑FormVar?(set)) ∧ (FormVar-name(set) = x ∈ Atom)) ∨ (¬(x ∈ FormFvs(set))))))
BY
{ (RepeatFor 2 ((D 0 THENA Auto)) THENL [(OrRight THENA Auto); (D -1 THEN Try (Trivial) THEN ExRepD)]) }
1
1. C : Type
2. element : Form(C)
3. set : Form(C)
4. ∀vs:Atom List. (↑(FormSafe2(element) vs) 
⇐⇒ FormSafe1''(element) vs)
5. ∀vs:Atom List. (↑(FormSafe2(set) vs) 
⇐⇒ FormSafe1''(set) vs)
6. vs : Atom List
7. ¬(vs = [] ∈ (Atom List))
8. x : Atom
9. hd(vs) = x ∈ Atom
10. ∀x:Atom. ((x ∈ vs) 
⇒ (vs-[x] = [] ∈ (Atom List) 
⇐⇒ set-equal(Atom;vs;[x])))
11. ↑(null(vs-[x])
∧b FormVar?(element)
∧b FormVar-name(element) =a x
∧b ((FormVar?(set) ∧b FormVar-name(set) =a x) ∨b(¬bx ∈b FormFvs(set))))
⊢ ∃x:Atom
   (set-equal(Atom;vs;[x])
   ∧ (↑FormVar?(element))
   ∧ (FormVar-name(element) = x ∈ Atom)
   ∧ (((↑FormVar?(set)) ∧ (FormVar-name(set) = x ∈ Atom)) ∨ (¬(x ∈ FormFvs(set)))))
2
1. C : Type
2. element : Form(C)
3. set : Form(C)
4. ∀vs:Atom List. (↑(FormSafe2(element) vs) 
⇐⇒ FormSafe1''(element) vs)
5. ∀vs:Atom List. (↑(FormSafe2(set) vs) 
⇐⇒ FormSafe1''(set) vs)
6. vs : Atom List
7. ¬(vs = [] ∈ (Atom List))
8. x : Atom
9. hd(vs) = x ∈ Atom
10. ∀x:Atom. ((x ∈ vs) 
⇒ (vs-[x] = [] ∈ (Atom List) 
⇐⇒ set-equal(Atom;vs;[x])))
11. x1 : Atom
12. set-equal(Atom;vs;[x1])
13. ↑FormVar?(element)
14. FormVar-name(element) = x1 ∈ Atom
15. ((↑FormVar?(set)) ∧ (FormVar-name(set) = x1 ∈ Atom)) ∨ (¬(x1 ∈ FormFvs(set)))
⊢ ↑(null(vs-[x])
∧b FormVar?(element)
∧b FormVar-name(element) =a x
∧b ((FormVar?(set) ∧b FormVar-name(set) =a x) ∨b(¬bx ∈b FormFvs(set))))
Latex:
Latex:
1.  C  :  Type
2.  element  :  Form(C)
3.  set  :  Form(C)
4.  \mforall{}vs:Atom  List.  (\muparrow{}(FormSafe2(element)  vs)  \mLeftarrow{}{}\mRightarrow{}  FormSafe1''(element)  vs)
5.  \mforall{}vs:Atom  List.  (\muparrow{}(FormSafe2(set)  vs)  \mLeftarrow{}{}\mRightarrow{}  FormSafe1''(set)  vs)
6.  vs  :  Atom  List
7.  \mneg{}(vs  =  [])
8.  x  :  Atom
9.  hd(vs)  =  x
10.  \mforall{}x:Atom.  ((x  \mmember{}  vs)  {}\mRightarrow{}  (vs-[x]  =  []  \mLeftarrow{}{}\mRightarrow{}  set-equal(Atom;vs;[x])))
\mvdash{}  \muparrow{}(null(vs-[x])
    \mwedge{}\msubb{}  FormVar?(element)
    \mwedge{}\msubb{}  FormVar-name(element)  =a  x
    \mwedge{}\msubb{}  ((FormVar?(set)  \mwedge{}\msubb{}  FormVar-name(set)  =a  x)  \mvee{}\msubb{}(\mneg{}\msubb{}x  \mmember{}\msubb{}  FormFvs(set))))
\mLeftarrow{}{}\mRightarrow{}  False
        \mvee{}  (\mexists{}x:Atom
                (set-equal(Atom;vs;[x])
                \mwedge{}  (\muparrow{}FormVar?(element))
                \mwedge{}  (FormVar-name(element)  =  x)
                \mwedge{}  (((\muparrow{}FormVar?(set))  \mwedge{}  (FormVar-name(set)  =  x))  \mvee{}  (\mneg{}(x  \mmember{}  FormFvs(set))))))
By
Latex:
(RepeatFor  2  ((D  0  THENA  Auto))  THENL  [(OrRight  THENA  Auto);  (D  -1  THEN  Try  (Trivial)  THEN  ExRepD)])
Home
Index