Nuprl Lemma : remove-combine-cons
∀[T:Type]. ∀[cmp:T ⟶ ℤ]. ∀[x:T]. ∀[l:T List].
  (remove-combine(cmp;[x / l]) ~ if (cmp x =z 0) then l
  if 0 <z cmp x then [x / l]
  else [x / remove-combine(cmp;l)]
  fi )
Proof
Definitions occuring in Statement : 
remove-combine: remove-combine(cmp;l), 
cons: [a / b], 
list: T List, 
ifthenelse: if b then t else f fi , 
lt_int: i <z j, 
eq_int: (i =z j), 
uall: ∀[x:A]. B[x], 
apply: f a, 
function: x:A ⟶ B[x], 
natural_number: $n, 
int: ℤ, 
universe: Type, 
sqequal: s ~ t
Definitions unfolded in proof : 
uall: ∀[x:A]. B[x], 
member: t ∈ T, 
remove-combine: remove-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], 
has-value: (a)↓, 
uimplies: b supposing a
Lemmas referenced : 
list_ind_cons_lemma, 
value-type-has-value, 
int-value-type, 
list_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, 
callbyvalueReduce, 
isectElimination, 
intEquality, 
independent_isectElimination, 
applyEquality, 
hypothesisEquality, 
sqequalAxiom, 
because_Cache, 
functionEquality, 
universeEquality
Latex:
\mforall{}[T:Type].  \mforall{}[cmp:T  {}\mrightarrow{}  \mBbbZ{}].  \mforall{}[x:T].  \mforall{}[l:T  List].
    (remove-combine(cmp;[x  /  l])  \msim{}  if  (cmp  x  =\msubz{}  0)  then  l
    if  0  <z  cmp  x  then  [x  /  l]
    else  [x  /  remove-combine(cmp;l)]
    fi  )
Date html generated:
2016_05_14-PM-02_42_23
Last ObjectModification:
2015_12_26-PM-02_42_34
Theory : list_1
Home
Index