Good ole Golden Dawn to spell out everything, including how to do Alchemy properly in the Z2 formula. However it is difficult to read. So as an exercise I translated it into programming psuedo-code. Latter I regrouped the steps and paraphrased it again for more clarity. See its sister page here: Alchemy Paraphrased.
/******Golden Dawn Z2 Final Heh (Alchemy)*****/ /*A*/ Egg = Crucible OR Alembic; /*B*/ Alch = Alchemist = Tiro; /*C*/ Process = Spagyric //following Calc(), Disolv(), Sep(), Conj(), Ferm(), Distil(), Cohab() /*D*/ Matter = Herbs AND Alcohol; GenForce = YESOD; /*E*/ getCrapRdy(); /*F*/ invoke(HGA, Alch); Egg.put(Matter); invoke(BlindForce, Matter); //awaken Matter, BlindForce == ??? /*G*/ evoke(???, ???); distil(Egg); //EvokeCnt==1; DistilCnt==1; don't know what to evoke /*H*/ DeadHead = Egg.decant(); Calc(DeadHead); Egg.put(DeadHead); /*I*/ Altar.set(Neophyte); Altar.set(GenForce.tablet(), TRIANGLE); Alch.announce("all prepared"); Alch.stand(EAST); Alch.hold(LotusW, ARIES) /*J*/ Alch.invoke(GenForce, Egg); Alch.evelate(Egg); Alch.say(GROVEL_GOD); /*K*/ WHILE (Egg.color() <> BLACK) Ferm(Egg); IF (LongTime) evoke(elemental); IF element.color() <> BLACK quit_all(); END IF END WHILE Alch.stand(NORTH); Altar.set(Egg, NORTH); invoke(SATURN, Egg); /*L*/ define proc() { Distil(Egg); DeadHead = Egg.decant(); Calc(DeadHead); Egg.put(DeadHead); //use gentle heat, should this count as Ferm() ? Disolv(Egg); } proc(); //call the process //DistilCnt() == 2 /*M*/ Altar.set(Neophyte); Altar.set(Egg, WEST); Alch.hold(LotusW, EARTH); invoke(LUNA_DEC AND DRAG_TAIL, Egg); IF (NOT date.nineDaysBeforeFull()) waitOneDay(); FOR night 1 TO 9 COUNT 1 Egg.expose(MOON_LIGHT); /*N*/ proc(); DistilCnt() == 3 /*M*/ Altar.set(Neophyte); Altar.set(Egg, EAST); Alch.hold(LotusW, SPIRIT); invoke(MOON_INC AND DRAG_HEAD, Egg); IF (NOT date.nineDaysBeforeFull()) //yes I'm aware its to the Full Moon again waitOneDay(); FOR night 1 TO 9 COUNT 1 Egg.expose(MOON_LIGHT); /*P*/ Altar.set(Neophyte); Altar.set(Egg, Triangle); Alch.hold(LotusW, LEO); invoke(SUN); WHILE(Sun.in(SCORPIO) OR Sun.in(LIBRA) OR Sun.in(CAPRICORN) OR Sun.in(AQUARIUS)) waitOneDay(); FOR hours 1 TO 12 COUNT 1 Egg.expose(SUN_LIGHT); //it says 12 hours each day, but not how many days ??? /*Q*/ Altar.set(Neophyte); Altar.set(Egg, TRIANGLE); Alch.hold(Lotus, SPIRIT); Alch.say(quitNight_seekDay); Alch.invoke(LUX, Egg); //not sure if you are supposed to say KHABS AM PEHKT etc. while doing this Alch.check(Egg, Flashing); evoke(elemental); attempCnt = 0; IF elemental.color() <> GenForce.color() AND attemptCnt < 3) Altar.set(Sun.tablet(), SOUTH); Altar.set(Moon.tablet(), WEST); FOR days 1 TO 7 COUNT 1 Egg.expose(Altar); attemptCnt = attemptCnt + 1; END IF IF attemptCnt >= 3 quit_all(); /*R*/ // still in the temple from Q Alch.draw(FLAME_SWRD, Egg); Altar.set(Egg, EAST); Alch.stand(PILLARS); invoke(MARS, Egg); Altar.set(Mars.tablet(), PILLARS); Altar.set(Egg, PILLARS); FOR days 1 TO 7 COUNT 1 Egg.expose(Altar); Distil(Egg); // in Mariae then Arenae /*S*/ //assuming the temple is setup etc. DeadHead = Egg.decant(); //don't throw the Dead Head away Fluid = Egg; //the liquid leftover invoke(MERCURY, Fluid); Alch.check(Fluid, Brillant); FOR days 1 TO 7 COUNT 1 IF Alch.check(Fluid, Flashing); BREAK; Fluid.expose(Sun_Light); END FOR /*T*/ //assuming the temple is setup etc. Calc(DeadHead); invoke(JUPITER, DeadHead); set(DeadHead, Jupiter.tablet()); attempCnt = 0; FOR days 1 TO 7 COUNT 1 DeadHead.expose(Darkness); attempCnt = 1; IF NOT Alch.check(DeadHead, FlashLittle) FOR days 1 TO 7 COUNT 1 DeadHead.expose(Darkness); attempCnt = attempCnt + 1; END IF IF attempCnt >=3 quit_all(); /*U*/ Altar.set(NEOPHYTE); Altar.set(4Kerub.tablet(), 4Corners); Altar.set(Fluid, NORTH); Altar.set(DeadHead, SOUTH); sirp(FIRE, Egg); //in the crucible, alembic, bottle, etc. sirp(WATER, Fluid); // sirp(SPIRT, Egg AND Fluid); sirp(AIR, air); //the stuff that helps percholate sirp(EARTH, DeadHead); FOR days 1 TO 5 COUNT 1 exposeAll.(Altar); IF NOT Alch.check(Fluid AND DeadHead, FlashColorLight) quit_all(); /*V*/ Altar.remove(4Kerub.tablet()); Altar.set(Kether.tablet(EmpressScale), TRIANGLE); Alch.say(GROVEL_GOD); invoke(Kether, Fluid AND DeadHead); Alch.draw(FLAM_SWRD, Fluid AND DeadHead); IF NOT Alch.check(Fluid, DiamondSparkle) OR NOT Alch.check(DeadHead, GemGleam) quit_all(); /*W*/ Egg = Conj(Fluid, DeadHead); //should look cloudy, not sure if Cohab instead ??? FOR days 1 TO 10 COUNT 1 Egg.expose(SunLight); //moving from Tiph to Ktr Altar.set(Venus.tablet(), TRIANGLE); Altar.set(Egg, TRIANGLE); invoke(VENUS, Egg); FOR days 1 TO 7 COUNT 1 Egg.expose(Altar); Alch.check(Egg, SoftColor); //use elemetnal if needed FOR days 1 TO 7 COUNT 1 Ferm(Egg); temperature = LOW; WHILE NOT Egg.noExcess() Distil(Egg); temperature = temperature + 1; END WHILE put(Egg, Anathor) FOR days 1 TO 7 COUNT 1 Egg.cook(); END WHILE suceded_op();