Remove Lambda Production Rules
| > | #L={a^n b^m:n>m}
P:=table(): P[S]:=[A,S1]: P[S1]:={[a,S1,b],[\lambda]}: P[A]:={[a,A],[a]}: cfg01:=mkCFG({S,S1,A},{a,b},S,op(P)): |
| > | cfg01a:=removeLambdaCFG(cfg01); |
| (10.2.1) |
| > |
| > | P:=table():
P[S]:={[A,B,a,C,A]}: P[A]:={[B,C]}: P[B]:={[b],[\lambda]}: P[C]:={[D],[\lambda]}: P[D]:={[d]}: cfg02:=mkCFG({S,A,B,C,D},{a,b,d},S,op(P)); |
| (10.2.2) |
| > | type(cfg02,CFG); |
| (10.2.3) |
| > | type(cfg02,lambdaFreeCFG); |
| (10.2.4) |
| > | removeLambdaCFG(cfg02); |
| (10.2.5) |
| > | type(%,lambdaFreeCFG); |
| (10.2.6) |
| > | cfg03 := mkCFG({V0, V1, V2, V3, V4},{a1, a2, a3},V0,table([V4 = {[lambda]}, V0 = {[lambda]}, V1 = {[lambda]}, V3 = {[lambda], [V3, V4, a3, V1, a1]}])); |
| (10.2.7) |
| > | removeLambdaCFG(cfg03); |
| (10.2.8) |
| > | cfg:=randomCFG(5,3); |
| (10.2.9) |
| > | removeLambdaCFG(cfg); |
| (10.2.10) |
| > | cfg := mkCFG({V0, V1, V2, V3, V4},{a1, a2, a3},V0,table([V4 = {[lambda]}, V0 = {[lambda]}, V1 = {[lambda], [V2]}, V2 = {[lambda], [V1], [V4, a3, V0, a1, V1]}])); |
| (10.2.11) |
| > | removeLambdaCFG(cfg); |
| (10.2.12) |
| > |