Step
*
of Lemma
fix_wf_mutual-corec-partial1
∀[A:Type]
(∀[k:ℕ]. ∀[F:(ℕk ⟶ Type) ⟶ ℕk ⟶ Type].
∀[f:⋂T:ℕk ⟶ Type. ((i:ℕk ⟶ (T i) ⟶ partial(A)) ⟶ i:ℕk ⟶ (F[T] i) ⟶ partial(A))]
(fix(f) ∈ i:ℕk ⟶ m-corec(T.F[T];i) ⟶ partial(A))
supposing k-Monotone(T.F[T])
∧ (∀i,j:ℕk. ∀Z:ℕk ⟶ Type. Continuous(X.F[λi.if (i =z j) then X else Z i fi ] i))) supposing
(mono(A) and
value-type(A))
BY
{ (Auto THEN BLemma `fix-mutual-corec-partial1` THEN Auto THEN (InstLemma `mutual-corec-ext2` [⌜k⌝;⌜F⌝]⋅ THENA Auto)) }
1
1. A : Type
2. value-type(A)
3. mono(A)
4. k : ℕ
5. F : (ℕk ⟶ Type) ⟶ ℕk ⟶ Type
6. k-Monotone(T.F[T])
7. ∀i,j:ℕk. ∀Z:ℕk ⟶ Type. Continuous(X.F[λi.if (i =z j) then X else Z i fi ] i)
8. f : ⋂T:ℕk ⟶ Type. ((i:ℕk ⟶ (T i) ⟶ partial(A)) ⟶ i:ℕk ⟶ (F[T] i) ⟶ partial(A))
9. mutual-corec(T.F[T]) ≡ F[mutual-corec(T.F[T])]
⊢ f ∈ (i:ℕk ⟶ m-corec(T.F[T];i) ⟶ partial(A)) ⟶ i:ℕk ⟶ m-corec(T.F[T];i) ⟶ partial(A)
Latex:
Latex:
\mforall{}[A:Type]
(\mforall{}[k:\mBbbN{}]. \mforall{}[F:(\mBbbN{}k {}\mrightarrow{} Type) {}\mrightarrow{} \mBbbN{}k {}\mrightarrow{} Type].
\mforall{}[f:\mcap{}T:\mBbbN{}k {}\mrightarrow{} Type. ((i:\mBbbN{}k {}\mrightarrow{} (T i) {}\mrightarrow{} partial(A)) {}\mrightarrow{} i:\mBbbN{}k {}\mrightarrow{} (F[T] i) {}\mrightarrow{} partial(A))]
(fix(f) \mmember{} i:\mBbbN{}k {}\mrightarrow{} m-corec(T.F[T];i) {}\mrightarrow{} partial(A))
supposing k-Monotone(T.F[T])
\mwedge{} (\mforall{}i,j:\mBbbN{}k. \mforall{}Z:\mBbbN{}k {}\mrightarrow{} Type. Continuous(X.F[\mlambda{}i.if (i =\msubz{} j) then X else Z i fi ] i))) supposing
(mono(A) and
value-type(A))
By
Latex:
(Auto
THEN BLemma `fix-mutual-corec-partial1`
THEN Auto
THEN (InstLemma `mutual-corec-ext2` [\mkleeneopen{}k\mkleeneclose{};\mkleeneopen{}F\mkleeneclose{}]\mcdot{} THENA Auto))
Home
Index