Step
*
1
of Lemma
unique-corec-solution
1. [F] : Type ⟶ Type
2. ContinuousMonotone(T.F[T])
3. [I] : Type
4. G : ⋂T:{T:Type| (F[T] ⊆r T) ∧ (corec(T.F[T]) ⊆r T)} . ((I ⟶ T) ⟶ I ⟶ F[T])
5. corec(T.F[T]) ⊆r F[corec(T.F[T])]
6. F[corec(T.F[T])] ⊆r corec(T.F[T])
7. G ∈ (I ⟶ corec(T.F[T])) ⟶ I ⟶ corec(T.F[T])
⊢ ∃!s:I ⟶ corec(T.F[T]). (s = (G s) ∈ (I ⟶ corec(T.F[T])))
BY
{ TACTIC:((Assert fix(G) ∈ I ⟶ corec(T.F[T]) BY
                 (BLemma `fix_wf_corec_system` THEN Auto))
          THEN (Assert ∀i:I. ((fix(G) i) = (G fix(G) i) ∈ corec(T.F[T])) BY
                      (Auto THEN RW (AddrC [2;1] UnrollRecursionC) 0 THEN Auto))
          THEN With ⌜fix(G)⌝ (D 0)⋅
          THEN Auto) }
1
1. F : Type ⟶ Type
2. ContinuousMonotone(T.F[T])
3. I : Type
4. G : ⋂T:{T:Type| (F[T] ⊆r T) ∧ (corec(T.F[T]) ⊆r T)} . ((I ⟶ T) ⟶ I ⟶ F[T])
5. corec(T.F[T]) ⊆r F[corec(T.F[T])]
6. F[corec(T.F[T])] ⊆r corec(T.F[T])
7. G ∈ (I ⟶ corec(T.F[T])) ⟶ I ⟶ corec(T.F[T])
8. fix(G) ∈ I ⟶ corec(T.F[T])
9. ∀i:I. ((fix(G) i) = (G fix(G) i) ∈ corec(T.F[T]))
10. fix(G) = (G fix(G)) ∈ (I ⟶ corec(T.F[T]))
11. y : I ⟶ corec(T.F[T])
12. y = (G y) ∈ (I ⟶ corec(T.F[T]))
⊢ y = fix(G) ∈ (I ⟶ corec(T.F[T]))
Latex:
Latex:
1.  [F]  :  Type  {}\mrightarrow{}  Type
2.  ContinuousMonotone(T.F[T])
3.  [I]  :  Type
4.  G  :  \mcap{}T:\{T:Type|  (F[T]  \msubseteq{}r  T)  \mwedge{}  (corec(T.F[T])  \msubseteq{}r  T)\}  .  ((I  {}\mrightarrow{}  T)  {}\mrightarrow{}  I  {}\mrightarrow{}  F[T])
5.  corec(T.F[T])  \msubseteq{}r  F[corec(T.F[T])]
6.  F[corec(T.F[T])]  \msubseteq{}r  corec(T.F[T])
7.  G  \mmember{}  (I  {}\mrightarrow{}  corec(T.F[T]))  {}\mrightarrow{}  I  {}\mrightarrow{}  corec(T.F[T])
\mvdash{}  \mexists{}!s:I  {}\mrightarrow{}  corec(T.F[T]).  (s  =  (G  s))
By
Latex:
TACTIC:((Assert  fix(G)  \mmember{}  I  {}\mrightarrow{}  corec(T.F[T])  BY
                              (BLemma  `fix\_wf\_corec\_system`  THEN  Auto))
                THEN  (Assert  \mforall{}i:I.  ((fix(G)  i)  =  (G  fix(G)  i))  BY
                                        (Auto  THEN  RW  (AddrC  [2;1]  UnrollRecursionC)  0  THEN  Auto))
                THEN  With  \mkleeneopen{}fix(G)\mkleeneclose{}  (D  0)\mcdot{}
                THEN  Auto)
Home
Index