Nuprl Lemma : C_LVALUE_ind_wf

∀[A:Type]. ∀[R:A ⟶ C_LVALUE() ⟶ ℙ]. ∀[v:C_LVALUE()]. ∀[Ground:loc:C_LOCATION() ⟶ {x:A| R[x;LV_Ground(loc)]} ].
∀[Index:lval:C_LVALUE() ⟶ idx:ℤ ⟶ {x:A| R[x;lval]}  ⟶ {x:A| R[x;LV_Index(lval;idx)]} ].
∀[Scomp:lval:C_LVALUE() ⟶ comp:Atom ⟶ {x:A| R[x;lval]}  ⟶ {x:A| R[x;LV_Scomp(lval;comp)]} ].
  (C_LVALUE_ind(v;
                LV_Ground(loc)⇒ Ground[loc];
                LV_Index(lval,idx)⇒ rec1.Index[lval;idx;rec1];
                LV_Scomp(lval,comp)⇒ rec2.Scomp[lval;comp;rec2])  ∈ {x:A| R[x;v]} )


Proof




Definitions occuring in Statement :  C_LVALUE_ind: C_LVALUE_ind,  LV_Scomp: LV_Scomp(lval;comp),  LV_Index: LV_Index(lval;idx),  LV_Ground: LV_Ground(loc),  C_LVALUE: C_LVALUE(),  C_LOCATION: C_LOCATION(),  uall: ∀[x:A]. B[x],  prop: ℙ,  so_apply: x[s1;s2;s3],  so_apply: x[s1;s2],  so_apply: x[s],  member: t ∈ T,  set: {x:A| B[x]} ,  function: x:A ⟶ B[x],  int: ℤ,  atom: Atom,  universe: Type
Definitions unfolded in proof :  uall: ∀[x:A]. B[x],  member: t ∈ T,  C_LVALUE_ind: C_LVALUE_ind,  so_apply: x[s1;s2;s3],  so_apply: x[s],  so_apply: x[s1;s2],  C_LVALUE-definition,  C_LVALUE-induction,  uniform-comp-nat-induction,  C_LVALUE-ext,  eq_atom: x =a y,  bool_cases_sqequal,  eqff_to_assert,  any: any x,  btrue: tt,  bfalse: ff,  it: ⋅,  top: Top,  all: ∀x:A. B[x],  implies: P ⇒ Q,  has-value: (a)↓,  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],  uimplies: b supposing a,  strict4: strict4(F),  and: P ∧ Q,  prop: ℙ,  guard: {T},  or: P ∨ Q,  squash: ↓T,  subtype_rel: A ⊆r B
Lemmas referenced :  C_LVALUE-definition,  C_LVALUE-induction,  uniform-comp-nat-induction,  C_LVALUE-ext,  bool_cases_sqequal,  eqff_to_assert,  set_wf,  all_wf,  LV_Scomp_wf,  LV_Index_wf,  LV_Ground_wf,  C_LOCATION_wf,  C_LVALUE_wf,  base_wf,  lifting-strict-atom_eq,  is-exception_wf,  has-value_wf_base,  top_wf
Rules used in proof :  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  isect_memberFormation,  introduction,  cut,  sqequalRule,  isect_memberEquality,  voidElimination,  voidEquality,  thin,  lemma_by_obid,  hypothesis,  lambdaFormation,  because_Cache,  sqequalSqle,  divergentSqle,  callbyvalueDecide,  sqequalHypSubstitution,  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,  instantiate,  extract_by_obid,  applyEquality,  lambdaEquality,  isectEquality,  functionEquality,  cumulativity,  universeEquality,  setEquality,  intEquality,  setElimination,  rename,  atomEquality,  dependent_set_memberEquality,  axiomEquality

Latex:
\mforall{}[A:Type].  \mforall{}[R:A  {}\mrightarrow{}  C\_LVALUE()  {}\mrightarrow{}  \mBbbP{}].  \mforall{}[v:C\_LVALUE()].
\mforall{}[Ground:loc:C\_LOCATION()  {}\mrightarrow{}  \{x:A|  R[x;LV\_Ground(loc)]\}  ].  \mforall{}[Index:lval:C\_LVALUE()
                                                                                                                                    {}\mrightarrow{}  idx:\mBbbZ{}
                                                                                                                                    {}\mrightarrow{}  \{x:A|  R[x;lval]\} 
                                                                                                                                    {}\mrightarrow{}  \{x:A| 
                                                                                                                                            R[x;LV\_Index(lval;idx)]\}  ].
\mforall{}[Scomp:lval:C\_LVALUE()  {}\mrightarrow{}  comp:Atom  {}\mrightarrow{}  \{x:A|  R[x;lval]\}    {}\mrightarrow{}  \{x:A|  R[x;LV\_Scomp(lval;comp)]\}  ].
    (C\_LVALUE\_ind(v;
                                LV\_Ground(loc){}\mRightarrow{}  Ground[loc];
                                LV\_Index(lval,idx){}\mRightarrow{}  rec1.Index[lval;idx;rec1];
                                LV\_Scomp(lval,comp){}\mRightarrow{}  rec2.Scomp[lval;comp;rec2])    \mmember{}  \{x:A|  R[x;v]\}  )



Date html generated: 2016_05_16-AM-08_47_45
Last ObjectModification: 2016_01_17-AM-09_43_58

Theory : C-semantics


Home Index