Nuprl Lemma : fix_wf_corec1

[F,H:Type ⟶ Type].
  ∀[G:⋂T:{T:Type| (F[T] ⊆T) ∧ (corec(T.F[T]) ⊆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: supposing a subtype_rel: A ⊆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: supposing a corec: corec(T.F[T]) subtype_rel: A ⊆B and: P ∧ Q so_apply: x[s] so_lambda: λ2x.t[x] all: x:A. B[x] prop: nat: implies:  Q false: False ge: i ≥  guard: {T} top: Top cand: c∧ B assert: b bnot: ¬bb sq_type: SQType(T) or: P ∨ Q exists: x:A. B[x] bfalse: ff ifthenelse: if then else fi  uiff: uiff(P;Q) btrue: tt it: unit: Unit bool: 𝔹 true: True less_than': less_than'(a;b) le: A ≤ B subtract: m rev_implies:  Q not: ¬A iff: ⇐⇒ Q decidable: Dec(P) nequal: a ≠ b ∈  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