Nuprl Lemma : find-combine-cons
∀[cmp,x,l:Top].
  (find-combine(cmp;[x / l]) ~ eval tst = cmp x in
                               if (tst =z 0) then inl x
                               if 0 <z tst then inr ⋅ 
                               else find-combine(cmp;l)
                               fi )
Proof
Definitions occuring in Statement : 
find-combine: find-combine(cmp;l)
, 
cons: [a / b]
, 
callbyvalue: callbyvalue, 
ifthenelse: if b then t else f fi 
, 
lt_int: i <z j
, 
eq_int: (i =z j)
, 
it: ⋅
, 
uall: ∀[x:A]. B[x]
, 
top: Top
, 
apply: f a
, 
inr: inr x 
, 
inl: inl x
, 
natural_number: $n
, 
sqequal: s ~ t
Definitions unfolded in proof : 
uall: ∀[x:A]. B[x]
, 
member: t ∈ T
, 
find-combine: find-combine(cmp;l)
, 
all: ∀x:A. B[x]
, 
so_lambda: so_lambda(x,y,z.t[x; y; z])
, 
top: Top
, 
so_apply: x[s1;s2;s3]
Lemmas referenced : 
list_ind_cons_lemma, 
top_wf
Rules used in proof : 
sqequalSubstitution, 
sqequalTransitivity, 
computationStep, 
sqequalReflexivity, 
isect_memberFormation, 
introduction, 
cut, 
sqequalRule, 
lemma_by_obid, 
sqequalHypSubstitution, 
dependent_functionElimination, 
thin, 
isect_memberEquality, 
voidElimination, 
voidEquality, 
hypothesis, 
sqequalAxiom, 
isectElimination, 
hypothesisEquality, 
because_Cache
Latex:
\mforall{}[cmp,x,l:Top].
    (find-combine(cmp;[x  /  l])  \msim{}  eval  tst  =  cmp  x  in
                                                              if  (tst  =\msubz{}  0)  then  inl  x
                                                              if  0  <z  tst  then  inr  \mcdot{} 
                                                              else  find-combine(cmp;l)
                                                              fi  )
Date html generated:
2016_05_14-PM-02_40_28
Last ObjectModification:
2015_12_26-PM-02_44_24
Theory : list_1
Home
Index