Step * 1 1 1 1 of Lemma free-vars_functionality


1. opr Type
2. {v:varname()| ¬(v nullvar() ∈ varname())} 
3. varterm(v) ∈ term(opr)
4. v1 {v:varname()| ¬(v nullvar() ∈ varname())} 
5. varname()
6. v2 varname() List
7. ∀bnds2:varname() List
     ((↑same-binding(v2;bnds2;v;v1))
      (if v ∈b v2 then [] else [v] fi  if v1 ∈b bnds2 then [] else [v1] fi  ∈ (varname() List)))
8. u1 varname()
9. v3 varname() List
10. (↑same-binding([u v2];v3;v;v1))
 (if v ∈b [u v2] then [] else [v] fi  if v1 ∈b v3 then [] else [v1] fi  ∈ (varname() List))
⊢ (↑case eq_var(u;v) of inl(_) => eq_var(u1;v1) inr(_) => beq_var(u1;v1)) ∧b same-binding(v2;v3;v;v1))
 (if (VarDeq v) ∨bv ∈b v2 then [] else [v] fi 
   if (VarDeq u1 v1) ∨bv1 ∈b v3 then [] else [v1] fi 
   ∈ (varname() List))
BY
((Unfold `var-deq` THEN Reduce THEN Fold `var-deq` 0)
   THEN (BoolCase ⌜eq_var(u;v)⌝⋅ THENA Auto)
   THEN BoolCase ⌜eq_var(u1;v1)⌝⋅
   THEN Auto) }


Latex:


Latex:

1.  opr  :  Type
2.  v  :  \{v:varname()|  \mneg{}(v  =  nullvar())\} 
3.  varterm(v)  \mmember{}  term(opr)
4.  v1  :  \{v:varname()|  \mneg{}(v  =  nullvar())\} 
5.  u  :  varname()
6.  v2  :  varname()  List
7.  \mforall{}bnds2:varname()  List
          ((\muparrow{}same-binding(v2;bnds2;v;v1))
          {}\mRightarrow{}  (if  v  \mmember{}\msubb{}  v2  then  []  else  [v]  fi    =  if  v1  \mmember{}\msubb{}  bnds2  then  []  else  [v1]  fi  ))
8.  u1  :  varname()
9.  v3  :  varname()  List
10.  (\muparrow{}same-binding([u  /  v2];v3;v;v1))
{}\mRightarrow{}  (if  v  \mmember{}\msubb{}  [u  /  v2]  then  []  else  [v]  fi    =  if  v1  \mmember{}\msubb{}  v3  then  []  else  [v1]  fi  )
\mvdash{}  (\muparrow{}case  eq\_var(u;v)
  of  inl($_{}$)  =>
  eq\_var(u1;v1)
  |  inr($_{}$)  =>
  (\mneg{}\msubb{}eq\_var(u1;v1))  \mwedge{}\msubb{}  same-binding(v2;v3;v;v1))
{}\mRightarrow{}  (if  (VarDeq  u  v)  \mvee{}\msubb{}v  \mmember{}\msubb{}  v2  then  []  else  [v]  fi 
      =  if  (VarDeq  u1  v1)  \mvee{}\msubb{}v1  \mmember{}\msubb{}  v3  then  []  else  [v1]  fi  )


By


Latex:
((Unfold  `var-deq`  0  THEN  Reduce  0  THEN  Fold  `var-deq`  0)
  THEN  (BoolCase  \mkleeneopen{}eq\_var(u;v)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  BoolCase  \mkleeneopen{}eq\_var(u1;v1)\mkleeneclose{}\mcdot{}
  THEN  Auto)




Home Index