

#include "BUILTIN.h"

#include "Bitset.h"

#include "Nat.h"
extern OBJ _ABitsetReduce_2(OBJ,OBJ,OBJ);OBJ __ABitsetReduce_2; /* / */

extern OBJ _ABitsetReduce_2(OBJ x1,OBJ x2,OBJ x3) /* / */
{OBJ r;
 CPPRD(x3,1);
 {OBJ x4;
  ABitset_20(x3,x4);
  if(ISTGPRM(x4,1)){
   FRCLS(x1,1);
   FRPRD(x3,1);
   r=x2;
  }else{
   CPCLS(x1,1);
   CPPRD(x3,1);
   {OBJ x5;OBJ x6;OBJ x7;
    ABitset_19(x3,x5);
    ABitset_13(x5,x3,x6);
    x7=_ABitsetReduce_2(x1,x2,x6);
    r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x5,x7);}}}
 return r;}

init_ABitsetReduce()
{
 static int visited=0; if(visited) return; visited=1;
 init_ABitset();
 init_ANat();
 init_AOption();
 CLS(3,_ABitsetReduce_2,__ABitsetReduce_2);}

