Nuprl Definition : find_transitions
find_transitions(f;L) ==
  let h,hs = L 
  in eval b = f h hd(hs) in
     snd(snd(list_accum'(λd,l. let i,b,p,q = d 
                               in if isr(p) ∧b isr(q)
                                  then d
                                  else let a,as = l 
                                       in eval i' = i + 1 in
                                          if null(as)
                                          then eval b' = f a h in
                                               if b ∧b (¬bb')
                                                 then eval q' = if isl(q) then inr 0  else q fi  in
                                                      <i', b', inr i , q'>
                                               if b' ∧b (¬bb)
                                                 then eval p' = if isl(p) then inr 0  else p fi  in
                                                      <i', b', p', inr i >
                                               if isr(p) then <i', b', p, inr 0 >
                                               if isr(q) then <i', b', inr 0 , q>
                                               else <i', b', p, q>
                                               fi 
                                          else eval b' = f a hd(as) in
                                               if b ∧b (¬bb') then <i', b', inr i , q>
                                               if b' ∧b (¬bb) then <i', b', p, inr i >
                                               else <i', b', p, q>
                                               fi 
                                          fi 
                                  fi   <1, b, inl ⋅, inl ⋅>tl(L))))
Definitions occuring in Statement : 
list_accum': list_accum'(f;v;L)
, 
hd: hd(l)
, 
null: null(as)
, 
tl: tl(l)
, 
band: p ∧b q
, 
callbyvalue: callbyvalue, 
bnot: ¬bb
, 
ifthenelse: if b then t else f fi 
, 
isr: isr(x)
, 
isl: isl(x)
, 
it: ⋅
, 
spreadn: spread4, 
pi2: snd(t)
, 
apply: f a
, 
lambda: λx.A[x]
, 
spread: spread def, 
pair: <a, b>
, 
inr: inr x 
, 
inl: inl x
, 
add: n + m
, 
natural_number: $n
Definitions occuring in definition : 
tl: tl(l)
, 
it: ⋅
, 
inl: inl x
, 
pair: <a, b>
, 
natural_number: $n
, 
inr: inr x 
, 
bnot: ¬bb
, 
band: p ∧b q
, 
ifthenelse: if b then t else f fi 
, 
hd: hd(l)
, 
apply: f a
, 
callbyvalue: callbyvalue, 
isr: isr(x)
, 
isl: isl(x)
, 
null: null(as)
, 
add: n + m
, 
spread: spread def, 
spreadn: spread4, 
lambda: λx.A[x]
, 
list_accum': list_accum'(f;v;L)
, 
pi2: snd(t)
FDL editor aliases : 
find_transitions
Latex:
find\_transitions(f;L)  ==
    let  h,hs  =  L 
    in  eval  b  =  f  h  hd(hs)  in
          snd(snd(list\_accum'(\mlambda{}d,l.  let  i,b,p,q  =  d 
                                                              in  if  isr(p)  \mwedge{}\msubb{}  isr(q)
                                                                    then  d
                                                                    else  let  a,as  =  l 
                                                                              in  eval  i'  =  i  +  1  in
                                                                                    if  null(as)
                                                                                    then  eval  b'  =  f  a  h  in
                                                                                              if  b  \mwedge{}\msubb{}  (\mneg{}\msubb{}b')
                                                                                                  then  eval  q'  =  if  isl(q)  then  inr  0    else  q  fi    in
                                                                                                            <i',  b',  inr  i  ,  q'>
                                                                                              if  b'  \mwedge{}\msubb{}  (\mneg{}\msubb{}b)
                                                                                                  then  eval  p'  =  if  isl(p)  then  inr  0    else  p  fi    in
                                                                                                            <i',  b',  p',  inr  i  >
                                                                                              if  isr(p)  then  <i',  b',  p,  inr  0  >
                                                                                              if  isr(q)  then  <i',  b',  inr  0  ,  q>
                                                                                              else  <i',  b',  p,  q>
                                                                                              fi 
                                                                                    else  eval  b'  =  f  a  hd(as)  in
                                                                                              if  b  \mwedge{}\msubb{}  (\mneg{}\msubb{}b')  then  <i',  b',  inr  i  ,  q>
                                                                                              if  b'  \mwedge{}\msubb{}  (\mneg{}\msubb{}b)  then  <i',  b',  p,  inr  i  >
                                                                                              else  <i',  b',  p,  q>
                                                                                              fi 
                                                                                    fi 
                                                                    fi      ;ə,  b,  inl  \mcdot{},  inl  \mcdot{}>tl(L))))
Date html generated:
2017_04_14-AM-08_48_37
Last ObjectModification:
2017_04_10-PM-11_25_16
Theory : list_0
Home
Index