### Nuprl Lemma : fix_wf_corec1

`∀[F,H:Type ⟶ Type].`
`  ∀[G:⋂T:{T:Type| (F[T] ⊆r T) ∧ (corec(T.F[T]) ⊆r T)} . (H[T] ⟶ H[F[T]]) ⋂ Top ⟶ H[Top]]. (fix(G) ∈ H[corec(T.F[T])]) `
`  supposing Continuous(T.H[T]) ∧ Monotone(T.F[T])`

Proof

Definitions occuring in Statement :  corec: `corec(T.F[T])` type-monotone: `Monotone(T.F[T])` type-continuous: `Continuous(T.F[T])` isect2: `T1 ⋂ T2` uimplies: `b supposing a` subtype_rel: `A ⊆r B` uall: `∀[x:A]. B[x]` top: `Top` so_apply: `x[s]` and: `P ∧ Q` member: `t ∈ T` set: `{x:A| B[x]} ` fix: `fix(F)` isect: `⋂x:A. B[x]` function: `x:A ⟶ B[x]` universe: `Type`
Definitions unfolded in proof :  uall: `∀[x:A]. B[x]` member: `t ∈ T` uimplies: `b supposing a` corec: `corec(T.F[T])` subtype_rel: `A ⊆r B` and: `P ∧ Q` so_apply: `x[s]` so_lambda: `λ2x.t[x]` all: `∀x:A. B[x]` prop: `ℙ` nat: `ℕ` implies: `P `` Q` false: `False` ge: `i ≥ j ` guard: `{T}` top: `Top` cand: `A c∧ B` assert: `↑b` bnot: `¬bb` sq_type: `SQType(T)` or: `P ∨ Q` exists: `∃x:A. B[x]` bfalse: `ff` ifthenelse: `if b then t else f fi ` uiff: `uiff(P;Q)` btrue: `tt` it: `⋅` unit: `Unit` bool: `𝔹` true: `True` less_than': `less_than'(a;b)` le: `A ≤ B` subtract: `n - m` rev_implies: `P `` Q` not: `¬A` iff: `P `⇐⇒` Q` decidable: `Dec(P)` nequal: `a ≠ b ∈ T ` type-monotone: `Monotone(T.F[T])` squash: `↓T` type-continuous: `Continuous(T.F[T])`
Lemmas referenced :  isect2_wf subtype_rel_wf corec_wf top_wf type-continuous_wf type-monotone_wf nat_properties less_than_transitivity1 less_than_irreflexivity ge_wf less_than_wf primrec0_lemma istype-void subtract-1-ge-0 nat_wf isect2_decomp neg_assert_of_eq_int assert-bnot bool_subtype_base subtype_base_sq bool_cases_sqequal equal_wf eqff_to_assert le_weakening assert_of_eq_int eqtt_to_assert bool_wf eq_int_wf primrec-unroll set_wf isect2_subtype_rel3 int_seg_wf le_wf le-add-cancel add-zero add_functionality_wrt_le add-commutes add-swap add-associates minus-minus minus-add minus-one-mul-top zero-add minus-one-mul condition-implies-le less-iff-le not-equal-2 not-le-2 false_wf decidable__le subtract_wf primrec_wf le_weakening2 not-ge-2
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity Error :isect_memberFormation_alt,  introduction cut applyEquality hypothesis sqequalHypSubstitution sqequalRule axiomEquality equalityTransitivity equalitySymmetry Error :universeIsType,  productElimination thin instantiate extract_by_obid isectElimination isectEquality setEquality universeEquality productEquality functionExtensionality hypothesisEquality because_Cache cumulativity Error :lambdaEquality_alt,  Error :inhabitedIsType,  Error :lambdaFormation_alt,  setElimination rename functionEquality Error :isect_memberEquality_alt,  Error :productIsType,  Error :functionIsType,  intWeakElimination natural_numberEquality independent_isectElimination independent_functionElimination voidElimination dependent_functionElimination Error :equalityIsType1,  independent_pairFormation lambdaEquality promote_hyp dependent_pairFormation equalityElimination unionElimination lambdaFormation voidEquality isect_memberEquality inlFormation minusEquality intEquality addEquality dependent_set_memberEquality imageElimination baseClosed imageMemberEquality applyLambdaEquality

Latex:
\mforall{}[F,H:Type  {}\mrightarrow{}  Type].
\mforall{}[G:\mcap{}T:\{T:Type|  (F[T]  \msubseteq{}r  T)  \mwedge{}  (corec(T.F[T])  \msubseteq{}r  T)\}  .  (H[T]  {}\mrightarrow{}  H[F[T]])  \mcap{}  Top  {}\mrightarrow{}  H[Top]]
(fix(G)  \mmember{}  H[corec(T.F[T])])
supposing  Continuous(T.H[T])  \mwedge{}  Monotone(T.F[T])

Date html generated: 2019_06_20-PM-00_36_46
Last ObjectModification: 2018_10_01-AM-10_05_17

Theory : co-recursion

Home Index