Nuprl Lemma : C_LVALUE-proper-Scomp

env:C_TYPE_env(). ∀lval:C_LVALUE().
  ((↑LV_Scomp?(lval))
   (↑C_LVALUE-proper(env;lval))
   let lval' LV_Scomp-lval(lval) in
      let LV_Scomp-comp(lval) in
      let typ outl(C_TYPE-of-LVALUE(env;lval')) in
      (↑C_LVALUE-proper(env;lval')) ∧ (↑C_Struct?(typ)) ∧ (↑C_field_of(a;typ)))


Proof




Definitions occuring in Statement :  C_LVALUE-proper: C_LVALUE-proper(env;lval) C_TYPE-of-LVALUE: C_TYPE-of-LVALUE(env;lval) C_TYPE_env: C_TYPE_env() C_field_of: C_field_of(a;ctyp) LV_Scomp-comp: LV_Scomp-comp(v) LV_Scomp-lval: LV_Scomp-lval(v) LV_Scomp?: LV_Scomp?(v) C_LVALUE: C_LVALUE() C_Struct?: C_Struct?(v) outl: outl(x) assert: b let: let all: x:A. B[x] implies:  Q and: P ∧ Q
Definitions unfolded in proof :  all: x:A. B[x] uall: [x:A]. B[x] so_lambda: λ2x.t[x] member: t ∈ T let: let implies:  Q prop: and: P ∧ Q uimplies: supposing a C_LVALUE-proper: C_LVALUE-proper(env;lval) so_apply: x[s] LV_Ground: LV_Ground(loc) LV_Scomp?: LV_Scomp?(v) pi1: fst(t) LV_Scomp-lval: LV_Scomp-lval(v) pi2: snd(t) LV_Scomp-comp: LV_Scomp-comp(v) eq_atom: =a y assert: b ifthenelse: if then else fi  bfalse: ff false: False LV_Index: LV_Index(lval;idx) LV_Scomp: LV_Scomp(lval;comp) btrue: tt cand: c∧ B C_TYPE-of-LVALUE: C_TYPE-of-LVALUE(env;lval) C_LVALUE_ind: C_LVALUE_ind or: P ∨ Q sq_type: SQType(T) guard: {T} uiff: uiff(P;Q) isl: isl(x) not: ¬A iff: ⇐⇒ Q C_field_of: C_field_of(a;ctyp) rev_implies:  Q
Lemmas referenced :  C_LVALUE-induction assert_wf LV_Scomp?_wf C_LVALUE-proper_wf LV_Scomp-lval_wf C_Struct?_wf outl_wf C_TYPE_wf unit_wf2 C_TYPE-of-LVALUE_wf C_field_of_wf LV_Scomp-comp_wf C_LVALUE_wf false_wf C_LOCATION_wf bool_cases subtype_base_sq bool_wf bool_subtype_base eqtt_to_assert eqff_to_assert assert_of_bnot assert_elim isl_wf it_wf bfalse_wf btrue_neq_bfalse LV_Scomp_wf true_wf C_TYPE_env_wf isl-apply-alist atom-deq_wf C_Struct-fields_wf assert-deq-member map_wf
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity lambdaFormation cut lemma_by_obid sqequalHypSubstitution isectElimination thin sqequalRule lambdaEquality functionEquality hypothesisEquality hypothesis dependent_functionElimination because_Cache productEquality independent_isectElimination dependent_set_memberEquality independent_functionElimination voidElimination intEquality unionElimination instantiate cumulativity equalityTransitivity equalitySymmetry productElimination addLevel voidEquality inrEquality levelHypothesis independent_pairFormation atomEquality

Latex:
\mforall{}env:C\_TYPE\_env().  \mforall{}lval:C\_LVALUE().
    ((\muparrow{}LV\_Scomp?(lval))
    {}\mRightarrow{}  (\muparrow{}C\_LVALUE-proper(env;lval))
    {}\mRightarrow{}  let  lval'  =  LV\_Scomp-lval(lval)  in
            let  a  =  LV\_Scomp-comp(lval)  in
            let  typ  =  outl(C\_TYPE-of-LVALUE(env;lval'))  in
            (\muparrow{}C\_LVALUE-proper(env;lval'))  \mwedge{}  (\muparrow{}C\_Struct?(typ))  \mwedge{}  (\muparrow{}C\_field\_of(a;typ)))



Date html generated: 2016_05_16-AM-08_48_33
Last ObjectModification: 2015_12_28-PM-06_56_49

Theory : C-semantics


Home Index