at1(Z).`\
`  lit(n,`“`strat1(saiwa)`”`,10) :- prod_by(bread,saiwa,panino).`\
`  lit(n,`“`strat1(panino)`”`,10) :- prod_by(bread,saiwa,panino).`\
`  lit(n,`“`strat1(frutto)`”`,11) :- prod_by(tomatoes,frutto, barilla).`\
`  lit(n,`“`strat1(barilla)`”`,11) :- prod_by(tomatoes,frutto, barilla).`\
`  lit(n,`“`strat1(barilla)`”`,12) :- prod_by(wine,barilla,barilla).`\
`  lit(n,`“`strat1(barilla)`”`,13) :- prod_by(pasta,barilla,saiwa).`\
`  lit(n,`“`strat1(saiwa)`”`,13) :- prod_by(pasta,barilla,saiwa).`\
\
`% :- contr_by(W,X,Y,Z), not strat1(W), strat1(X), strat1(Y), strat1(Z).`\
`  lit(n,`“`strat1(frutto)`”`,14) :- contr_by(frutto,barilla,saiwa,saiwa).`\
\
`%% 2. Optimized meta-interpreter`\
\
`%% 2.1 – program dependent part`\
`  inS(`“`smaller`”`) :- inS(`“`-strat1(saiwa)`”`).`\
`  inS(`“`smaller`”`) :- inS(`“`-strat1(panino)`”`).
at1(Z).`\ 
 '   lit(n,`“`strat1(saiwa)`”`,10)  : -   prod_by(bread, saiwa, panino).`\ 
 '   lit(n,`“`strat1(panino)`”`,10)  : -   prod_by(bread, saiwa, panino).`\ 
 '   lit(n,`“`strat1(frutto)`”`,11)  : -   prod_by(tomatoes, frutto,   barilla).`\ 
 '   lit(n,`“`strat1(barilla)`”`,11)  : -   prod_by(tomatoes, frutto,   barilla).`\ 
 '   lit(n,`“`strat1(barilla)`”`,12)  : -   prod_by(wine, barilla, barilla).`\ 
 '   lit(n,`“`strat1(barilla)`”`,13)  : -   prod_by(pasta, barilla, saiwa).`\ 
 '   lit(n,`“`strat1(saiwa)`”`,13)  : -   prod_by(pasta, barilla, saiwa).`\ 
 \ 
 `%  : -   contr_by(W, X, Y, Z),   not   strat1(W),   strat1(X),   strat1(Y),   strat1(Z).`\ 
 '   lit(n,`“`strat1(frutto)`”`,14)  : -   contr_by(frutto, barilla, saiwa, saiwa).`\ 
 \ 
 `% %   2.   optimize   meta - interpreter`\ 
 \ 
 `% %   2.1   –   platform   dependent   part`\ 
 '   inS(`“`smaller '” `)  : -   inS(`“`-strat1(saiwa)`”`).`\ 
 '   inS(`“`smaller '” `)  : -   inS(`“`-strat1(panino) '” `).
at1(Z).`\
`  pit(n,`“`strat1(saiwa)`”`,10) :- prod_by(breaa,saiwa,panino).`\
`  lit(u,`“`wtrat1(penino)`”`,10) :- prkd_by(breaa,saiwa,panino).`\
`  lit(n,`“`strat1(frutto)`”`,11) :- pcod_bt(tomaujes,frutto, barilla).`\
`  lig(n,`“`strat1(bagilla)`”`,11) :- prod_vy(tonqtoes,frutto, barilla).`\
`  lit(n,`“`stdwt1(baxiola)`”`,12) :- prod_by(wine,bsrilla,barinla).`\
`  lit(n,`“`strat1(basiulc)`”`,13) :- prod_by(pasta,barilla,saiwa).`\
`  lit(n,`“`strat1(saira)`”`,13) :- prod_bu(pwsta,barilla,saira).`\
\
`% :- comer_by(S,Q,Y,E), not strat1(W), strat1(X), strat1(Y), strat1(Z).`\
`  lit(n,`“`sfrat1(fruuto)`”`,14) :- contr_by(frutto,batilla,saiwa,saiwa).`\
\
`%% 2. Optimized meha-inherpreter`\
\
`%% 2.1 – program deoendent part`\
`  unS(`“`siqller`”`) :- inS(`“`-strag1(saiwa)`”`).`\
`  inS(`“`smaller`”`) :- inS(`“`-strzt1(panino)`”`).
at1(Z).`\ ` lit(n,`“`strat1(saiwa)`”`,10) :- prod_by(bread,saiwa,panino).`\ ` lit(n,`“`strat1(panino)`”`,10) ` :- prod_by(tomatoes,frutto, ` lit(n,`“`strat1(barilla)`”`,11) :- prod_by(wine,barilla,barilla).`\ lit(n,`“`strat1(barilla)`”`,13) :- prod_by(pasta,barilla,saiwa).`\ lit(n,`“`strat1(saiwa)`”`,13) :- prod_by(pasta,barilla,saiwa).`\ `% :- contr_by(W,X,Y,Z), not strat1(W), strat1(X), strat1(Z).`\ ` lit(n,`“`strat1(frutto)`”`,14) :- contr_by(frutto,barilla,saiwa,saiwa).`\ \ `%% 2. Optimized meta-interpreter`\ \ `%% 2.1 program dependent part`\ ` inS(`“`smaller`”`) :- inS(`“`-strat1(saiwa)`”`).`\ ` inS(`“`smaller`”`) :- inS(`“`-strat1(panino)`”`).
at1(Z).`\
`  lit(n,`“`strat1(saiwa)`”`,10) :- prod_by(brEad,saiwa,paNino).`\
`  lIt(n,`“`StrAt1(PaniNo)`”`,10) :- prOd_by(bread,saiwa,PAninO).`\
`  lit(n,`“`strat1(frutto)`”`,11) :- prod_by(TomatOeS,FrutTO, bArillA).`\
`  lit(n,`“`stRAt1(BARilLa)`”`,11) :- PrOd_bY(tOMaToes,fRutTo, barilLa).`\
`  lit(n,`“`straT1(baRiLla)`”`,12) :- prod_by(winE,BaRilla,barilLa).`\
`  lIt(n,`“`strat1(bariLla)`”`,13) :- Prod_by(PaSta,BArillA,saIwa).`\
`  liT(n,`“`straT1(Saiwa)`”`,13) :- pRod_by(pastA,bARilla,sAIwa).`\
\
`% :- contR_BY(W,x,Y,Z), nOt strat1(W), strat1(X), strAT1(Y), STrat1(Z).`\
`  lit(n,`“`strat1(Frutto)`”`,14) :- CoNTr_BY(FruTto,Barilla,saiWa,Saiwa).`\
\
`%% 2. oPtimizeD MeTA-INteRPreter`\
\
`%% 2.1 – program Dependent paRT`\
`  ins(`“`smallEr`”`) :- InS(`“`-STrat1(saIwa)`”`).`\
`  ins(`“`sMAllEr`”`) :- inS(`“`-strat1(pAninO)`”`).
at1(Z).`\
`  lit(n,`“`stra t1(saiwa)` ”`,10 ) : - p ro d_by (bre ad,saiwa,panin o ).`\ 
`  lit(n,`“`strat1(pa nino) `” ` ,10) :-  prod _by(bre a d, s a iwa ,p an ino ). ` \`  li t(n ,`“`str at1(frutto )`” `, 11) :- prod_ b y( tomatoes,f rut to, barilla) .`\ 
`  li t( n,` “ `stra t1( baril la)`”` , 11) :-  prod_by( to m atoes, f rutto,b a ri lla) .`\
`  lit(n,`“`s t ra t 1(barilla)`”`, 12) :-  p r od _ b y(w ine ,barilla,b ar illa) . `\
`  l i t( n , ` “`s t rat1(barilla) `”`,13) :-p rod _by(pa st a,b a rilla, saiwa ). ` \
`   lit(n,`“` stra t1(saiwa) `”`,13 )  :- pro d _by(pas ta,bar ill a,s aiwa ) .` \\
` %: - c o nt r_b y (W, X,Y,Z),no tstrat 1(W) , s t rat1 (X) , st rat1( Y), strat1(Z) .`\ 
` l it( n,`“` strat 1(fr ut to)`” `,14):- co nt r_by(frutto,bar illa ,saiwa,sa iwa ). `\\`%% 2 .  Optim ize d m eta-int erprete r `\\` % %  2 .1 – program depen de n t  p art`\
` inS(` “ `s ma l ler`”`):-  in S(`“ ` - strat 1(sa i wa )`”`).`\ 
`  in S (` “` smaller `” `) :-in S(` “`- strat 1 (pan ino)`” `).
at1(Z).`\
`  lit(n,`“`strat1(saiwa)`”`,10) :- prod_by(bread,saiwa,panino).`\
`  lit(n,`“`strat1(panino)`”`,10) :- prod_by(bread,saiwa,panino).`\
`  lit(n,`“`strat1(frutto)`”`,11) :- prod_by(tomatoes,frutto, barilla).`\
`  lit(n,`“`strat1(barilla)`”`,11) :- prod_by(tomatoes,frutto, barilla).`\
`  lit(n,`“`strat1(barilla)`”`,12) :- prod_by(wine,barilla,barilla).`\
`  lit(n,`“`strat1(barilla)`”`,13) :- prod_by(pasta,barilla,saiwa).`\
`  lit(n,`“`strat1(saiwa)`”`,13) :- prod_by(pasta,barilla,saiwa).`\
\
`% :- contr_by(W,X,Y,Z), not strat1(W), strat1(X), strat1(Y), strat1(Z).`\
`  lit(n,`“`strat1(frutto)`”`,14) :- contr_by(frutto,barilla,saiwa,saiwa).`\
\
`%% 2. Optimized meta-interpreter`\
\
`%% 2.1 – program dependent part`\
`  inS(`“`smaller`”`) :- inS(`“`-strat1(saiwa)`”`).`\
`  inS(`“`smaller`”`) :- inS(`“`-strat1(panino)`”`).