I tried three way to implement And with Nand,here is it
CHIP And {
    IN a, b;
    OUT out;
    PARTS:
    Nand(a = a,b= b,out= o1);
        
        //1-ok
        //Nand(a = a,b= b,out= o2);
        //Nand(a = o1,b= o2,out= out);
        
        //2- ok
        Nand(a= o1,b= o1,out= out);
        
        //3-NG
        //Not(in = o1,out = out);
}
I though the second and third should be the same, but actully not(Simulator Fail).
And I don't know why,