Step
*
1
1
1
1
of Lemma
bar_recursion_wf
1. T : Type
2. R : n:ℕ ⟶ (ℕn ⟶ T) ⟶ ℙ
3. A : n:ℕ ⟶ (ℕn ⟶ T) ⟶ ℙ
4. d : ∀n:ℕ. ∀s:ℕn ⟶ T.  Dec(R n s)
5. b : ∀n:ℕ. ∀s:ℕn ⟶ T.  ((R n s) 
⇒ (A n s))
6. i : ∀n:ℕ. ∀s:ℕn ⟶ T.  ((∀t:T. (A (n + 1) seq-append(n;1;s;λi.t))) 
⇒ (A n s))
7. n : ℕ
8. s : ℕn ⟶ T
9. ∀alpha:ℕ ⟶ T. (↓∃m:ℕ. (R (n + m) seq-append(n;m;s;alpha)))
10. n1 : ℕ
11. s1 : ℕn1 ⟶ T
12. ∀t:T
      (bar_recursion(d;
                     b;
                     i;
                     n + n1 + 1;seq-append(n;n1 + 1;s;λm.if m=n1 then t else (s1 m))) ∈ A (n + n1 + 1) 
                                                                          seq-append(n;n1 + 1;s;λm.if m=n1
                                                                                                   then t
                                                                                                   else (s1 m)))
13. y : ¬(R (n + n1) seq-append(n;n1;s;s1))
14. (d (n + n1) seq-append(n;n1;s;s1)) = (inr y ) ∈ Dec(R (n + n1) seq-append(n;n1;s;s1))
15. t : T
16. bar_recursion(d;
                  b;
                  i;
                  n + n1 + 1;seq-append(n;n1 + 1;s;λm.if m=n1 then t else (s1 m))) ∈ A (n + n1 + 1) 
                                                                       seq-append(n;n1 + 1;s;λm.if m=n1
                                                                                                then t
                                                                                                else (s1 m))
⊢ seq-append(n + n1;1;seq-append(n;n1;s;s1);λi.t) ~ seq-append(n;n1 + 1;s;λm.if m=n1 then t else (s1 m))
BY
{ ((RWO "seq-append-assoc<" 0 THENA Auto)
   THEN (RWO "seq-append1" 0 THENA Auto)
   THEN RWO "seq-append-normalize" 0
   THEN Auto) }
Latex:
Latex:
1.  T  :  Type
2.  R  :  n:\mBbbN{}  {}\mrightarrow{}  (\mBbbN{}n  {}\mrightarrow{}  T)  {}\mrightarrow{}  \mBbbP{}
3.  A  :  n:\mBbbN{}  {}\mrightarrow{}  (\mBbbN{}n  {}\mrightarrow{}  T)  {}\mrightarrow{}  \mBbbP{}
4.  d  :  \mforall{}n:\mBbbN{}.  \mforall{}s:\mBbbN{}n  {}\mrightarrow{}  T.    Dec(R  n  s)
5.  b  :  \mforall{}n:\mBbbN{}.  \mforall{}s:\mBbbN{}n  {}\mrightarrow{}  T.    ((R  n  s)  {}\mRightarrow{}  (A  n  s))
6.  i  :  \mforall{}n:\mBbbN{}.  \mforall{}s:\mBbbN{}n  {}\mrightarrow{}  T.    ((\mforall{}t:T.  (A  (n  +  1)  seq-append(n;1;s;\mlambda{}i.t)))  {}\mRightarrow{}  (A  n  s))
7.  n  :  \mBbbN{}
8.  s  :  \mBbbN{}n  {}\mrightarrow{}  T
9.  \mforall{}alpha:\mBbbN{}  {}\mrightarrow{}  T.  (\mdownarrow{}\mexists{}m:\mBbbN{}.  (R  (n  +  m)  seq-append(n;m;s;alpha)))
10.  n1  :  \mBbbN{}
11.  s1  :  \mBbbN{}n1  {}\mrightarrow{}  T
12.  \mforall{}t:T
            (bar\_recursion(d;
                                          b;
                                          i;
                                          n  +  n1  +  1;seq-append(n;n1  +  1;s;\mlambda{}m.if  m=n1  then  t  else  (s1  m)))  \mmember{}  A  (n  +  n1  +  \000C1) 
                                                                                                                                                    seq-append(n;n1
                                                                                                                                                    +  1;s;\mlambda{}m.if  m=n1
                                                                                                                                                                      then  t
                                                                                                                                                                      else  (s1  m)))
13.  y  :  \mneg{}(R  (n  +  n1)  seq-append(n;n1;s;s1))
14.  (d  (n  +  n1)  seq-append(n;n1;s;s1))  =  (inr  y  )
15.  t  :  T
16.  bar\_recursion(d;
                                    b;
                                    i;
                                    n  +  n1  +  1;seq-append(n;n1  +  1;s;\mlambda{}m.if  m=n1  then  t  else  (s1  m)))  \mmember{}  A  (n  +  n1  +  1) 
                                                                                                                                              seq-append(n;n1
                                                                                                                                              +  1;s;\mlambda{}m.if  m=n1
                                                                                                                                                                then  t
                                                                                                                                                                else  (s1  m))
\mvdash{}  seq-append(n  +  n1;1;seq-append(n;n1;s;s1);\mlambda{}i.t)  \msim{}  seq-append(n;n1  +  1;s;\mlambda{}m.if  m=n1
                                                                                                                                                          then  t
                                                                                                                                                          else  (s1  m))
By
Latex:
((RWO  "seq-append-assoc<"  0  THENA  Auto)
  THEN  (RWO  "seq-append1"  0  THENA  Auto)
  THEN  RWO  "seq-append-normalize"  0
  THEN  Auto)
Home
Index