Step * 2 1 2 of Lemma alpha-rename-aux_wf

.....subterm..... T:t
2:n
1. opr Type
2. : ℕ
3. ∀n:ℕn
     ∀[a:term(opr)]
       ((term-size(a) ≤ n)
        (∀[bnds:varname() List]
             ∀f:{v:varname()| (v ∈ bnds all-vars(a))}  ⟶ varname()
               alpha-rename-aux(f;bnds;a) ∈ term(opr) 
               supposing ∀x:{v:varname()| (v ∈ bnds all-vars(a))} 
                           (((f x) nullvar() ∈ varname())  (x nullvar() ∈ varname()))))
4. term(opr) ≡ coterm-fun(opr;term(opr))
5. y1 opr
6. y2 (varname() List × term(opr)) List
7. inr <y1, y2>  ∈ term(opr)
8. term-size(inr <y1, y2> ) ≤ n
9. bnds varname() List
10. {v:varname()| (v ∈ bnds all-vars(inr <y1, y2> ))}  ⟶ varname()
11. ∀x:{v:varname()| (v ∈ bnds all-vars(inr <y1, y2> ))} (((f x) nullvar() ∈ varname())  (x nullvar() ∈ varnam\000Ce()))
12. y2 ∈ {bt:varname() List × term(opr)| (bt ∈ y2)}  List
13. b1 varname() List
14. b2 term(opr)
15. (<b1, b2> ∈ y2)
⊢ alpha-rename-aux(f;rev(b1) bnds;b2) ∈ term(opr)
BY
((Assert 1 ≤ term-size(inr <y1, y2> BY
          Auto)
   THEN (Assert 1 ≤ BY
               Auto)
   THEN Fold `mkterm` (-2)
   THEN Reduce -2
   THEN (D With ⌜1⌝  THENA Auto)) }

1
1. opr Type
2. : ℕ
3. term(opr) ≡ coterm-fun(opr;term(opr))
4. y1 opr
5. y2 (varname() List × term(opr)) List
6. inr <y1, y2>  ∈ term(opr)
7. term-size(inr <y1, y2> ) ≤ n
8. bnds varname() List
9. {v:varname()| (v ∈ bnds all-vars(inr <y1, y2> ))}  ⟶ varname()
10. ∀x:{v:varname()| (v ∈ bnds all-vars(inr <y1, y2> ))} (((f x) nullvar() ∈ varname())  (x nullvar() ∈ varnam\000Ce()))
11. y2 ∈ {bt:varname() List × term(opr)| (bt ∈ y2)}  List
12. b1 varname() List
13. b2 term(opr)
14. (<b1, b2> ∈ y2)
15. 1 ≤ (1 + Σ(term-size(snd(bt)) bt ∈ y2))
16. 1 ≤ n
17. ∀[a:term(opr)]
      ((term-size(a) ≤ (n 1))
       (∀[bnds:varname() List]
            ∀f:{v:varname()| (v ∈ bnds all-vars(a))}  ⟶ varname()
              alpha-rename-aux(f;bnds;a) ∈ term(opr) 
              supposing ∀x:{v:varname()| (v ∈ bnds all-vars(a))} 
                          (((f x) nullvar() ∈ varname())  (x nullvar() ∈ varname()))))
⊢ alpha-rename-aux(f;rev(b1) bnds;b2) ∈ term(opr)


Latex:


Latex:
.....subterm.....  T:t
2:n
1.  opr  :  Type
2.  n  :  \mBbbN{}
3.  \mforall{}n:\mBbbN{}n
          \mforall{}[a:term(opr)]
              ((term-size(a)  \mleq{}  n)
              {}\mRightarrow{}  (\mforall{}[bnds:varname()  List]
                          \mforall{}f:\{v:varname()|  (v  \mmember{}  bnds  @  all-vars(a))\}    {}\mrightarrow{}  varname()
                              alpha-rename-aux(f;bnds;a)  \mmember{}  term(opr) 
                              supposing  \mforall{}x:\{v:varname()|  (v  \mmember{}  bnds  @  all-vars(a))\} 
                                                      (((f  x)  =  nullvar())  {}\mRightarrow{}  (x  =  nullvar()))))
4.  term(opr)  \mequiv{}  coterm-fun(opr;term(opr))
5.  y1  :  opr
6.  y2  :  (varname()  List  \mtimes{}  term(opr))  List
7.  inr  <y1,  y2>    \mmember{}  term(opr)
8.  term-size(inr  <y1,  y2>  )  \mleq{}  n
9.  bnds  :  varname()  List
10.  f  :  \{v:varname()|  (v  \mmember{}  bnds  @  all-vars(inr  <y1,  y2>  ))\}    {}\mrightarrow{}  varname()
11.  \mforall{}x:\{v:varname()|  (v  \mmember{}  bnds  @  all-vars(inr  <y1,  y2>  ))\}  .  (((f  x)  =  nullvar())  {}\mRightarrow{}  (x  =  nullvar())\000C)
12.  y2  \mmember{}  \{bt:varname()  List  \mtimes{}  term(opr)|  (bt  \mmember{}  y2)\}    List
13.  b1  :  varname()  List
14.  b2  :  term(opr)
15.  (<b1,  b2>  \mmember{}  y2)
\mvdash{}  alpha-rename-aux(f;rev(b1)  +  bnds;b2)  \mmember{}  term(opr)


By


Latex:
((Assert  1  \mleq{}  term-size(inr  <y1,  y2>  )  BY
                Auto)
  THEN  (Assert  1  \mleq{}  n  BY
                          Auto)
  THEN  Fold  `mkterm`  (-2)
  THEN  Reduce  -2
  THEN  (D  3  With  \mkleeneopen{}n  -  1\mkleeneclose{}    THENA  Auto))




Home Index