program execution is not as intended

djin_1989:

while (IRreciever, HIGH)

{
       Serial.println ("welcome");
       Serial.println (IRstate);
       while (IRreciever, LOW)
       {
         Serial.println ("welcome");
         Serial.println (IRstate);
       }
       delay (10000);
       open ();
       loop();
       
     }

What pYro said and why are you calling loop() from, presumably, inside loop()? Recursion isn't a good idea, as you'll soon overflow the stack and crash the program. But your code makes no sense because it prints exactly the same whether IRreceiver is HIGH or LOW.

EDIT Your second while() will never run as IRreceiver cannot be both HIGH and LOW at the same time.