Step * 1 2 1 of Lemma free-vars_functionality


1. opr Type
2. bts bound-term(opr) List
3. ∀bt:bound-term(opr)
     ((bt ∈ bts)
      (∀t2:term(opr). ∀bnds1,bnds2:varname() List.
           (alpha-aux(opr;bnds1;bnds2;snd(bt);t2)
            (free-vars-aux(bnds1;snd(bt)) free-vars-aux(bnds2;t2) ∈ (varname() List)))))
4. opr
5. b1 bound-term(opr) List
6. ∀bt:bound-term(opr)
     ((bt ∈ b1)
      (∀bnds1,bnds2:varname() List.
           (alpha-aux(opr;bnds1;bnds2;mkterm(f;bts);snd(bt))
            (free-vars-aux(bnds1;mkterm(f;bts)) free-vars-aux(bnds2;snd(bt)) ∈ (varname() List)))))
7. f1 opr
8. bnds1 varname() List
9. bnds2 varname() List
10. f1 ∈ opr
11. ||bts|| ||b1|| ∈ ℤ
12. ∀i:ℕ||bts||
      (alpha-aux(opr;rev(fst(bts[i])) bnds1;rev(fst(b1[i])) bnds2;snd(bts[i]);snd(b1[i]))
      ∧ (||fst(bts[i])|| ||fst(b1[i])|| ∈ ℤ))
13. ∀i:ℕ||bts||
      (free-vars-aux(rev(fst(bts[i])) bnds1;snd(bts[i]))
      free-vars-aux(rev(fst(b1[i])) bnds2;snd(b1[i]))
      ∈ (varname() List))
⊢ free-vars-aux(bnds1;mkterm(f;bts)) free-vars-aux(bnds2;mkterm(f1;b1)) ∈ (varname() List)
BY
(Thin (-2)
   THEN RepeatFor (MoveToConcl (-1))
   THEN Thin (-1)
   THEN RepeatFor (MoveToConcl (-1))
   THEN Thin (-1)
   THEN ListInd (-1)
   THEN InductionOnList
   THEN (Reduce THEN Auto)
   THEN (Assert 0 ≤ ||v|| BY
               Auto)
   THEN Auto) }

1
1. opr Type
2. bound-term(opr)
3. bound-term(opr) List
4. ∀f:opr. ∀b1:bound-term(opr) List. ∀f1:opr. ∀bnds1,bnds2:varname() List.
     ((f f1 ∈ opr)
      (||v|| ||b1|| ∈ ℤ)
      (∀i:ℕ||v||
           (free-vars-aux(rev(fst(v[i])) bnds1;snd(v[i]))
           free-vars-aux(rev(fst(b1[i])) bnds2;snd(b1[i]))
           ∈ (varname() List)))
      (free-vars-aux(bnds1;mkterm(f;v)) free-vars-aux(bnds2;mkterm(f1;b1)) ∈ (varname() List)))
5. opr
6. u1 bound-term(opr)
7. v1 bound-term(opr) List
8. ∀f1:opr. ∀bnds1,bnds2:varname() List.
     ((f f1 ∈ opr)
      (||[u v]|| ||v1|| ∈ ℤ)
      (∀i:ℕ||[u v]||
           (free-vars-aux(rev(fst([u v][i])) bnds1;snd([u v][i]))
           free-vars-aux(rev(fst(v1[i])) bnds2;snd(v1[i]))
           ∈ (varname() List)))
      (free-vars-aux(bnds1;mkterm(f;[u v])) free-vars-aux(bnds2;mkterm(f1;v1)) ∈ (varname() List)))
9. f1 opr
10. bnds1 varname() List
11. bnds2 varname() List
12. f1 ∈ opr
13. (||v|| 1) (||v1|| 1) ∈ ℤ
14. ∀i:ℕ||v|| 1
      (free-vars-aux(rev(fst([u v][i])) bnds1;snd([u v][i]))
      free-vars-aux(rev(fst([u1 v1][i])) bnds2;snd([u1 v1][i]))
      ∈ (varname() List))
15. 0 ≤ ||v||
⊢ free-vars-aux(bnds1;mkterm(f;[u v])) free-vars-aux(bnds2;mkterm(f1;[u1 v1])) ∈ (varname() List)


Latex:


Latex:

1.  opr  :  Type
2.  bts  :  bound-term(opr)  List
3.  \mforall{}bt:bound-term(opr)
          ((bt  \mmember{}  bts)
          {}\mRightarrow{}  (\mforall{}t2:term(opr).  \mforall{}bnds1,bnds2:varname()  List.
                      (alpha-aux(opr;bnds1;bnds2;snd(bt);t2)
                      {}\mRightarrow{}  (free-vars-aux(bnds1;snd(bt))  =  free-vars-aux(bnds2;t2)))))
4.  f  :  opr
5.  b1  :  bound-term(opr)  List
6.  \mforall{}bt:bound-term(opr)
          ((bt  \mmember{}  b1)
          {}\mRightarrow{}  (\mforall{}bnds1,bnds2:varname()  List.
                      (alpha-aux(opr;bnds1;bnds2;mkterm(f;bts);snd(bt))
                      {}\mRightarrow{}  (free-vars-aux(bnds1;mkterm(f;bts))  =  free-vars-aux(bnds2;snd(bt))))))
7.  f1  :  opr
8.  bnds1  :  varname()  List
9.  bnds2  :  varname()  List
10.  f  =  f1
11.  ||bts||  =  ||b1||
12.  \mforall{}i:\mBbbN{}||bts||
            (alpha-aux(opr;rev(fst(bts[i]))  +  bnds1;rev(fst(b1[i]))  +  bnds2;snd(bts[i]);snd(b1[i]))
            \mwedge{}  (||fst(bts[i])||  =  ||fst(b1[i])||))
13.  \mforall{}i:\mBbbN{}||bts||
            (free-vars-aux(rev(fst(bts[i]))  +  bnds1;snd(bts[i]))
            =  free-vars-aux(rev(fst(b1[i]))  +  bnds2;snd(b1[i])))
\mvdash{}  free-vars-aux(bnds1;mkterm(f;bts))  =  free-vars-aux(bnds2;mkterm(f1;b1))


By


Latex:
(Thin  (-2)
  THEN  RepeatFor  6  (MoveToConcl  (-1))
  THEN  Thin  (-1)
  THEN  RepeatFor  2  (MoveToConcl  (-1))
  THEN  Thin  (-1)
  THEN  ListInd  (-1)
  THEN  InductionOnList
  THEN  (Reduce  0  THEN  Auto)
  THEN  (Assert  0  \mleq{}  ||v||  BY
                          Auto)
  THEN  Auto)




Home Index