Step * of Lemma alpha-aux_wf

No Annotations
[opr:Type]. ∀[a,b:term(opr)]. ∀[vs,ws:varname() List].  (alpha-aux(opr;vs;ws;a;b) ∈ ℙ)
BY
(RepeatFor (Intro)
   THEN (Enough to prove ∀n:ℕ
                           ∀[a:term(opr)]
                             ((term-size(a) ≤ n)
                              (∀[b:term(opr)]. ∀[vs,ws:varname() List].  (alpha-aux(opr;vs;ws;a;b) ∈ ℙ)))
          Because ((D THENA Auto) THEN (D -2 With ⌜term-size(a)⌝  THENA Auto) THEN InstHyp [⌜a⌝(-1)⋅ THEN Auto))
   THEN Thin (-1)
   THEN CompleteInductionOnNat
   THEN (D THENA Auto)
   THEN (InstLemma `term-ext` [⌜opr⌝]⋅ THENA Auto)
   THEN (GenConcl ⌜t ∈ coterm-fun(opr;term(opr))⌝⋅ THENA Auto)
   THEN ThinVar `a'
   THEN (Assert t ∈ term(opr) BY
               Auto)
   THEN RepeatFor (D -2)
   THEN Folds  ``varterm mkterm`` 0
   THEN Reduce 0
   THEN RepeatFor ((D THENA Auto))
   THEN (GenConcl ⌜s ∈ coterm-fun(opr;term(opr))⌝⋅ THENA Auto)
   THEN ThinVar `b'
   THEN (Assert s ∈ term(opr) BY
               Auto)
   THEN RepeatFor (D -2)
   THEN Folds  ``varterm mkterm`` 0
   THEN Reduce 0
   THEN (Unfold `alpha-aux` THEN Reduce 0)
   THEN Auto
   THEN (Assert 0 ≤ Σ(term-size(snd(bt)) bt ∈ y2) BY
               (Unfold `lsum` THEN BLemma `l_sum_nonneg` THEN Auto THEN THEN Auto))
   THEN (D With ⌜1⌝  THENA Auto)
   THEN (D -10 THEN -6 THEN Reduce 0)
   THEN Auto
   THEN BackThruSomeHyp
   THEN Auto) }

1
1. opr Type
2. : ℕ
3. term(opr) ≡ coterm-fun(opr;term(opr))
4. y1 opr
5. u2 varname() List
6. u3 term(opr)
7. (varname() List × term(opr)) List
8. inr <y1, [<u2, u3> v]>  ∈ term(opr)
9. (1 + Σ(term-size(snd(bt)) bt ∈ [<u2, u3> v])) ≤ n
10. y3 opr
11. u4 varname() List
12. u5 term(opr)
13. v1 (varname() List × term(opr)) List
14. inr <y3, [<u4, u5> v1]>  ∈ term(opr)
15. vs varname() List
16. ws varname() List
17. 0 ≤ Σ(term-size(snd(bt)) bt ∈ [<u2, u3> v])
18. ∀[a:term(opr)]
      ((term-size(a) ≤ (n 1))  (∀[b:term(opr)]. ∀[vs,ws:varname() List].  (alpha-aux(opr;vs;ws;a;b) ∈ ℙ)))
⊢ term-size(u3) ≤ (n 1)

2
1. opr Type
2. : ℕ
3. term(opr) ≡ coterm-fun(opr;term(opr))
4. y1 opr
5. varname() List × term(opr)
6. (varname() List × term(opr)) List
7. inr <y1, [u v]>  ∈ term(opr)
8. (1 + Σ(term-size(snd(bt)) bt ∈ [u v])) ≤ n
9. y3 opr
10. u1 varname() List × term(opr)
11. v1 (varname() List × term(opr)) List
12. inr <y3, [u1 v1]>  ∈ term(opr)
13. vs varname() List
14. ws varname() List
15. 0 ≤ Σ(term-size(snd(bt)) bt ∈ [u v])
16. ∀[a:term(opr)]
      ((term-size(a) ≤ (n 1))  (∀[b:term(opr)]. ∀[vs,ws:varname() List].  (alpha-aux(opr;vs;ws;a;b) ∈ ℙ)))
17. let as,x 
    in let bs,y u1 
       in alpha-aux(opr;rev(as) vs;rev(bs) ws;x;y)
⊢ term-size(mkterm(y1;v)) ≤ (n 1)


Latex:


Latex:
No  Annotations
\mforall{}[opr:Type].  \mforall{}[a,b:term(opr)].  \mforall{}[vs,ws:varname()  List].    (alpha-aux(opr;vs;ws;a;b)  \mmember{}  \mBbbP{})


By


Latex:
(RepeatFor  2  (Intro)
  THEN  (Enough  to  prove  \mforall{}n:\mBbbN{}
                                                  \mforall{}[a:term(opr)]
                                                      ((term-size(a)  \mleq{}  n)
                                                      {}\mRightarrow{}  (\mforall{}[b:term(opr)].  \mforall{}[vs,ws:varname()  List].
                                                                  (alpha-aux(opr;vs;ws;a;b)  \mmember{}  \mBbbP{})))
                Because  ((D  0  THENA  Auto)
                                  THEN  (D  -2  With  \mkleeneopen{}term-size(a)\mkleeneclose{}    THENA  Auto)
                                  THEN  InstHyp  [\mkleeneopen{}a\mkleeneclose{}]  (-1)\mcdot{}
                                  THEN  Auto))
  THEN  Thin  (-1)
  THEN  CompleteInductionOnNat
  THEN  (D  0  THENA  Auto)
  THEN  (InstLemma  `term-ext`  [\mkleeneopen{}opr\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  (GenConcl  \mkleeneopen{}a  =  t\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  ThinVar  `a'
  THEN  (Assert  t  \mmember{}  term(opr)  BY
                          Auto)
  THEN  RepeatFor  2  (D  -2)
  THEN  Folds    ``varterm  mkterm``  0
  THEN  Reduce  0
  THEN  RepeatFor  2  ((D  0  THENA  Auto))
  THEN  (GenConcl  \mkleeneopen{}b  =  s\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  ThinVar  `b'
  THEN  (Assert  s  \mmember{}  term(opr)  BY
                          Auto)
  THEN  RepeatFor  2  (D  -2)
  THEN  Folds    ``varterm  mkterm``  0
  THEN  Reduce  0
  THEN  (Unfold  `alpha-aux`  0  THEN  Reduce  0)
  THEN  Auto
  THEN  (Assert  0  \mleq{}  \mSigma{}(term-size(snd(bt))  |  bt  \mmember{}  y2)  BY
                          (Unfold  `lsum`  0  THEN  BLemma  `l\_sum\_nonneg`  THEN  Auto  THEN  D  0  THEN  Auto))
  THEN  (D  3  With  \mkleeneopen{}n  -  1\mkleeneclose{}    THENA  Auto)
  THEN  (D  -10  THEN  D  -6  THEN  Reduce  0)
  THEN  Auto
  THEN  BackThruSomeHyp
  THEN  Auto)




Home Index