Nuprl Definition : remove-nat-missing

remove-nat-missing(i;s) ==
  let max,missing 
  in if (i =z max)
       then if null(missing)
            then <max 1, []>
            else eval last(missing) in
                 if (x =z max 1) then eval select-last-in-nat-missing(x;missing) in <n, filter(λx.x <n;missing)>\000C else <max 1, missing> fi 
            fi 
     if max <then <max, missing>
     else <max, insert-combine(int-minus-comparison-inc(λx.x);λi,a. i;i;missing)>
     fi 



Definitions occuring in Statement :  select-last-in-nat-missing: select-last-in-nat-missing(max;missing) insert-combine: insert-combine(cmp;f;x;l) int-minus-comparison-inc: int-minus-comparison-inc(f) last: last(L) filter: filter(P;l) null: null(as) nil: [] callbyvalue: callbyvalue ifthenelse: if then else fi  lt_int: i <j eq_int: (i =z j) lambda: λx.A[x] spread: spread def pair: <a, b> subtract: m natural_number: $n
FDL editor aliases :  remove-nat-missing
remove-nat-missing(i;s)  ==
    let  max,missing  =  s 
    in  if  (i  =\msubz{}  max)
              then  if  null(missing)
                        then  <max  -  1,  []>
                        else  eval  x  =  last(missing)  in
                                  if  (x  =\msubz{}  max  -  1)
                                  then  eval  n  =  select-last-in-nat-missing(x;missing)  in
                                            <n,  filter(\mlambda{}x.x  <z  n;missing)>
                                  else  <max  -  1,  missing>
                                  fi 
                        fi 
          if  max  <z  i  then  <max,  missing>
          else  <max,  insert-combine(int-minus-comparison-inc(\mlambda{}x.x);\mlambda{}i,a.  i;i;missing)>
          fi 



Date html generated: 2015_07_17-AM-08_21_44
Last ObjectModification: 2013_04_02-PM-04_10_11

Home Index