Nuprl Lemma : coW-equiv-iff2

[A:𝕌']
  ∀B:A ⟶ Type. ∀w,w':coW(A;a.B[a]).
    (coW-equiv(a.B[a];w;w')
    ⇐⇒ ∀p:copath(a.B[a];w')
          ∃q:copath(a.B[a];w)
           ((copath-length(q) copath-length(p) ∈ ℤ) ∧ coW-equiv(a.B[a];copath-at(w';p);copath-at(w;q))))


Proof




Definitions occuring in Statement :  coW-equiv: coW-equiv(a.B[a];w;w') copath-length: copath-length(p) copath-at: copath-at(w;p) copath: copath(a.B[a];w) coW: coW(A;a.B[a]) uall: [x:A]. B[x] so_apply: x[s] all: x:A. B[x] exists: x:A. B[x] iff: ⇐⇒ Q and: P ∧ Q function: x:A ⟶ B[x] int: universe: Type equal: t ∈ T
Definitions unfolded in proof :  nequal: a ≠ b ∈  assert: b bnot: ¬bb it: unit: Unit bool: 𝔹 copath-cons: copath-cons(b;x) coWmem: coWmem(a.B[a];z;w) bfalse: ff sq_type: SQType(T) coPath: coPath(a.B[a];w;n) btrue: tt ifthenelse: if then else fi  copath-nil: () eq_int: (i =z j) coPath-at: coPath-at(n;w;p) cand: c∧ B exists: x:A. B[x] true: True top: Top subtract: m uiff: uiff(P;Q) or: P ∨ Q decidable: Dec(P) uimplies: supposing a guard: {T} not: ¬A false: False less_than': less_than'(a;b) le: A ≤ B copath-at: copath-at(w;p) pi1: fst(t) copath-length: copath-length(p) copath: copath(a.B[a];w) nat: subtype_rel: A ⊆B rev_implies:  Q prop: so_apply: x[s] so_lambda: λ2x.t[x] member: t ∈ T implies:  Q and: P ∧ Q iff: ⇐⇒ Q all: x:A. B[x] uall: [x:A]. B[x]
Lemmas referenced :  not-equal-2 neg_assert_of_eq_int assert-bnot bool_cases_sqequal length-copath-cons copath-cons_wf coW-item-coWmem coW-item_wf coW-equiv-iff assert_of_bnot iff_weakening_uiff iff_transitivity eqff_to_assert assert_of_eq_int eqtt_to_assert bool_subtype_base bool_wf subtype_base_sq bool_cases equal-wf-base not_wf bnot_wf assert_wf less_than_irreflexivity le_weakening less_than_transitivity1 eq_int_wf coW-equiv_inversion copath_length_nil_lemma copath-nil_wf primrec-wf2 less_than_wf set_wf coPath-at_wf int_subtype_base equal-wf-T-base 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-le-2 decidable__le subtract_wf le_weakening2 le_wf false_wf coPath_wf coW_wf copath-at_wf nat_wf copath-length_wf equal_wf exists_wf all_wf coW-equiv_wf copath_wf
Rules used in proof :  dependent_pairEquality equalityElimination promote_hyp independent_pairEquality impliesFunctionality equalitySymmetry equalityTransitivity dependent_pairFormation baseClosed closedConclusion baseApply minusEquality voidEquality isect_memberEquality addEquality independent_functionElimination voidElimination unionElimination independent_isectElimination dependent_functionElimination natural_numberEquality dependent_set_memberEquality functionExtensionality productElimination universeEquality functionEquality cumulativity instantiate because_Cache rename setElimination intEquality productEquality hypothesis applyEquality lambdaEquality sqequalRule hypothesisEquality thin isectElimination sqequalHypSubstitution extract_by_obid introduction cut independent_pairFormation lambdaFormation isect_memberFormation sqequalReflexivity computationStep sqequalTransitivity sqequalSubstitution

Latex:
\mforall{}[A:\mBbbU{}']
    \mforall{}B:A  {}\mrightarrow{}  Type.  \mforall{}w,w':coW(A;a.B[a]).
        (coW-equiv(a.B[a];w;w')
        \mLeftarrow{}{}\mRightarrow{}  \mforall{}p:copath(a.B[a];w')
                    \mexists{}q:copath(a.B[a];w)
                      ((copath-length(q)  =  copath-length(p))
                      \mwedge{}  coW-equiv(a.B[a];copath-at(w';p);copath-at(w;q))))



Date html generated: 2018_07_25-PM-01_49_03
Last ObjectModification: 2018_07_24-PM-03_46_18

Theory : co-recursion


Home Index