Nuprl Definition : alpha-aux

alpha-aux(opr;vs;ws;a;b) ==
  case a
   of inl(v) =>
   case b of inl(w) => ↑same-binding(vs;ws;v;w) | inr(p) => False
   | inr(p) =>
   case b
    of inl(w) =>
    False
    | inr(q) =>
    let opa,abts = p 
    in let opb,bbts = q 
       in if abts is a pair then if bbts is a pair then let bta,morea = abts 
                                                        in let btb,moreb = bbts 
                                                           in let as,x = bta 
                                                              in let bs,y = btb 
                                                                 in (||as|| = ||bs|| ∈ ℤ)
                                                                    ∧ alpha-aux(opr;rev(as) + vs;rev(bs) + ws;x;y)
                                                              ∧ alpha-aux(opr;vs;ws;mkterm(opa;morea);mkterm(opb;moreb))
                                 otherwise False otherwise if bbts is a pair then False otherwise opa = opb ∈ opr



Definitions occuring in Statement :  mkterm: mkterm(opr;bts),  same-binding: same-binding(vs;ws;v;w),  length: ||as||,  rev-append: rev(as) + bs,  assert: ↑b,  ispair: if z is a pair then a otherwise b,  and: P ∧ Q,  false: False,  spread: spread def,  decide: case b of inl(x) => s[x] | inr(y) => t[y],  int: ℤ,  equal: s = t ∈ T
Definitions occuring in definition :  assert: ↑b,  same-binding: same-binding(vs;ws;v;w),  decide: case b of inl(x) => s[x] | inr(y) => t[y],  spread: spread def,  and: P ∧ Q,  int: ℤ,  length: ||as||,  rev-append: rev(as) + bs,  mkterm: mkterm(opr;bts),  ispair: if z is a pair then a otherwise b,  false: False,  equal: s = t ∈ T
FDL editor aliases :  alpha-aux

Latex:
alpha-aux(opr;vs;ws;a;b)  ==
    case  a
      of  inl(v)  =>
      case  b  of  inl(w)  =>  \muparrow{}same-binding(vs;ws;v;w)  |  inr(p)  =>  False
      |  inr(p)  =>
      case  b
        of  inl(w)  =>
        False
        |  inr(q)  =>
        let  opa,abts  =  p 
        in  let  opb,bbts  =  q 
              in  if  abts  is  a  pair
                    then  if  bbts  is  a  pair
                              then  let  bta,morea  =  abts 
                                        in  let  btb,moreb  =  bbts 
                                              in  let  as,x  =  bta 
                                                    in  let  bs,y  =  btb 
                                                          in  (||as||  =  ||bs||)  \mwedge{}  alpha-aux(opr;rev(as)  +  vs;rev(bs)  +  ws;x;y)
                                                    \mwedge{}  alpha-aux(opr;vs;ws;mkterm(opa;morea);mkterm(opb;moreb))  otherwise  False
                    otherwise  if  bbts  is  a  pair  then  False  otherwise  opa  =  opb



Date html generated: 2020_05_19-PM-09_55_20
Last ObjectModification: 2020_03_09-PM-04_08_52

Theory : terms


Home Index