Nuprl Lemma : coinduction-principle

[F:Type ⟶ Type]
  ∀[R:corec(T.F[T]) ⟶ corec(T.F[T]) ⟶ ℙ]
    ∀[x,y:corec(T.F[T])].  y ∈ corec(T.F[T]) supposing R[x;y] supposing x,y.R[x;y] is an T.F[T]-bisimulation 
  supposing ContinuousMonotone(T.F[T])


Proof




Definitions occuring in Statement :  F-bisimulation: x,y.R[x; y] is an T.F[T]-bisimulation corec: corec(T.F[T]) continuous-monotone: ContinuousMonotone(T.F[T]) uimplies: supposing a uall: [x:A]. B[x] prop: so_apply: x[s1;s2] so_apply: x[s] function: x:A ⟶ B[x] universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T uimplies: supposing a prop: so_lambda: λ2x.t[x] so_apply: x[s] so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] true: True less_than': less_than'(a;b) le: A ≤ B subtype_rel: A ⊆B subtract: m uiff: uiff(P;Q) rev_implies:  Q not: ¬A and: P ∧ Q iff: ⇐⇒ Q or: P ∨ Q decidable: Dec(P) top: Top guard: {T} ge: i ≥  false: False implies:  Q nat: all: x:A. B[x] assert: b bnot: ¬bb sq_type: SQType(T) exists: x:A. B[x] bfalse: ff ifthenelse: if then else fi  btrue: tt it: unit: Unit bool: 𝔹 nequal: a ≠ b ∈  F-bisimulation: x,y.R[x; y] is an T.F[T]-bisimulation corec: corec(T.F[T]) type-continuous: Continuous(T.F[T]) type-monotone: Monotone(T.F[T]) continuous-monotone: ContinuousMonotone(T.F[T])
Lemmas referenced :  F-bisimulation_wf corec_wf continuous-monotone_wf nat_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-ge-2 false_wf subtract_wf decidable__le primrec0_lemma less_than_wf ge_wf less_than_irreflexivity less_than_transitivity1 nat_properties 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 int_seg_wf top_wf le_wf not-equal-2 not-le-2 primrec_wf le_weakening2
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut sqequalRule sqequalHypSubstitution isect_memberEquality isectElimination thin hypothesisEquality axiomEquality hypothesis because_Cache equalityTransitivity equalitySymmetry extract_by_obid lambdaEquality applyEquality universeEquality independent_isectElimination functionEquality cumulativity minusEquality intEquality addEquality productElimination independent_pairFormation unionElimination voidEquality functionExtensionality dependent_functionElimination voidElimination independent_functionElimination natural_numberEquality intWeakElimination rename setElimination lambdaFormation instantiate promote_hyp dependent_pairFormation equalityElimination dependent_set_memberEquality isectEquality independent_pairEquality

Latex:
\mforall{}[F:Type  {}\mrightarrow{}  Type]
    \mforall{}[R:corec(T.F[T])  {}\mrightarrow{}  corec(T.F[T])  {}\mrightarrow{}  \mBbbP{}]
        \mforall{}[x,y:corec(T.F[T])].    x  =  y  supposing  R[x;y]  supposing  x,y.R[x;y]  is  an  T.F[T]-bisimulation 
    supposing  ContinuousMonotone(T.F[T])



Date html generated: 2019_06_20-PM-00_37_14
Last ObjectModification: 2018_08_07-PM-05_54_06

Theory : co-recursion


Home Index