Step
*
1
of Lemma
bar-recursion_wf
1. T : Type
2. R : (T List) ⟶ ℙ
3. A : (T List) ⟶ ℙ
4. d : ∀s:T List. Dec(R[s])
5. b : ∀s:T List. (R[s] 
⇒ A[s])
6. i : ∀s:T List. ((∀t:T. A[s @ [t]]) 
⇒ A[s])
7. s : T List
8. ∀alpha:ℕ ⟶ T. (↓∃n:ℕ. R[s @ map(alpha;upto(n))])@i
⊢ bar-recursion(d;
                b;
                i;
                s) ∈ A[s]
BY
{ Subst ⌜bar-recursion(d;
                       b;
                       i;
                       s) ∈ A[s] ~ (λx.bar-recursion(d;b;i;s @ x)) [] ∈ (λx.A[s @ x]) []⌝ 0⋅ }
1
.....equality..... 
1. T : Type
2. R : (T List) ⟶ ℙ
3. A : (T List) ⟶ ℙ
4. d : ∀s:T List. Dec(R[s])
5. b : ∀s:T List. (R[s] 
⇒ A[s])
6. i : ∀s:T List. ((∀t:T. A[s @ [t]]) 
⇒ A[s])
7. s : T List
8. ∀alpha:ℕ ⟶ T. (↓∃n:ℕ. R[s @ map(alpha;upto(n))])@i
⊢ bar-recursion(d;
                b;
                i;
                s) ∈ A[s] ~ (λx.bar-recursion(d;b;i;s @ x)) [] ∈ (λx.A[s @ x]) []
2
1. T : Type
2. R : (T List) ⟶ ℙ
3. A : (T List) ⟶ ℙ
4. d : ∀s:T List. Dec(R[s])
5. b : ∀s:T List. (R[s] 
⇒ A[s])
6. i : ∀s:T List. ((∀t:T. A[s @ [t]]) 
⇒ A[s])
7. s : T List
8. ∀alpha:ℕ ⟶ T. (↓∃n:ℕ. R[s @ map(alpha;upto(n))])@i
⊢ (λx.bar-recursion(d;b;i;s @ x)) [] ∈ (λx.A[s @ x]) []
Latex:
Latex:
1.  T  :  Type
2.  R  :  (T  List)  {}\mrightarrow{}  \mBbbP{}
3.  A  :  (T  List)  {}\mrightarrow{}  \mBbbP{}
4.  d  :  \mforall{}s:T  List.  Dec(R[s])
5.  b  :  \mforall{}s:T  List.  (R[s]  {}\mRightarrow{}  A[s])
6.  i  :  \mforall{}s:T  List.  ((\mforall{}t:T.  A[s  @  [t]])  {}\mRightarrow{}  A[s])
7.  s  :  T  List
8.  \mforall{}alpha:\mBbbN{}  {}\mrightarrow{}  T.  (\mdownarrow{}\mexists{}n:\mBbbN{}.  R[s  @  map(alpha;upto(n))])@i
\mvdash{}  bar-recursion(d;
                                b;
                                i;
                                s)  \mmember{}  A[s]
By
Latex:
Subst  \mkleeneopen{}bar-recursion(d;
                                          b;
                                          i;
                                          s)  \mmember{}  A[s]  \msim{}  (\mlambda{}x.bar-recursion(d;b;i;s  @  x))  []  \mmember{}  (\mlambda{}x.A[s  @  x])  []\mkleeneclose{}  0\mcdot{}
Home
Index