--- Abstract Syntax Tree ------------------------ printSExp(x) = printCar{2}(x{3},MSTokEOS{4}) printCar(Symbol(x),t) = Str{11}(x{12},t{13}) printCar(SNil,t) = LPar{16}(RPar{17}(t{18})) printCar(SCons(x,y),t) = LPar{23}(printCar{24}(x{25},printCdr{26}(y{27},t{28}))) printCdr(Symbol(x),t) = Dot{35}(Str{36}(x{37},RPar{38}(t{39}))) printCdr(SNil,t) = RPar{42}(t{43}) printCdr(SCons(x,y),t) = printCar{48}(x{49},printCdr{50}(y{51},t{52})) --- Tree Automata ------------------------------- E35 <-- Dot(E36) { \v1{t,x} -> v1{t,x} } E23 <-- LPar(E24) { \v1{t,x,y} -> v1{t,x,y} } E16 <-- LPar(E17) { \v1{t} -> v1{t} } E4 <-- MSTokEOS { {} } E42 <-- RPar(E43) { \v1{t} -> v1{t} } E38 <-- RPar(E39) { \v1{t} -> v1{t} } E17 <-- RPar(E18) { \v1{t} -> v1{t} } E36 <-- Str(E37, E38) { \v1{x} v2{t} -> v1{x}*v2{t} } E11 <-- Str(E12, E13) { \v1{x} v2{t} -> v1{x}*v2{t} } E52 <-- __ { {t:__} } E51 <-- __ { {y:__} } E49 <-- __ { {x:__} } E43 <-- __ { {t:__} } E39 <-- __ { {t:__} } E37 <-- __ { {x:__} } E28 <-- __ { {t:__} } E27 <-- __ { {y:__} } E25 <-- __ { {x:__} } E18 <-- __ { {t:__} } E13 <-- __ { {t:__} } E12 <-- __ { {x:__} } E3 <-- __ { {x:__} } E50 <-- FprintCdr { \x{_1,_2} -> let {v1{y} = x{_1,_2}._1; v2{t} = x{_1,_2}._2} in v1{y}*v2{t} } E48 <-- FprintCar { \x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E50(x{_1,_2}._2)} in v1{x}*v2{t,y} } FprintCdr <-- E48 { \v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t} } FprintCdr <-- E42 { \v{t} -> {_1:SNil, _2:v{t}.t} } FprintCdr <-- E35 { \v{t,x} -> {_1:Symbol(v{t,x}.x), _2:v{t,x}.t} } E26 <-- FprintCdr { \x{_1,_2} -> let {v1{y} = x{_1,_2}._1; v2{t} = x{_1,_2}._2} in v1{y}*v2{t} } E24 <-- FprintCar { \x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E26(x{_1,_2}._2)} in v1{x}*v2{t,y} } FprintCar <-- E23 { \v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t} } FprintCar <-- E16 { \v{t} -> {_1:SNil, _2:v{t}.t} } FprintCar <-- E11 { \v{t,x} -> {_1:Symbol(v{t,x}.x), _2:v{t,x}.t} } E2 <-- FprintCar { \x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{} = @E4(x{_1,_2}._2)} in v1{x}*v2{} } FprintSExp <-- E2 { \v{x} -> {_1:v{x}.x} } --- Guided Tree Automata ------------------------ {FprintSExp: INITIAL GUIDE: 0 GUIDE FUNCTION: 0 --> LPar(3) 0 --> Str(2,1) 1 --> __() 2 --> __() 3 --> LPar(3) 3 --> RPar(4) 3 --> Str(2,1) 4 --> __() GUIDED TRANSITIONS: 0: 1 <-- LPar(11) { \x1_1-> (((\v1{t} -> v1{t}) >>> ((\v{t} -> {_1:SNil, _2:v{t}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{} = @E4(x{_1,_2}._2)} in v1{x}*v2{})) >>> (\v{x} -> {_1:v{x}.x})) $ x1_1) } 1 <-- LPar(13) { \x1_1-> (((\v1{t,x,y} -> v1{t,x,y}) >>> ((\v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{} = @E4(x{_1,_2}._2)} in v1{x}*v2{})) >>> (\v{x} -> {_1:v{x}.x})) $ x1_1) } 1 <-- Str(9, 10) { \x1_1 x2_1-> ((\v1{x} v2{t} -> v1{x}*v2{t} >2> (\v{t,x} -> {_1:Symbol(v{t,x}.x), _2:v{t,x}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{} = @E4(x{_1,_2}._2)} in v1{x}*v2{}) >>> (\v{x} -> {_1:v{x}.x})) $ x1_1 x2_1) } 8 <-- __ { _|_ } 1: 10 <-- __ { ({t:__}) } 2: 9 <-- __ { ({x:__}) } 3: 13 <-- LPar(11) { \x1_1-> (((\v1{t} -> v1{t}) >>> (\v{t} -> {_1:SNil, _2:v{t}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E26(x{_1,_2}._2)} in v1{x}*v2{t,y})) $ x1_1) } 13 <-- LPar(13) { \x1_1-> (((\v1{t,x,y} -> v1{t,x,y}) >>> (\v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E26(x{_1,_2}._2)} in v1{x}*v2{t,y})) $ x1_1) } 11 <-- RPar(14) { \x1_1-> ((\v1{t} -> v1{t}) $ x1_1) } 13 <-- Str(9, 10) { \x1_1 x2_1-> ((\v1{x} v2{t} -> v1{x}*v2{t} >2> (\v{t,x} -> {_1:Symbol(v{t,x}.x), _2:v{t,x}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E26(x{_1,_2}._2)} in v1{x}*v2{t,y})) $ x1_1 x2_1) } 8 <-- __ { _|_ } 4: 14 <-- __ { ({t:__}) } E3: INITIAL GUIDE: 0 GUIDE FUNCTION: 0 --> __() GUIDED TRANSITIONS: 0: 0 <-- __ { ({x:__}) } E4: INITIAL GUIDE: 0 GUIDE FUNCTION: 0 --> MSTokEOS() GUIDED TRANSITIONS: 0: 1 <-- MSTokEOS { ({}) } 0 <-- __ { _|_ } E25: INITIAL GUIDE: 0 GUIDE FUNCTION: 0 --> __() GUIDED TRANSITIONS: 0: 0 <-- __ { ({x:__}) } E26: INITIAL GUIDE: 0 GUIDE FUNCTION: 0 --> Dot(6) 0 --> LPar(4) 0 --> RPar(3) 0 --> Str(2,1) 1 --> __() 2 --> __() 3 --> __() 4 --> LPar(4) 4 --> RPar(5) 4 --> Str(2,1) 5 --> __() 6 --> Str(9,7) 7 --> RPar(8) 8 --> __() 9 --> __() GUIDED TRANSITIONS: 0: 5 <-- Dot(19) { \x1_1-> (((\v1{t,x} -> v1{t,x}) >>> (\v{t,x} -> {_1:Symbol(v{t,x}.x), _2:v{t,x}.t}) >>> (\x{_1,_2} -> let {v1{y} = x{_1,_2}._1; v2{t} = x{_1,_2}._2} in v1{y}*v2{t})) $ x1_1) } 5 <-- LPar(14) { \x1_1-> (((\v1{t} -> v1{t}) >>> ((\v{t} -> {_1:SNil, _2:v{t}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E50(x{_1,_2}._2)} in v1{x}*v2{t,y})) >>> (\v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t}) >>> (\x{_1,_2} -> let {v1{y} = x{_1,_2}._1; v2{t} = x{_1,_2}._2} in v1{y}*v2{t})) $ x1_1) } 5 <-- LPar(16) { \x1_1-> (((\v1{t,x,y} -> v1{t,x,y}) >>> ((\v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E50(x{_1,_2}._2)} in v1{x}*v2{t,y})) >>> (\v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t}) >>> (\x{_1,_2} -> let {v1{y} = x{_1,_2}._1; v2{t} = x{_1,_2}._2} in v1{y}*v2{t})) $ x1_1) } 5 <-- RPar(10) { \x1_1-> (((\v1{t} -> v1{t}) >>> (\v{t} -> {_1:SNil, _2:v{t}.t}) >>> (\x{_1,_2} -> let {v1{y} = x{_1,_2}._1; v2{t} = x{_1,_2}._2} in v1{y}*v2{t})) $ x1_1) } 5 <-- Str(12, 13) { \x1_1 x2_1-> ((\v1{x} v2{t} -> v1{x}*v2{t} >2> (\v{t,x} -> {_1:Symbol(v{t,x}.x), _2:v{t,x}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E50(x{_1,_2}._2)} in v1{x}*v2{t,y}) >>> (\v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t}) >>> (\x{_1,_2} -> let {v1{y} = x{_1,_2}._1; v2{t} = x{_1,_2}._2} in v1{y}*v2{t})) $ x1_1 x2_1) } 22 <-- __ { _|_ } 1: 13 <-- __ { ({t:__}) } 2: 12 <-- __ { ({x:__}) } 3: 10 <-- __ { ({t:__}) } 4: 16 <-- LPar(14) { \x1_1-> (((\v1{t} -> v1{t}) >>> (\v{t} -> {_1:SNil, _2:v{t}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E26(x{_1,_2}._2)} in v1{x}*v2{t,y})) $ x1_1) } 16 <-- LPar(16) { \x1_1-> (((\v1{t,x,y} -> v1{t,x,y}) >>> (\v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E26(x{_1,_2}._2)} in v1{x}*v2{t,y})) $ x1_1) } 14 <-- RPar(17) { \x1_1-> ((\v1{t} -> v1{t}) $ x1_1) } 16 <-- Str(12, 13) { \x1_1 x2_1-> ((\v1{x} v2{t} -> v1{x}*v2{t} >2> (\v{t,x} -> {_1:Symbol(v{t,x}.x), _2:v{t,x}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E26(x{_1,_2}._2)} in v1{x}*v2{t,y})) $ x1_1 x2_1) } 22 <-- __ { _|_ } 5: 17 <-- __ { ({t:__}) } 6: 19 <-- Str(26, 23) { \x1_1 x2_1-> ((\v1{x} v2{t} -> v1{x}*v2{t}) $ x1_1 x2_1) } 22 <-- __ { _|_ } 7: 23 <-- RPar(25) { \x1_1-> ((\v1{t} -> v1{t}) $ x1_1) } 22 <-- __ { _|_ } 8: 25 <-- __ { ({t:__}) } 9: 26 <-- __ { ({x:__}) } E27: INITIAL GUIDE: 0 GUIDE FUNCTION: 0 --> __() GUIDED TRANSITIONS: 0: 0 <-- __ { ({y:__}) } E28: INITIAL GUIDE: 0 GUIDE FUNCTION: 0 --> __() GUIDED TRANSITIONS: 0: 0 <-- __ { ({t:__}) } E49: INITIAL GUIDE: 0 GUIDE FUNCTION: 0 --> __() GUIDED TRANSITIONS: 0: 0 <-- __ { ({x:__}) } E50: INITIAL GUIDE: 0 GUIDE FUNCTION: 0 --> Dot(6) 0 --> LPar(4) 0 --> RPar(3) 0 --> Str(2,1) 1 --> __() 2 --> __() 3 --> __() 4 --> LPar(4) 4 --> RPar(5) 4 --> Str(2,1) 5 --> __() 6 --> Str(9,7) 7 --> RPar(8) 8 --> __() 9 --> __() GUIDED TRANSITIONS: 0: 7 <-- Dot(19) { \x1_1-> (((\v1{t,x} -> v1{t,x}) >>> (\v{t,x} -> {_1:Symbol(v{t,x}.x), _2:v{t,x}.t}) >>> (\x{_1,_2} -> let {v1{y} = x{_1,_2}._1; v2{t} = x{_1,_2}._2} in v1{y}*v2{t})) $ x1_1) } 7 <-- LPar(14) { \x1_1-> (((\v1{t} -> v1{t}) >>> ((\v{t} -> {_1:SNil, _2:v{t}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E50(x{_1,_2}._2)} in v1{x}*v2{t,y})) >>> (\v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t}) >>> (\x{_1,_2} -> let {v1{y} = x{_1,_2}._1; v2{t} = x{_1,_2}._2} in v1{y}*v2{t})) $ x1_1) } 7 <-- LPar(16) { \x1_1-> (((\v1{t,x,y} -> v1{t,x,y}) >>> ((\v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E50(x{_1,_2}._2)} in v1{x}*v2{t,y})) >>> (\v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t}) >>> (\x{_1,_2} -> let {v1{y} = x{_1,_2}._1; v2{t} = x{_1,_2}._2} in v1{y}*v2{t})) $ x1_1) } 7 <-- RPar(10) { \x1_1-> (((\v1{t} -> v1{t}) >>> (\v{t} -> {_1:SNil, _2:v{t}.t}) >>> (\x{_1,_2} -> let {v1{y} = x{_1,_2}._1; v2{t} = x{_1,_2}._2} in v1{y}*v2{t})) $ x1_1) } 7 <-- Str(12, 13) { \x1_1 x2_1-> ((\v1{x} v2{t} -> v1{x}*v2{t} >2> (\v{t,x} -> {_1:Symbol(v{t,x}.x), _2:v{t,x}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E50(x{_1,_2}._2)} in v1{x}*v2{t,y}) >>> (\v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t}) >>> (\x{_1,_2} -> let {v1{y} = x{_1,_2}._1; v2{t} = x{_1,_2}._2} in v1{y}*v2{t})) $ x1_1 x2_1) } 22 <-- __ { _|_ } 1: 13 <-- __ { ({t:__}) } 2: 12 <-- __ { ({x:__}) } 3: 10 <-- __ { ({t:__}) } 4: 16 <-- LPar(14) { \x1_1-> (((\v1{t} -> v1{t}) >>> (\v{t} -> {_1:SNil, _2:v{t}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E26(x{_1,_2}._2)} in v1{x}*v2{t,y})) $ x1_1) } 16 <-- LPar(16) { \x1_1-> (((\v1{t,x,y} -> v1{t,x,y}) >>> (\v{t,x,y} -> {_1:SCons(v{t,x,y}.x,v{t,x,y}.y), _2:v{t,x,y}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E26(x{_1,_2}._2)} in v1{x}*v2{t,y})) $ x1_1) } 14 <-- RPar(17) { \x1_1-> ((\v1{t} -> v1{t}) $ x1_1) } 16 <-- Str(12, 13) { \x1_1 x2_1-> ((\v1{x} v2{t} -> v1{x}*v2{t} >2> (\v{t,x} -> {_1:Symbol(v{t,x}.x), _2:v{t,x}.t}) >>> (\x{_1,_2} -> let {v1{x} = x{_1,_2}._1; v2{t,y} = @E26(x{_1,_2}._2)} in v1{x}*v2{t,y})) $ x1_1 x2_1) } 22 <-- __ { _|_ } 5: 17 <-- __ { ({t:__}) } 6: 19 <-- Str(26, 23) { \x1_1 x2_1-> ((\v1{x} v2{t} -> v1{x}*v2{t}) $ x1_1 x2_1) } 22 <-- __ { _|_ } 7: 23 <-- RPar(25) { \x1_1-> ((\v1{t} -> v1{t}) $ x1_1) } 22 <-- __ { _|_ } 8: 25 <-- __ { ({t:__}) } 9: 26 <-- __ { ({x:__}) } E51: INITIAL GUIDE: 0 GUIDE FUNCTION: 0 --> __() GUIDED TRANSITIONS: 0: 0 <-- __ { ({y:__}) } E52: INITIAL GUIDE: 0 GUIDE FUNCTION: 0 --> __() GUIDED TRANSITIONS: 0: 0 <-- __ { ({t:__}) }} -- 0.07 seconds is elapsed.