Step * 3 1 2 1 1 1 1 of Lemma pW-rec_wf


1. Type
2. P ⟶ Type
3. p:P ⟶ A[p] ⟶ Type
4. p:P ⟶ a:A[p] ⟶ B[p;a] ⟶ P
5. pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b]) ∈ Type
6. pW ∈ P ⟶ Type
7. par:P ⟶ (pW par) ⟶ ℙ
8. ind par:P
⟶ a:A[par]
⟶ f:(b:B[par;a] ⟶ (pW C[par;a;b]))
⟶ (b:B[par;a] ⟶ Q[C[par;a;b];f b])
⟶ Q[par;pW-sup(a;f)]
9. par P
10. A[par]
11. w1 b:B[par;a] ⟶ (pco-W C[par;a;b])
12. ∀path:Path. (StepAgree(path 0;par;<a, w1> (↓∃n:ℕBarred(pcw-partial(path;n))))
13. param-W-rel(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b];par;<a, w1>) ∈ n:ℕ
    ⟶ (ℕn ⟶ pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b]))
    ⟶ pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b])
    ⟶ ℙ
14. ∀[pp:n:ℕ × (ℕn ⟶ pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b]))]. (Barred(pp) ∈ ℙ)
15. : ℕ
16. ¬0 < n
17. : ℕn ⟶ pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b])
18. ∀%6:ℕn. (param-W-rel(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b];par;<a, w1>%6 (s %6))
19. ∀t:{t:pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b])| param-W-rel(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b];par;<a, w1>\000Ct} 
      (let q,w',d in 
       case d
        of inl(b) =>
        let a,f w' 
        in let ind(p,a,f,G) ind[p;a;f;G] in 
           letrec F(p,w) let a,f=w in 
                           ind(p,a,f,λb.F(C[p;a;b],f(b)) in 
           F(C[q;a;b];f b)
        inr(z) =>
        Ax ∈ let q,w',d in 
       case of inl(b) => let a,f w' in Q[C[q;a;b];f b] inr(z) => True)
20. <a, w1> ∈ pW par
21. w1 ∈ b:B[par;a] ⟶ (pW C[par;a;b])
22. B[par;a]
⊢ let ind(p,a,f,G) ind in 
  letrec F(p,w) let a,f=w in 
                  ind(p,a,f,λb.F(C b,f(b)) in 
  F(C par b;w1 b) ∈ Q[C[par;a;b];w1 b]
BY
TACTIC:(InstHyp [⌜<par, <a, w1>inl b>⌝(-4)⋅ THENM (Reduce (-1) THEN Auto)) }

1
.....wf..... 
1. Type
2. P ⟶ Type
3. p:P ⟶ A[p] ⟶ Type
4. p:P ⟶ a:A[p] ⟶ B[p;a] ⟶ P
5. pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b]) ∈ Type
6. pW ∈ P ⟶ Type
7. par:P ⟶ (pW par) ⟶ ℙ
8. ind par:P
⟶ a:A[par]
⟶ f:(b:B[par;a] ⟶ (pW C[par;a;b]))
⟶ (b:B[par;a] ⟶ Q[C[par;a;b];f b])
⟶ Q[par;pW-sup(a;f)]
9. par P
10. A[par]
11. w1 b:B[par;a] ⟶ (pco-W C[par;a;b])
12. ∀path:Path. (StepAgree(path 0;par;<a, w1> (↓∃n:ℕBarred(pcw-partial(path;n))))
13. param-W-rel(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b];par;<a, w1>) ∈ n:ℕ
    ⟶ (ℕn ⟶ pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b]))
    ⟶ pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b])
    ⟶ ℙ
14. ∀[pp:n:ℕ × (ℕn ⟶ pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b]))]. (Barred(pp) ∈ ℙ)
15. : ℕ
16. ¬0 < n
17. : ℕn ⟶ pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b])
18. ∀%6:ℕn. (param-W-rel(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b];par;<a, w1>%6 (s %6))
19. ∀t:{t:pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b])| param-W-rel(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b];par;<a, w1>\000Ct} 
      (let q,w',d in 
       case d
        of inl(b) =>
        let a,f w' 
        in let ind(p,a,f,G) ind[p;a;f;G] in 
           letrec F(p,w) let a,f=w in 
                           ind(p,a,f,λb.F(C[p;a;b],f(b)) in 
           F(C[q;a;b];f b)
        inr(z) =>
        Ax ∈ let q,w',d in 
       case of inl(b) => let a,f w' in Q[C[q;a;b];f b] inr(z) => True)
20. <a, w1> ∈ pW par
21. w1 ∈ b:B[par;a] ⟶ (pW C[par;a;b])
22. B[par;a]
⊢ <par, <a, w1>inl b> ∈ {t:pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b])| 
                     param-W-rel(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b];par;<a, w1>t} 


Latex:


Latex:

1.  P  :  Type
2.  A  :  P  {}\mrightarrow{}  Type
3.  B  :  p:P  {}\mrightarrow{}  A[p]  {}\mrightarrow{}  Type
4.  C  :  p:P  {}\mrightarrow{}  a:A[p]  {}\mrightarrow{}  B[p;a]  {}\mrightarrow{}  P
5.  pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b])  \mmember{}  Type
6.  pW  \mmember{}  P  {}\mrightarrow{}  Type
7.  Q  :  par:P  {}\mrightarrow{}  (pW  par)  {}\mrightarrow{}  \mBbbP{}
8.  ind  :  par:P
{}\mrightarrow{}  a:A[par]
{}\mrightarrow{}  f:(b:B[par;a]  {}\mrightarrow{}  (pW  C[par;a;b]))
{}\mrightarrow{}  (b:B[par;a]  {}\mrightarrow{}  Q[C[par;a;b];f  b])
{}\mrightarrow{}  Q[par;pW-sup(a;f)]
9.  par  :  P
10.  a  :  A[par]
11.  w1  :  b:B[par;a]  {}\mrightarrow{}  (pco-W  C[par;a;b])
12.  \mforall{}path:Path.  (StepAgree(path  0;par;<a,  w1>)  {}\mRightarrow{}  (\mdownarrow{}\mexists{}n:\mBbbN{}.  Barred(pcw-partial(path;n))))
13.  param-W-rel(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b];par;<a,  w1>)  \mmember{}  n:\mBbbN{}
        {}\mrightarrow{}  (\mBbbN{}n  {}\mrightarrow{}  pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b]))
        {}\mrightarrow{}  pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b])
        {}\mrightarrow{}  \mBbbP{}
14.  \mforall{}[pp:n:\mBbbN{}  \mtimes{}  (\mBbbN{}n  {}\mrightarrow{}  pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b]))].  (Barred(pp)  \mmember{}  \mBbbP{})
15.  n  :  \mBbbN{}
16.  \mneg{}0  <  n
17.  s  :  \mBbbN{}n  {}\mrightarrow{}  pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b])
18.  \mforall{}\%6:\mBbbN{}n.  (param-W-rel(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b];par;<a,  w1>)  \%6  s  (s  \%6))
19.  \mforall{}t:\{t:pcw-step(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b])| 
                param-W-rel(P;p.A[p];p,a.B[p;a];p,a,b.C[p;a;b];par;<a,  w1>)  n  s  t\} 
            (let  q,w',d  =  t  in 
              case  d
                of  inl(b)  =>
                let  a,f  =  w' 
                in  let  ind(p,a,f,G)  =  ind[p;a;f;G]  in 
                      letrec  F(p,w)  =  let  a,f=w  in 
                                                      ind(p,a,f,\mlambda{}b.F(C[p;a;b],f(b))  in 
                      F(C[q;a;b];f  b)
                |  inr(z)  =>
                Ax  \mmember{}  let  q,w',d  =  t  in 
              case  d  of  inl(b)  =>  let  a,f  =  w'  in  Q[C[q;a;b];f  b]  |  inr(z)  =>  True)
20.  <a,  w1>  \mmember{}  pW  par
21.  w1  \mmember{}  b:B[par;a]  {}\mrightarrow{}  (pW  C[par;a;b])
22.  b  :  B[par;a]
\mvdash{}  let  ind(p,a,f,G)  =  ind  p  a  f  G  in 
    letrec  F(p,w)  =  let  a,f=w  in 
                                    ind(p,a,f,\mlambda{}b.F(C  p  a  b,f(b))  in 
    F(C  par  a  b;w1  b)  \mmember{}  Q[C[par;a;b];w1  b]


By


Latex:
TACTIC:(InstHyp  [\mkleeneopen{}<par,  <a,  w1>,  inl  b>\mkleeneclose{}]  (-4)\mcdot{}  THENM  (Reduce  (-1)  THEN  Auto))




Home Index