Step
*
6
1
of Lemma
PZF_safe_functionality
1. C : 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)
⊢ (¬(var ∈ vs)) ∧ (↑PZF_safe(body;[var / vs])) 
⇐⇒ (¬(var ∈ ws)) ∧ (↑PZF_safe(body;[var / ws]))
BY
{ (Auto THEN InstHyp [⌜[var / vs]⌝;⌜[var / ws]⌝] 4⋅ THEN Auto) }
1
.....antecedent..... 
1. C : 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)
8. ¬(var ∈ vs)
9. ↑PZF_safe(body;[var / vs])
⊢ set-equal(Atom;[var / vs];[var / ws])
2
.....antecedent..... 
1. C : 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)
8. ¬(var ∈ ws)
9. ↑PZF_safe(body;[var / ws])
⊢ set-equal(Atom;[var / vs];[var / ws])
Latex:
Latex:
1.  C  :  Type
2.  var  :  Atom
3.  body  :  Form(C)
4.  \mforall{}vs,ws:Atom  List.    (set-equal(Atom;vs;ws)  {}\mRightarrow{}  PZF\_safe(body;vs)  =  PZF\_safe(body;ws))
5.  vs  :  Atom  List
6.  ws  :  Atom  List
7.  set-equal(Atom;vs;ws)
\mvdash{}  (\mneg{}(var  \mmember{}  vs))  \mwedge{}  (\muparrow{}PZF\_safe(body;[var  /  vs]))  \mLeftarrow{}{}\mRightarrow{}  (\mneg{}(var  \mmember{}  ws))  \mwedge{}  (\muparrow{}PZF\_safe(body;[var  /  ws]))
By
Latex:
(Auto  THEN  InstHyp  [\mkleeneopen{}[var  /  vs]\mkleeneclose{};\mkleeneopen{}[var  /  ws]\mkleeneclose{}]  4\mcdot{}  THEN  Auto)
Home
Index