Step
*
6
of Lemma
member-free-vars-aux
1. [opr] : Type
2. bts : bound-term(opr) List
3. ∀bt:bound-term(opr)
     ((bt ∈ bts)
     
⇒ (∀v:varname(). ∀bnds:varname() List.
           ((v ∈ free-vars-aux(bnds;snd(bt))) 
⇐⇒ (v ∈ free-vars-aux([];snd(bt))) ∧ (¬(v ∈ bnds)))))
4. f : opr
5. v : varname()
6. bnds : varname() List
7. (v ∈ free-vars-aux(bnds;mkterm(f;bts)))
⊢ (v ∈ free-vars-aux([];mkterm(f;bts)))
BY
{ ((Unfold `free-vars-aux` -1 THEN Reduce -1) THEN Unfold `free-vars-aux` 0 THEN Reduce 0) }
1
1. [opr] : Type
2. bts : bound-term(opr) List
3. ∀bt:bound-term(opr)
     ((bt ∈ bts)
     
⇒ (∀v:varname(). ∀bnds:varname() List.
           ((v ∈ free-vars-aux(bnds;snd(bt))) 
⇐⇒ (v ∈ free-vars-aux([];snd(bt))) ∧ (¬(v ∈ bnds)))))
4. f : opr
5. v : varname()
6. bnds : varname() List
7. (v ∈ l-union-list(VarDeq;map(λbt.let vs,a = bt 
                                    in free-vars-aux(rev(vs) + bnds;a);bts)))
⊢ (v ∈ l-union-list(VarDeq;map(λbt.let vs,a = bt 
                                   in free-vars-aux(rev(vs) + [];a);bts)))
Latex:
Latex:
1.  [opr]  :  Type
2.  bts  :  bound-term(opr)  List
3.  \mforall{}bt:bound-term(opr)
          ((bt  \mmember{}  bts)
          {}\mRightarrow{}  (\mforall{}v:varname().  \mforall{}bnds:varname()  List.
                      ((v  \mmember{}  free-vars-aux(bnds;snd(bt)))  \mLeftarrow{}{}\mRightarrow{}  (v  \mmember{}  free-vars-aux([];snd(bt)))  \mwedge{}  (\mneg{}(v  \mmember{}  bnds)))))
4.  f  :  opr
5.  v  :  varname()
6.  bnds  :  varname()  List
7.  (v  \mmember{}  free-vars-aux(bnds;mkterm(f;bts)))
\mvdash{}  (v  \mmember{}  free-vars-aux([];mkterm(f;bts)))
By
Latex:
((Unfold  `free-vars-aux`  -1  THEN  Reduce  -1)  THEN  Unfold  `free-vars-aux`  0  THEN  Reduce  0)
Home
Index