Step
*
of Lemma
basic_bar_induction
∀[T:Type]. ∀[R,A:n:ℕ ⟶ (ℕn ⟶ T) ⟶ ℙ].
  ((∀n:ℕ. ∀s:ℕn ⟶ T.  Dec(R[n;s]))
  
⇒ (∀n:ℕ. ∀s:ℕn ⟶ T.  (R[n;s] 
⇒ A[n;s]))
  
⇒ (∀n:ℕ. ∀s:ℕn ⟶ T.  ((∀t:T. A[n + 1;s++t]) 
⇒ A[n;s]))
  
⇒ (∀alpha:ℕ ⟶ T. (↓∃m:ℕ. R[m;alpha]))
  
⇒ (∀x:Top. A[0;x]))
BY
{ (Auto
   THEN RenameVar `d' (-5)
   THEN RenameVar `b' (-4)
   THEN RenameVar `i' (-3)
   THEN UseWitness ⌜bar_recursion(d;
                                  b;
                                  i;
                                  0;seq-normalize(0;x))⌝⋅
   THEN Auto
   THEN Assert ⌜seq-normalize(0;x) = x ∈ (ℕ0 ⟶ T)⌝⋅
   THEN Auto) }
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;s++t]) 
⇒ A[n;s])
7. ∀alpha:ℕ ⟶ T. (↓∃m:ℕ. R[m;alpha])
8. x : Top
9. seq-normalize(0;x) = x ∈ (ℕ0 ⟶ T)
10. alpha : ℕ ⟶ T
⊢ ↓∃m:ℕ. R[0 + m;seq-append(0;m;x;alpha)]
Latex:
Latex:
\mforall{}[T:Type].  \mforall{}[R,A:n:\mBbbN{}  {}\mrightarrow{}  (\mBbbN{}n  {}\mrightarrow{}  T)  {}\mrightarrow{}  \mBbbP{}].
    ((\mforall{}n:\mBbbN{}.  \mforall{}s:\mBbbN{}n  {}\mrightarrow{}  T.    Dec(R[n;s]))
    {}\mRightarrow{}  (\mforall{}n:\mBbbN{}.  \mforall{}s:\mBbbN{}n  {}\mrightarrow{}  T.    (R[n;s]  {}\mRightarrow{}  A[n;s]))
    {}\mRightarrow{}  (\mforall{}n:\mBbbN{}.  \mforall{}s:\mBbbN{}n  {}\mrightarrow{}  T.    ((\mforall{}t:T.  A[n  +  1;s++t])  {}\mRightarrow{}  A[n;s]))
    {}\mRightarrow{}  (\mforall{}alpha:\mBbbN{}  {}\mrightarrow{}  T.  (\mdownarrow{}\mexists{}m:\mBbbN{}.  R[m;alpha]))
    {}\mRightarrow{}  (\mforall{}x:Top.  A[0;x]))
By
Latex:
(Auto
  THEN  RenameVar  `d'  (-5)
  THEN  RenameVar  `b'  (-4)
  THEN  RenameVar  `i'  (-3)
  THEN  UseWitness  \mkleeneopen{}bar\_recursion(d;
                                                                b;
                                                                i;
                                                                0;seq-normalize(0;x))\mkleeneclose{}\mcdot{}
  THEN  Auto
  THEN  Assert  \mkleeneopen{}seq-normalize(0;x)  =  x\mkleeneclose{}\mcdot{}
  THEN  Auto)
Home
Index