User Tools

Site Tools


normalize

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
normalize [2017/11/14 07:22]
waruna [Normalization Rules]
normalize [2017/11/14 07:50]
waruna [Example]
Line 10: Line 10:
 ====Normalization Rules==== ====Normalization Rules====
 Normalize takes a program and applies a set of normalization rules on it. Some of the basic rules are shown below: Normalize takes a program and applies a set of normalization rules on it. Some of the basic rules are shown below:
-  - <latex> $e.f \Rightarrow e$, if $f(z)=z$</latex> +  - $e.f \Rightarrow e, if $f(z)=z$ 
-  - <latex> $(e_{1} \oplus e_{2}).f \Rightarrow (e_{1}.f) \oplus (e_{2}.f)$ </latex> +  - $(e_{1} \oplus e_{2}).f \Rightarrow (e_{1}.f) \oplus (e_{2}.f)$ 
-  - <latex> $(D:e_{1})\oplus e_{2} \Rightarrow D:(e_{1} \oplus e_{2})$</latex> +  - $(D:e_{1})\oplus e_{2} \Rightarrow D:(e_{1} \oplus e_{2})$ 
-  - <latex> $e_{1}\oplus (D: e_{2}) \Rightarrow D:(e_{2} \oplus e_{2})$</latex> +  - $e_{1}\oplus (D: e_{2}) \Rightarrow D:(e_{1} \oplus e_{2})$ 
-  - <latex> $(e\dot f_{1}). f_{2} \Rightarrow e . f$, where $f = f_{1} o f_{2}$</latex> +  - $(ef_{1}). f_{2} \Rightarrow e . f$, where $f = f_{1} o f_{2}$ 
-  - <latex> $D_{1}:(D_{2}:e) \Rightarrow D:e$, where $D=D_{1} \cap D_{2}$ </latex> +  - $D_{1}:(D_{2}:e) \Rightarrow D:e$, where $D=D_{1} \cap D_{2}$ 
-  - <latex> $(D:e). f \Rightarrow D':e$, where $D' = f^{-1}(D)$</latex>+  - $(D:e). f \Rightarrow D':e$, where $D' = f^{-1}(D)$
 ======== ========
 ====Example==== ====Example====
Line 41: Line 41:
   * In the computation for C, expression A[i] is equivalent to A.(i %%->%% i), f is an identity function, rule number one is satisfied. So A.(i %%->%% i) %%=>%% A.   * In the computation for C, expression A[i] is equivalent to A.(i %%->%% i), f is an identity function, rule number one is satisfied. So A.(i %%->%% i) %%=>%% A.
   * In the computation for C, expression {i| 0 %%<=%% i < N}: ({i|0 %%<=%% i < 2N}:A[i]) matches rule number 6, where D1 = {i| 0 %%<=%% i < N}, D2={i|0 %%<=%% i < 2N}. D=D1 ∩ D1 ={i|0 %%<=%% i < N}, the expression is changed to {i|0 %%<=%% i < N}:A.   * In the computation for C, expression {i| 0 %%<=%% i < N}: ({i|0 %%<=%% i < 2N}:A[i]) matches rule number 6, where D1 = {i| 0 %%<=%% i < N}, D2={i|0 %%<=%% i < 2N}. D=D1 ∩ D1 ={i|0 %%<=%% i < N}, the expression is changed to {i|0 %%<=%% i < N}:A.
-  * In the computation for D, expression (i, j %%->%% j, i)@({|0 %%<=%% i < N\}:A[i]) matches rule number 7, where D = {i,j |0 %%<=%% i < N }, f=(i, j %%->%% j, i). D'=f^(-1)(D)={i,j|0 %%<=%% j < N}, the expression is changed to {i,j|0 %%<=%% j < N}:A[i,j];+  * In the computation for D, expression (i, j %%->%% j, i)@({|0 %%<=%% i < N}:A[i]) matches rule number 7, where D = {i,j |0 %%<=%% i < N }, f=(i, j %%->%% j, i). D'=f^(-1)(D)={i,j|0 %%<=%% j < N}, the expression is changed to {i,j|0 %%<=%% j < N}:A[i,j];
  
 The result for the above program after normalization is: The result for the above program after normalization is:
normalize.txt · Last modified: 2017/11/14 07:50 by waruna