Step * of Lemma PZF_safe_functionality

[C:Type]. ∀[phi:Form(C)]. ∀[vs,ws:Atom List].  PZF_safe(phi;vs) PZF_safe(phi;ws) supposing set-equal(Atom;vs;ws)
BY
((Auto THEN RepeatFor (MoveToConcl  (-1)))
   THEN (BLemma `Form-induction` THENW Auto)
        THEN (Intros
              THEN RepUR ``PZF_safe FormSafe2`` 0
              THEN (Try (Fold `FormSafe2` 0) THEN Try (Fold `PZF_safe` 0))
              THEN Try ((Fold `member` THEN Auto)))
   }

1
1. Type
2. left Form(C)
3. right Form(C)
4. ∀vs,ws:Atom List.  (set-equal(Atom;vs;ws)  PZF_safe(left;vs) PZF_safe(left;ws))
5. ∀vs,ws:Atom List.  (set-equal(Atom;vs;ws)  PZF_safe(right;vs) PZF_safe(right;ws))
6. vs Atom List
7. ws Atom List
8. set-equal(Atom;vs;ws)
⊢ 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(ws)
  ∨blet hd(ws) in
        null(ws-[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))))

2
1. Type
2. element Form(C)
3. set Form(C)
4. ∀vs,ws:Atom List.  (set-equal(Atom;vs;ws)  PZF_safe(element;vs) PZF_safe(element;ws))
5. ∀vs,ws:Atom List.  (set-equal(Atom;vs;ws)  PZF_safe(set;vs) PZF_safe(set;ws))
6. vs Atom List
7. ws Atom List
8. set-equal(Atom;vs;ws)
⊢ 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(ws)
  ∨blet hd(ws) in
        null(ws-[x])
        ∧b FormVar?(element)
        ∧b FormVar-name(element) =a x
        ∧b ((FormVar?(set) ∧b FormVar-name(set) =a x) ∨bbx ∈b FormFvs(set)))

3
1. Type
2. left Form(C)
3. right Form(C)
4. ∀vs,ws:Atom List.  (set-equal(Atom;vs;ws)  PZF_safe(left;vs) PZF_safe(left;ws))
5. ∀vs,ws:Atom List.  (set-equal(Atom;vs;ws)  PZF_safe(right;vs) PZF_safe(right;ws))
6. vs Atom List
7. ws Atom List
8. set-equal(Atom;vs;ws)
⊢ eval as FormFvs(left) in
  eval bs FormFvs(right) in
    eval theta vs-bs in
    PZF_safe(left;theta) ∧b PZF_safe(right;vs-theta)
    ∨beval phi vs-as in
      PZF_safe(left;vs-phi) ∧b PZF_safe(right;phi) 
eval as FormFvs(left) in
  eval bs FormFvs(right) in
    eval theta ws-bs in
    PZF_safe(left;theta) ∧b PZF_safe(right;ws-theta)
    ∨beval phi ws-as in
      PZF_safe(left;ws-phi) ∧b PZF_safe(right;phi)

4
1. Type
2. left Form(C)
3. right Form(C)
4. ∀vs,ws:Atom List.  (set-equal(Atom;vs;ws)  PZF_safe(left;vs) PZF_safe(left;ws))
5. ∀vs,ws:Atom List.  (set-equal(Atom;vs;ws)  PZF_safe(right;vs) PZF_safe(right;ws))
6. vs Atom List
7. ws Atom List
8. set-equal(Atom;vs;ws)
⊢ PZF_safe(left;vs) ∧b PZF_safe(right;vs) PZF_safe(left;ws) ∧b PZF_safe(right;ws)

5
1. Type
2. body Form(C)
3. ∀vs,ws:Atom List.  (set-equal(Atom;vs;ws)  PZF_safe(body;vs) PZF_safe(body;ws))
4. vs Atom List
5. ws Atom List
6. set-equal(Atom;vs;ws)
⊢ null(vs) ∧b PZF_safe(body;[]) null(ws) ∧b PZF_safe(body;[])

6
1. Type
2. var Atom
3. body Form(C)
4. ∀vs,ws:Atom List.  (set-equal(Atom;vs;ws)  PZF_safe(body;vs) PZF_safe(body;ws))
5. vs Atom List
6. ws Atom List
7. set-equal(Atom;vs;ws)
⊢ bvar ∈b vs) ∧b PZF_safe(body;[var vs]) bvar ∈b ws) ∧b PZF_safe(body;[var ws])


Latex:


Latex:
\mforall{}[C:Type].  \mforall{}[phi:Form(C)].  \mforall{}[vs,ws:Atom  List].
    PZF\_safe(phi;vs)  =  PZF\_safe(phi;ws)  supposing  set-equal(Atom;vs;ws)


By


Latex:
((Auto  THEN  RepeatFor  4  (MoveToConcl    (-1)))
  THEN  (BLemma  `Form-induction`  THENW  Auto)
            THEN  (Intros
                        THEN  RepUR  ``PZF\_safe  FormSafe2``  0
                        THEN  (Try  (Fold  `FormSafe2`  0)  THEN  Try  (Fold  `PZF\_safe`  0))
                        THEN  Try  ((Fold  `member`  0  THEN  Auto)))
  )




Home Index