Step
*
of Lemma
bar_recursion_wf
∀[T:Type]. ∀[R,A:n:ℕ ⟶ (ℕn ⟶ T) ⟶ ℙ]. ∀[d:∀n:ℕ. ∀s:ℕn ⟶ T.  Dec(R[n;s])].
∀[b:∀n:ℕ. ∀s:ℕn ⟶ T.  (R[n;s] 
⇒ A[n;s])]. ∀[i:∀n:ℕ. ∀s:ℕn ⟶ T.  ((∀t:T. A[n + 1;seq-append(n;1;s;λi.t)]) 
⇒ A[n;s])].
∀[n:ℕ]. ∀[s:ℕn ⟶ T].
  ((∀alpha:ℕ ⟶ T. (↓∃m:ℕ. R[n + m;seq-append(n;m;s;alpha)]))
  
⇒ (bar_recursion(d;
                    b;
                    i;
                    n;seq-normalize(n;s)) ∈ A[n;seq-normalize(n;s)]))
BY
{ TACTIC:(Auto
          THEN (Subst ⌜bar_recursion(d;
                                     b;
                                     i;
                                     n;seq-normalize(n;s)) ∈ A[n;seq-normalize(n;s)] ~ (λk,u. bar_recursion(d;
                                                                                              b;
                                                                                              i;
                                                                                              n + k;seq-normalize(n
                                                                                              + k;seq-append(n;k;s;u))))\000C 
                                                                         0 
                                                                         ⊥ ∈ (λk,u. A[n + k;seq-normalize(n
                                                                                    + k;seq-append(n;k;s;u))]) 
                                                                             0 
                                                                             ⊥⌝ 0⋅
                THENA (Reduce 0 THEN RWW "seq-append0 seq-normalize-normalize" 0 THEN Auto THEN AutoSplit)
                )
          ) }
1
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)])
⊢ (λk,u. bar_recursion(d;b;i;n + k;seq-normalize(n + k;seq-append(n;k;s;u)))) 0 ⊥
  ∈ (λk,u. A[n + k;seq-normalize(n + k;seq-append(n;k;s;u))]) 0 ⊥
Latex:
Latex:
\mforall{}[T:Type].  \mforall{}[R,A:n:\mBbbN{}  {}\mrightarrow{}  (\mBbbN{}n  {}\mrightarrow{}  T)  {}\mrightarrow{}  \mBbbP{}].  \mforall{}[d:\mforall{}n:\mBbbN{}.  \mforall{}s:\mBbbN{}n  {}\mrightarrow{}  T.    Dec(R[n;s])].  \mforall{}[b:\mforall{}n:\mBbbN{}.  \mforall{}s:\mBbbN{}n  {}\mrightarrow{}  T.
                                                                                                                                                                        (R[n;s]
                                                                                                                                                                        {}\mRightarrow{}  A[n;s])].
\mforall{}[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])].  \mforall{}[n:\mBbbN{}].  \mforall{}[s:\mBbbN{}n  {}\mrightarrow{}  T].
    ((\mforall{}alpha:\mBbbN{}  {}\mrightarrow{}  T.  (\mdownarrow{}\mexists{}m:\mBbbN{}.  R[n  +  m;seq-append(n;m;s;alpha)]))
    {}\mRightarrow{}  (bar\_recursion(d;
                                        b;
                                        i;
                                        n;seq-normalize(n;s))  \mmember{}  A[n;seq-normalize(n;s)]))
By
Latex:
TACTIC:(Auto
                THEN  (Subst  \mkleeneopen{}bar\_recursion(d;
                                                                      b;
                                                                      i;
                                                                      n;seq-normalize(n;s))  \mmember{}  A[n;seq-normalize(n;s)] 
                                          \msim{}  (\mlambda{}k,u.  bar\_recursion(d;b;i;n  +  k;seq-normalize(n  +  k;seq-append(n;k;s;u))))  0\000C  \mbot{}
                                              \mmember{}  (\mlambda{}k,u.  A[n  +  k;seq-normalize(n  +  k;seq-append(n;k;s;u))])  0  \mbot{}\mkleeneclose{}  0\mcdot{}
                            THENA  (Reduce  0
                                          THEN  RWW  "seq-append0  seq-normalize-normalize"  0
                                          THEN  Auto
                                          THEN  AutoSplit)
                            )
                )
Home
Index