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


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()))))
18. {v:varname()| (v ∈ rev(b1) bnds all-vars(b2))}  ⊆{v:varname()| (v ∈ bnds all-vars(inr <y1, y2> ))} 
⊢ term-size(b2) ≤ (n 1)
BY
(Fold `mkterm` 7
   THEN Reduce 7
   THEN (Enough to prove term-size(snd(<b1, b2>)) ≤ Σ(term-size(snd(bt)) bt ∈ y2)
          Because (Reduce -1 THEN Auto))
   THEN (InstLemma `summand-le-lsum` [⌜varname() List × term(opr)⌝;⌜y2⌝;⌜λ2bt.term-size(snd(bt))⌝]⋅ THENA Auto)
   THEN BHyp -1
   THEN Auto) }


Latex:


Latex:

1.  opr  :  Type
2.  n  :  \mBbbN{}
3.  term(opr)  \mequiv{}  coterm-fun(opr;term(opr))
4.  y1  :  opr
5.  y2  :  (varname()  List  \mtimes{}  term(opr))  List
6.  inr  <y1,  y2>    \mmember{}  term(opr)
7.  term-size(inr  <y1,  y2>  )  \mleq{}  n
8.  bnds  :  varname()  List
9.  f  :  \{v:varname()|  (v  \mmember{}  bnds  @  all-vars(inr  <y1,  y2>  ))\}    {}\mrightarrow{}  varname()
10.  \mforall{}x:\{v:varname()|  (v  \mmember{}  bnds  @  all-vars(inr  <y1,  y2>  ))\}  .  (((f  x)  =  nullvar())  {}\mRightarrow{}  (x  =  nullvar())\000C)
11.  y2  \mmember{}  \{bt:varname()  List  \mtimes{}  term(opr)|  (bt  \mmember{}  y2)\}    List
12.  b1  :  varname()  List
13.  b2  :  term(opr)
14.  (<b1,  b2>  \mmember{}  y2)
15.  1  \mleq{}  (1  +  \mSigma{}(term-size(snd(bt))  |  bt  \mmember{}  y2))
16.  1  \mleq{}  n
17.  \mforall{}[a:term(opr)]
            ((term-size(a)  \mleq{}  (n  -  1))
            {}\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()))))
18.  \{v:varname()|  (v  \mmember{}  rev(b1)  +  bnds  @  all-vars(b2))\}    \msubseteq{}r  \{v:varname()| 
                                                                                                                          (v  \mmember{}  bnds  @  all-vars(inr  <y1,  y2>  ))\} 
\mvdash{}  term-size(b2)  \mleq{}  (n  -  1)


By


Latex:
(Fold  `mkterm`  7
  THEN  Reduce  7
  THEN  (Enough  to  prove  term-size(snd(<b1,  b2>))  \mleq{}  \mSigma{}(term-size(snd(bt))  |  bt  \mmember{}  y2)
                Because  (Reduce  -1  THEN  Auto))
  THEN  (InstLemma  `summand-le-lsum`  [\mkleeneopen{}varname()  List  \mtimes{}  term(opr)\mkleeneclose{};\mkleeneopen{}y2\mkleeneclose{};\mkleeneopen{}\mlambda{}\msubtwo{}bt.term-size(snd(bt))\mkleeneclose{}]\mcdot{}
              THENA  Auto
              )
  THEN  BHyp  -1
  THEN  Auto)




Home Index