Nuprl Definition : alpha-aux

alpha-aux(opr;vs;ws;a;b) ==
  case a
   of inl(v) =>
   case 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 
    in let opb,bbts 
       in if abts is pair then if bbts is 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 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 is pair then otherwise b and: P ∧ Q false: False spread: spread def decide: case of inl(x) => s[x] inr(y) => t[y] int: equal: t ∈ T
Definitions occuring in definition :  assert: b same-binding: same-binding(vs;ws;v;w) decide: case 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 is pair then otherwise b false: False equal: 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