rw Val n c Op Val n rewrite c rewrite Op x y rw x y rw Op x y c rw[Let] Op x y c rewrite x rewrite Val n Val n second Op x y y isOp Val n False isOp Op x y True first Val n Val n first Op x y x assrewrite exp rewrite exp rw[Let] Op x y c a1 rw[Let][Let] Op x y c a1 rewrite y rw[Let][Let] ab c a1 b1 rw[Let][Let][Let] c a1 b1 rewrite c rw[Let][Let][Let] c a1 b1 c1 rw a1 Op b1 c1 Op 2 True 0 rw[Let][Let] 4 isOp 1 rewrite 1 first 1 rw 2 second 1 assrewrite 1 rw[Let] 3 rw[Let][Let][Let] 4 Val 1 False 0 INNERMOST Frederiksen_Others/assrewriteSize-MA.tml.trs