Nuprl Lemma : RankEx2-defop-extract

[T,S,P:Type]. ∀[R:P ⟶ RankEx2(S;T) ⟶ ℙ].
  ((∀t:T. (∃x:{P| (R RankEx2_LeafT(t))}))
   (∀s:S. (∃x:{P| (R RankEx2_LeafS(s))}))
   (∀d:RankEx2(S;T). ∀s:S. ∀t:T.  ((∃x:{P| (R d)})  (∃x:{P| (R RankEx2_Prod(<<d, s>t>))})))
   (∀z:S × RankEx2(S;T) RankEx2(S;T)
        (case of inl(p) => ∃x:{P| (R (snd(p)))} inr(d) => ∃x:{P| (R d)}  (∃x:{P| (R RankEx2_Union(z))})))
   (∀L:(S × RankEx2(S;T)) List. ((∀p∈L.∃x:{P| (R (snd(p)))})  (∃x:{P| (R RankEx2_ListProd(L))})))
   (∀z:T (RankEx2(S;T) List)
        (case of inl(p) => True inr(L) => (∀p∈L.∃x:{P| (R p)})  (∃x:{P| (R RankEx2_UnionList(z))})))
   {∀t:RankEx2(S;T). (∃x:{P| (R t)})})


Proof




Definitions occuring in Statement :  RankEx2_UnionList: RankEx2_UnionList(unionlist) RankEx2_ListProd: RankEx2_ListProd(listprod) RankEx2_Union: RankEx2_Union(union) RankEx2_Prod: RankEx2_Prod(prod) RankEx2_LeafS: RankEx2_LeafS(leafs) RankEx2_LeafT: RankEx2_LeafT(leaft) RankEx2: RankEx2(S;T) l_all: (∀x∈L.P[x]) list: List uall: [x:A]. B[x] prop: guard: {T} pi2: snd(t) all: x:A. B[x] sq_exists: x:{A| B[x]} implies:  Q true: True apply: a function: x:A ⟶ B[x] pair: <a, b> product: x:A × B[x] decide: case of inl(x) => s[x] inr(y) => t[y] union: left right universe: Type
Definitions unfolded in proof :  member: t ∈ T RankEx2-defop RankEx2-definition RankEx2-induction eq_atom: =a y subtype_base_sq assert_of_eq_atom eqtt_to_assert any: any x btrue: tt assert-bnot eqff_to_assert bfalse: ff bool_cases_sqequal RankEx2-ext uniform-comp-nat-induction it: top: Top all: x:A. B[x] implies:  Q has-value: (a)↓ uall: [x:A]. B[x] so_lambda: so_lambda(x,y,z,w.t[x; y; z; w]) so_apply: x[s1;s2;s3;s4] so_lambda: λ2x.t[x] so_apply: x[s] uimplies: supposing a strict4: strict4(F) and: P ∧ Q prop: guard: {T} or: P ∨ Q squash: T so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] genrec-ap: genrec-ap
Lemmas referenced :  RankEx2-defop RankEx2-definition RankEx2-induction subtype_base_sq assert_of_eq_atom eqtt_to_assert assert-bnot eqff_to_assert bool_cases_sqequal RankEx2-ext uniform-comp-nat-induction lifting-strict-spread base_wf lifting-strict-atom_eq is-exception_wf has-value_wf_base top_wf
Rules used in proof :  introduction cut sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity instantiate extract_by_obid hypothesis sqequalHypSubstitution sqequalRule isect_memberEquality voidElimination voidEquality thin lemma_by_obid lambdaFormation because_Cache sqequalSqle divergentSqle callbyvalueDecide unionEquality unionElimination sqleReflexivity equalityEquality equalityTransitivity equalitySymmetry hypothesisEquality dependent_functionElimination independent_functionElimination decideExceptionCases axiomSqleEquality exceptionSqequal baseApply closedConclusion baseClosed isectElimination independent_isectElimination independent_pairFormation inrFormation imageMemberEquality imageElimination inlFormation callbyvalueApply applyExceptionCases callbyvalueSpread productEquality productElimination spreadExceptionCases

Latex:
\mforall{}[T,S,P:Type].  \mforall{}[R:P  {}\mrightarrow{}  RankEx2(S;T)  {}\mrightarrow{}  \mBbbP{}].
    ((\mforall{}t:T.  (\mexists{}x:\{P|  (R  x  RankEx2\_LeafT(t))\}))
    {}\mRightarrow{}  (\mforall{}s:S.  (\mexists{}x:\{P|  (R  x  RankEx2\_LeafS(s))\}))
    {}\mRightarrow{}  (\mforall{}d:RankEx2(S;T).  \mforall{}s:S.  \mforall{}t:T.    ((\mexists{}x:\{P|  (R  x  d)\})  {}\mRightarrow{}  (\mexists{}x:\{P|  (R  x  RankEx2\_Prod(<<d,  s>,  t>))\}))\000C)
    {}\mRightarrow{}  (\mforall{}z:S  \mtimes{}  RankEx2(S;T)  +  RankEx2(S;T)
                (case  z  of  inl(p)  =>  \mexists{}x:\{P|  (R  x  (snd(p)))\}  |  inr(d)  =>  \mexists{}x:\{P|  (R  x  d)\}
                {}\mRightarrow{}  (\mexists{}x:\{P|  (R  x  RankEx2\_Union(z))\})))
    {}\mRightarrow{}  (\mforall{}L:(S  \mtimes{}  RankEx2(S;T))  List
                ((\mforall{}p\mmember{}L.\mexists{}x:\{P|  (R  x  (snd(p)))\})  {}\mRightarrow{}  (\mexists{}x:\{P|  (R  x  RankEx2\_ListProd(L))\})))
    {}\mRightarrow{}  (\mforall{}z:T  +  (RankEx2(S;T)  List)
                (case  z  of  inl(p)  =>  True  |  inr(L)  =>  (\mforall{}p\mmember{}L.\mexists{}x:\{P|  (R  x  p)\})
                {}\mRightarrow{}  (\mexists{}x:\{P|  (R  x  RankEx2\_UnionList(z))\})))
    {}\mRightarrow{}  \{\mforall{}t:RankEx2(S;T).  (\mexists{}x:\{P|  (R  x  t)\})\})



Date html generated: 2016_05_16-AM-09_03_09
Last ObjectModification: 2016_01_17-AM-09_45_02

Theory : C-semantics


Home Index