Step * of Lemma mutual-corec-ext

[k:ℕ]. ∀[F:(ℕk ⟶ Type) ⟶ ℕk ⟶ Type].
  (mutual-corec(T.F[T]) ≡ F[mutual-corec(T.F[T])]) supposing (k-Monotone(T.F[T]) and k-Continuous(T.F[T]))
BY
(Intros
   THEN (Assert ∀n:ℕprimrec(n 1;λi.Top;λj,T. F[T]) ⊆ primrec(n;λi.Top;λj,T. F[T]) BY
               (InductionOnNat⋅
                THEN Reduce 0
                THEN Try (Complete ((D THEN Auto)))
                THEN (RW (AddrC [2] (LemmaC `primrec-unroll`)) 0⋅ THENA Auto)
                THEN AutoSplit
                THEN ((Subst' (n 1) THENA Auto)
                      THEN Unfold `k-monotone` 4
                      THEN (FHyp [-1] THENA Auto)
                      THEN NthHypEq (-1)
                      THEN EqCD
                      THEN Auto
                      THEN (RW (AddrC [2] (LemmaC `primrec-unroll`)) 0⋅ THENA Auto)
                      THEN AutoSplit)⋅))
   THEN 0
   THEN Unfold `mutual-corec` 0) }

1
1. [k] : ℕ
2. [F] (ℕk ⟶ Type) ⟶ ℕk ⟶ Type
3. [%] k-Continuous(T.F[T])
4. [%1] k-Monotone(T.F[T])
5. ∀n:ℕprimrec(n 1;λi.Top;λj,T. F[T]) ⊆ primrec(n;λi.Top;λj,T. F[T])
⊢ ⋂n. primrec(n;λi.Top;λ,T. F[T]) ⊆ F[⋂n. primrec(n;λi.Top;λ,T. F[T])]

2
1. [k] : ℕ
2. [F] (ℕk ⟶ Type) ⟶ ℕk ⟶ Type
3. [%] k-Continuous(T.F[T])
4. [%1] k-Monotone(T.F[T])
5. ∀n:ℕprimrec(n 1;λi.Top;λj,T. F[T]) ⊆ primrec(n;λi.Top;λj,T. F[T])
⊢ F[⋂n. primrec(n;λi.Top;λ,T. F[T])] ⊆ ⋂n. primrec(n;λi.Top;λ,T. F[T])


Latex:


Latex:
\mforall{}[k:\mBbbN{}].  \mforall{}[F:(\mBbbN{}k  {}\mrightarrow{}  Type)  {}\mrightarrow{}  \mBbbN{}k  {}\mrightarrow{}  Type].
    (mutual-corec(T.F[T])  \mequiv{}  F[mutual-corec(T.F[T])])  supposing 
          (k-Monotone(T.F[T])  and 
          k-Continuous(T.F[T]))


By


Latex:
(Intros
  THEN  (Assert  \mforall{}n:\mBbbN{}.  primrec(n  +  1;\mlambda{}i.Top;\mlambda{}j,T.  F[T])  \msubseteq{}  primrec(n;\mlambda{}i.Top;\mlambda{}j,T.  F[T])  BY
                          (InductionOnNat\mcdot{}
                            THEN  Reduce  0
                            THEN  Try  (Complete  ((D  0  THEN  Auto)))
                            THEN  (RW  (AddrC  [2]  (LemmaC  `primrec-unroll`))  0\mcdot{}  THENA  Auto)
                            THEN  AutoSplit
                            THEN  ((Subst'  (n  +  1)  -  1  \msim{}  n  0  THENA  Auto)
                                        THEN  Unfold  `k-monotone`  4
                                        THEN  (FHyp  4  [-1]  THENA  Auto)
                                        THEN  NthHypEq  (-1)
                                        THEN  EqCD
                                        THEN  Auto
                                        THEN  (RW  (AddrC  [2]  (LemmaC  `primrec-unroll`))  0\mcdot{}  THENA  Auto)
                                        THEN  AutoSplit)\mcdot{}))
  THEN  D  0
  THEN  Unfold  `mutual-corec`  0)




Home Index