Nuprl Lemma : RankEx2-defop-extract

∀[T,S,P:Type]. ∀[R:P ⟶ RankEx2(S;T) ⟶ ℙ].
  ((∀t:T. (∃x:{P| (R x RankEx2_LeafT(t))}))
  ⇒ (∀s:S. (∃x:{P| (R x RankEx2_LeafS(s))}))
  ⇒ (∀d:RankEx2(S;T). ∀s:S. ∀t:T.  ((∃x:{P| (R x d)}) ⇒ (∃x:{P| (R x RankEx2_Prod(<<d, s>, t>))})))
  ⇒ (∀z:S × RankEx2(S;T) + RankEx2(S;T)
        (case z of inl(p) => ∃x:{P| (R x (snd(p)))} | inr(d) => ∃x:{P| (R x d)} ⇒ (∃x:{P| (R x RankEx2_Union(z))})))
  ⇒ (∀L:(S × RankEx2(S;T)) List. ((∀p∈L.∃x:{P| (R x (snd(p)))}) ⇒ (∃x:{P| (R x RankEx2_ListProd(L))})))
  ⇒ (∀z:T + (RankEx2(S;T) List)
        (case z of inl(p) => True | inr(L) => (∀p∈L.∃x:{P| (R x p)}) ⇒ (∃x:{P| (R x RankEx2_UnionList(z))})))
  ⇒ {∀t:RankEx2(S;T). (∃x:{P| (R x 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: T List,  uall: ∀[x:A]. B[x],  prop: ℙ,  guard: {T},  pi2: snd(t),  all: ∀x:A. B[x],  sq_exists: ∃x:{A| B[x]},  implies: P ⇒ Q,  true: True,  apply: f a,  function: x:A ⟶ B[x],  pair: <a, b>,  product: x:A × B[x],  decide: case b 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: x =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: P ⇒ 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: b supposing a,  strict4: strict4(F),  and: P ∧ Q,  prop: ℙ,  guard: {T},  or: P ∨ Q,  squash: ↓T,  so_lambda: λ2x y.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