From 1c0769f8902a61cfae574715feae49a68c1cfc02 Mon Sep 17 00:00:00 2001 From: Virgil Date: Thu, 10 Aug 2023 01:27:44 +0300 Subject: [PATCH 01/15] Prove lemmas --- kmxwasm/k-src/elrond-lemmas.md | 60 ---- kmxwasm/k-src/elrond-wasm.md | 2 + kmxwasm/k-src/kbuild.toml | 4 + kmxwasm/k-src/lemmas/proofs/helper-lemmas.md | 234 +++++++++++++++ kmxwasm/k-src/lemmas/proofs/list-size.k | 23 ++ .../k-src/lemmas/proofs/max-inequalities.k | 159 ++++++++++ kmxwasm/k-src/lemmas/proofs/mod-int-total.k | 160 ++++++++++ kmxwasm/k-src/lemmas/proofs/pound-bool.k | 89 ++++++ kmxwasm/k-src/lemmas/proven-elrond-lemmas.md | 111 +++++++ kmxwasm/k-src/lemmas/semantics/destructors.md | 26 ++ .../semantics/elrond-wasm-lemma-proofs.md | 38 +++ .../semantics/private-specification-lemmas.md | 91 ++++++ kmxwasm/k-src/lemmas/semantics/syntax.md | 20 ++ .../k-src/lemmas/semantics/user-operations.md | 138 +++++++++ kmxwasm/src/kmxwasm/build.py | 2 + kmxwasm/src/kmxwasm/lemmas/expression.py | 142 +++++++++ kmxwasm/src/kmxwasm/lemmas/generate.py | 278 ++++++++++++++++++ kmxwasm/src/kmxwasm/lemmas/lemmas.py | 141 +++++++++ kmxwasm/src/kmxwasm/lemmas/proof.py | 35 +++ 19 files changed, 1693 insertions(+), 60 deletions(-) create mode 100644 kmxwasm/k-src/lemmas/proofs/helper-lemmas.md create mode 100644 kmxwasm/k-src/lemmas/proofs/list-size.k create mode 100644 kmxwasm/k-src/lemmas/proofs/max-inequalities.k create mode 100644 kmxwasm/k-src/lemmas/proofs/mod-int-total.k create mode 100644 kmxwasm/k-src/lemmas/proofs/pound-bool.k create mode 100644 kmxwasm/k-src/lemmas/proven-elrond-lemmas.md create mode 100644 kmxwasm/k-src/lemmas/semantics/destructors.md create mode 100644 kmxwasm/k-src/lemmas/semantics/elrond-wasm-lemma-proofs.md create mode 100644 kmxwasm/k-src/lemmas/semantics/private-specification-lemmas.md create mode 100644 kmxwasm/k-src/lemmas/semantics/syntax.md create mode 100644 kmxwasm/k-src/lemmas/semantics/user-operations.md create mode 100644 kmxwasm/src/kmxwasm/lemmas/expression.py create mode 100755 kmxwasm/src/kmxwasm/lemmas/generate.py create mode 100644 kmxwasm/src/kmxwasm/lemmas/lemmas.py create mode 100644 kmxwasm/src/kmxwasm/lemmas/proof.py diff --git a/kmxwasm/k-src/elrond-lemmas.md b/kmxwasm/k-src/elrond-lemmas.md index 321e23f3..28c8dcdc 100644 --- a/kmxwasm/k-src/elrond-lemmas.md +++ b/kmxwasm/k-src/elrond-lemmas.md @@ -8,9 +8,6 @@ module ELROND-LEMMAS imports private SET imports private WASM-TEXT - rule ( size ( _L:List ) >=Int 0 => true ) - [simplification(), smt-lemma()] - rule Bytes2Int(#getBytesRange(_:Bytes, _:Int, N:Int), _:Endianness, _:Signedness) true requires 2 ^Int (8 *Int N) <=Int M @@ -328,63 +325,6 @@ module ELROND-LEMMAS requires 0 true - [simplification(), smt-lemma()] - - rule #bool ( _B ) <=Int 1 => true - [simplification(), smt-lemma()] - - rule #bool ( B:Bool ) notBool (B:Bool) - [simplification()] - - rule { 0 #Equals #bool ( B:Bool ) } => { false #Equals B:Bool } - [simplification] - - rule { 1 #Equals #bool ( B:Bool ) } => { true #Equals B:Bool } - [simplification()] - - rule X:Int true - requires ( X:Int =Int maxInt ( Y:Int , Z:Int ) => true - requires ( X:Int >=Int Y:Int - andBool ( X:Int >=Int Z:Int - )) - [simplification()] - - rule X:Int >Int maxInt ( Y:Int , Z:Int ) => true - requires ( X:Int >Int Y:Int - andBool ( X:Int >Int Z:Int - )) - [simplification()] - - rule maxInt ( Y:Int , Z:Int ) >=Int X:Int => true - requires ( X:Int <=Int Y:Int - orBool ( X:Int <=Int Z:Int - )) - [simplification()] - - rule maxInt ( Y:Int , Z:Int ) >Int X:Int => true - requires ( X:Int true - requires ( X:Int >=Int Y:Int - andBool ( X:Int >=Int Z:Int - )) - [simplification()] - - rule maxInt ( Y:Int , Z:Int ) true - requires ( X:Int >Int Y:Int - andBool ( X:Int >Int Z:Int - )) - [simplification()] - endmodule ``` diff --git a/kmxwasm/k-src/elrond-wasm.md b/kmxwasm/k-src/elrond-wasm.md index f66ce50b..ef6c0a84 100644 --- a/kmxwasm/k-src/elrond-wasm.md +++ b/kmxwasm/k-src/elrond-wasm.md @@ -1,6 +1,7 @@ ```k require "elrond-lemmas.md" require "elrond-semantics/foundry.md" +require "lemmas/proven-elrond-lemmas.md" require "proof-extensions.md" require "specification-lemmas.md" require "wasm-semantics/kwasm-lemmas.md" @@ -13,6 +14,7 @@ endmodule module ELROND-WASM imports ELROND-LEMMAS imports ELROND-WASM-NO-LOCAL-LEMMAS + imports PROVEN-ELROND-LEMMAS endmodule module ELROND-WASM-NO-LOCAL-LEMMAS diff --git a/kmxwasm/k-src/kbuild.toml b/kmxwasm/k-src/kbuild.toml index 354b0db8..eef577bf 100644 --- a/kmxwasm/k-src/kbuild.toml +++ b/kmxwasm/k-src/kbuild.toml @@ -13,3 +13,7 @@ backend='llvm' [targets.haskell] main-file = 'elrond-wasm.md' backend='haskell' + +[targets.lemma-proofs] +main-file = 'lemmas/semantics/elrond-wasm-lemma-proofs.md' +backend='haskell' diff --git a/kmxwasm/k-src/lemmas/proofs/helper-lemmas.md b/kmxwasm/k-src/lemmas/proofs/helper-lemmas.md new file mode 100644 index 00000000..befaf6bb --- /dev/null +++ b/kmxwasm/k-src/lemmas/proofs/helper-lemmas.md @@ -0,0 +1,234 @@ +```k +module HELPER-LEMMAS + imports private ELROND-WASM-LEMMA-PROOFS + + claim + + ( runProofStep ( tModuloBetween0AndM ( ... number: X:Int , mod: M:Int ) ) => end ) + ... + + + .K + + + .K + + ... + + requires 0 + + ( runProofStep ( tModuloBetween0AndM ( ... number: X:Int , mod: M:Int ) ) => end ) + ... + + + .K + + + .K + + ... + + requires M:Int + + ( runProofStep ( moduloBetween0AndM ( ... number: X:Int , mod: M:Int ) ) => end ) + ... + + + .K + + + .K + + ... + + requires 0 + + ( runProofStep ( moduloBetween0AndM ( ... number: X:Int , mod: M:Int ) ) => end ) + ... + + + .K + + + .K + + ... + + requires M:Int + + ( runProofStep ( numberAsTDivModulo ( ... number: X:Int , mod: M:Int ) ) => end ) + ... + + + .K + + + .K + + ... + + requires 0 + + ( runProofStep ( numberAsTDivModulo ( ... number: X:Int , mod: M:Int ) ) => end ) + ... + + + .K + + + .K + + ... + + requires M:Int + + ( runProofStep ( numberAsTDivModuloHelper ( ... number: X:Int , mod: M:Int , divresult: Y:Int , modresult: Z:Int ) ) => end ) + ... + + + .K + + + .K + + ... + + requires ( 0 + + ( runProofStep ( numberAsTDivModuloHelper ( ... number: X:Int , mod: M:Int , divresult: Y:Int , modresult: Z:Int ) ) => end ) + ... + + + .K + + + .K + + ... + + requires ( M:Int + + ( runProofStep ( numberAsDivModulo ( ... number: X:Int , mod: M:Int ) ) => end ) + ... + + + .K + + + .K + + ... + + requires 0 + + ( runProofStep ( numberAsDivModulo ( ... number: X:Int , mod: M:Int ) ) => end ) + ... + + + .K + + + .K + + ... + + requires M:Int + + ( runProofStep ( numberAsDivModuloHelper ( ... number: X:Int , mod: M:Int , divresult: Y:Int , modresult: Z:Int ) ) => end ) + ... + + + .K + + + .K + + ... + + requires ( 0 + + ( runProofStep ( numberAsDivModuloHelper ( ... number: X:Int , mod: M:Int , divresult: Y:Int , modresult: Z:Int ) ) => end ) + ... + + + .K + + + .K + + ... + + requires ( M:Int + + ( runProof ( proofOperationList ( basicListInduction ( L:List ) , .List{"proofOperationList"}_BytesStack ( ) ) ) => end ) + ... + + + .K + + + .K + + ... + + ensures { size ( L:List ) >=Int 0 #Equals true } + + +endmodule \ No newline at end of file diff --git a/kmxwasm/k-src/lemmas/proofs/max-inequalities.k b/kmxwasm/k-src/lemmas/proofs/max-inequalities.k new file mode 100644 index 00000000..a605f105 --- /dev/null +++ b/kmxwasm/k-src/lemmas/proofs/max-inequalities.k @@ -0,0 +1,159 @@ +requires "helper-lemmas.md" + +module MAX-INEQUALITIES + imports private ELROND-WASM-LEMMA-PROOFS + imports private HELPER-LEMMAS + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ... + + + .K + + + .K + + ... + + requires ( X:Int <=Int Y:Int + orBool ( X:Int <=Int Z:Int + )) + ensures { X:Int <=Int maxInt ( Y:Int , Z:Int ) #Equals true } + + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ... + + + .K + + + .K + + ... + + requires ( X:Int + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ... + + + .K + + + .K + + ... + + requires ( X:Int >=Int Y:Int + andBool ( X:Int >=Int Z:Int + )) + ensures { X:Int >=Int maxInt ( Y:Int , Z:Int ) #Equals true } + + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ... + + + .K + + + .K + + ... + + requires ( X:Int >Int Y:Int + andBool ( X:Int >Int Z:Int + )) + ensures { X:Int >Int maxInt ( Y:Int , Z:Int ) #Equals true } + + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ... + + + .K + + + .K + + ... + + requires ( X:Int <=Int Y:Int + orBool ( X:Int <=Int Z:Int + )) + ensures { maxInt ( Y:Int , Z:Int ) >=Int X:Int #Equals true } + + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ... + + + .K + + + .K + + ... + + requires ( X:Int Int X:Int #Equals true } + + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ... + + + .K + + + .K + + ... + + requires ( X:Int >=Int Y:Int + andBool ( X:Int >=Int Z:Int + )) + ensures { maxInt ( Y:Int , Z:Int ) <=Int X:Int #Equals true } + + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ... + + + .K + + + .K + + ... + + requires ( X:Int >Int Y:Int + andBool ( X:Int >Int Z:Int + )) + ensures { maxInt ( Y:Int , Z:Int ) + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ... + + + .K + + + .K + + ... + + ensures { ((((X:Int) modIntTotal (Y:Int)) +Int (Z:Int)) +Int (T:Int)) modIntTotal (Y:Int) #Equals (((X:Int) +Int (Z:Int)) +Int (T:Int)) modIntTotal (Y:Int) } + + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ... + + + .K + + + .K + + ... + + ensures { ((((X:Int) modIntTotal (Y:Int)) +Int (Z:Int)) -Int (T:Int)) modIntTotal (Y:Int) #Equals (((X:Int) +Int (Z:Int)) -Int (T:Int)) modIntTotal (Y:Int) } + + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ... + + + .K + + + .K + + ... + + ensures { (((X:Int) modIntTotal (Y:Int)) +Int (Z:Int)) modIntTotal (Y:Int) #Equals ((X:Int) +Int (Z:Int)) modIntTotal (Y:Int) } + + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ... + + + .K + + + .K + + ... + + ensures { ((X:Int) +Int ((Z:Int) modIntTotal (Y:Int))) modIntTotal (Y:Int) #Equals ((X:Int) +Int (Z:Int)) modIntTotal (Y:Int) } + + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ... + + + .K + + + .K + + ... + + requires Y:Int >Int 0 + ensures { (X:Int) modIntTotal (Y:Int) + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ... + + + .K + + + .K + + ... + + requires Y:Int >Int 0 + ensures { 0 <=Int (X:Int) modIntTotal (Y:Int) #Equals true } + + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ... + + + .K + + + .K + + ... + + requires ( notBool (Z:Int ==Int 0) + andBool ( Y:Int >=Int Z:Int + )) + ensures { ((X:Int) +Int (Y:Int)) modIntTotal (Z:Int) #Equals ((X:Int) +Int ((Y:Int) modInt (Z:Int))) modIntTotal (Z:Int) } + + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ... + + + .K + + + .K + + ... + + ensures { ((X:Int) +Int (Y:Int)) modIntTotal (M:Int) #Equals ((X:Int) +Int (Z:Int)) modIntTotal (M:Int) }:Bool #Implies { (Y:Int) modIntTotal (M:Int) #Equals (Z:Int) modIntTotal (M:Int) } + #And { (Y:Int) modIntTotal (M:Int) #Equals (Z:Int) modIntTotal (M:Int) }:Bool #Implies { ((X:Int) +Int (Y:Int)) modIntTotal (M:Int) #Equals ((X:Int) +Int (Z:Int)) modIntTotal (M:Int) } + + + claim + + ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ... + + + .K + + + .K + + ... + + requires ( 0 <=Int X:Int + andBool ( X:Int + + ( runProof ( proofOperationList ( split ( B:Bool , .List{"proofOperationList"}_BytesStack ( ) , .List{"proofOperationList"}_BytesStack ( ) ) , .List{"proofOperationList"}_BytesStack ( ) ) ) => end ) + ... + + + .K + + + .K + + ... + + ensures { 0 <=Int #bool ( B:Bool ) #Equals true } + + + claim + + ( runProof ( proofOperationList ( split ( B:Bool , .List{"proofOperationList"}_BytesStack ( ) , .List{"proofOperationList"}_BytesStack ( ) ) , .List{"proofOperationList"}_BytesStack ( ) ) ) => end ) + ... + + + .K + + + .K + + ... + + ensures { #bool ( B:Bool ) <=Int 1 #Equals true } + + + claim + + ( runProof ( proofOperationList ( split ( B:Bool , .List{"proofOperationList"}_BytesStack ( ) , .List{"proofOperationList"}_BytesStack ( ) ) , .List{"proofOperationList"}_BytesStack ( ) ) ) => end ) + ... + + + .K + + + .K + + ... + + ensures { #bool ( B:Bool ) + + ( runProof ( proofOperationList ( split ( B:Bool , .List{"proofOperationList"}_BytesStack ( ) , .List{"proofOperationList"}_BytesStack ( ) ) , .List{"proofOperationList"}_BytesStack ( ) ) ) => end ) + ... + + + .K + + + .K + + ... + + ensures { 0 #Equals #bool ( B:Bool ) }:Bool #Implies { false #Equals B:Bool } + #And { false #Equals B:Bool }:Bool #Implies { 0 #Equals #bool ( B:Bool ) } + + + claim + + ( runProof ( proofOperationList ( split ( B:Bool , .List{"proofOperationList"}_BytesStack ( ) , .List{"proofOperationList"}_BytesStack ( ) ) , .List{"proofOperationList"}_BytesStack ( ) ) ) => end ) + ... + + + .K + + + .K + + ... + + ensures { 1 #Equals #bool ( B:Bool ) }:Bool #Implies { true #Equals B:Bool } + #And { true #Equals B:Bool }:Bool #Implies { 1 #Equals #bool ( B:Bool ) } + + +endmodule \ No newline at end of file diff --git a/kmxwasm/k-src/lemmas/proven-elrond-lemmas.md b/kmxwasm/k-src/lemmas/proven-elrond-lemmas.md new file mode 100644 index 00000000..4f707ce4 --- /dev/null +++ b/kmxwasm/k-src/lemmas/proven-elrond-lemmas.md @@ -0,0 +1,111 @@ +```k +module PROVEN-ELROND-LEMMAS + imports private BOOL + imports private CEILS + imports private ELROND + imports private INT + imports private LIST + + rule ( 0 <=Int #bool ( _B:Bool ) => true ) + [simplification(), smt-lemma()] + + rule ( #bool ( _B:Bool ) <=Int 1 => true ) + [simplification(), smt-lemma()] + + rule ( #bool ( B:Bool ) notBool (B:Bool) ) + [simplification()] + + rule ( { 0 #Equals #bool ( B:Bool ) }:Bool => { false #Equals B:Bool }:Bool ) + [simplification()] + + rule ( { 1 #Equals #bool ( B:Bool ) }:Bool => { true #Equals B:Bool }:Bool ) + [simplification()] + + rule ( size ( _L:List ) >=Int 0 => true ) + [simplification(), smt-lemma()] + + rule ( X:Int <=Int maxInt ( Y:Int , Z:Int ) => true ) + requires ( X:Int <=Int Y:Int + orBool ( X:Int <=Int Z:Int + )) + [simplification()] + + rule ( X:Int true ) + requires ( X:Int =Int maxInt ( Y:Int , Z:Int ) => true ) + requires ( X:Int >=Int Y:Int + andBool ( X:Int >=Int Z:Int + )) + [simplification()] + + rule ( X:Int >Int maxInt ( Y:Int , Z:Int ) => true ) + requires ( X:Int >Int Y:Int + andBool ( X:Int >Int Z:Int + )) + [simplification()] + + rule ( maxInt ( Y:Int , Z:Int ) >=Int X:Int => true ) + requires ( X:Int <=Int Y:Int + orBool ( X:Int <=Int Z:Int + )) + [simplification()] + + rule ( maxInt ( Y:Int , Z:Int ) >Int X:Int => true ) + requires ( X:Int true ) + requires ( X:Int >=Int Y:Int + andBool ( X:Int >=Int Z:Int + )) + [simplification()] + + rule ( maxInt ( Y:Int , Z:Int ) true ) + requires ( X:Int >Int Y:Int + andBool ( X:Int >Int Z:Int + )) + [simplification()] + + rule ( ((((X:Int) modIntTotal (Y:Int)) +Int (Z:Int)) +Int (T:Int)) modIntTotal (Y:Int) => (((X:Int) +Int (Z:Int)) +Int (T:Int)) modIntTotal (Y:Int) ) + [simplification()] + + rule ( ((((X:Int) modIntTotal (Y:Int)) +Int (Z:Int)) -Int (T:Int)) modIntTotal (Y:Int) => (((X:Int) +Int (Z:Int)) -Int (T:Int)) modIntTotal (Y:Int) ) + [simplification()] + + rule ( (((X:Int) modIntTotal (Y:Int)) +Int (Z:Int)) modIntTotal (Y:Int) => ((X:Int) +Int (Z:Int)) modIntTotal (Y:Int) ) + [simplification()] + + rule ( ((X:Int) +Int ((Z:Int) modIntTotal (Y:Int))) modIntTotal (Y:Int) => ((X:Int) +Int (Z:Int)) modIntTotal (Y:Int) ) + [simplification()] + + rule ( (_X:Int) modIntTotal (Y:Int) true ) + requires Y:Int >Int 0 + [simplification(), smt-lemma()] + + rule ( 0 <=Int (_X:Int) modIntTotal (Y:Int) => true ) + requires Y:Int >Int 0 + [simplification(), smt-lemma()] + + rule ( ((X:Int) +Int (Y:Int)) modIntTotal (Z:Int) => ((X:Int) +Int ((Y:Int) modInt (Z:Int))) modIntTotal (Z:Int) ) + requires ( notBool (Z:Int ==Int 0) + andBool ( Y:Int >=Int Z:Int + )) + [simplification(), concrete(Y, Z)] + + rule ( { ((X:Int) +Int (Y:Int)) modIntTotal (M:Int) #Equals ((X:Int) +Int (Z:Int)) modIntTotal (M:Int) }:Bool => { (Y:Int) modIntTotal (M:Int) #Equals (Z:Int) modIntTotal (M:Int) }:Bool ) + [simplification()] + + rule ( (X:Int) modIntTotal (Y:Int) => X:Int ) + requires ( 0 <=Int X:Int + andBool ( X:Int runProof(Ops) + rule runProofStep(destruct L:List as head_tail(_) empty(Ops)) + => runProof(Ops) + ensures L ==K .List + [owise] + + syntax KItem ::= totalHead(List) [function, total] + rule totalHead(ListItem(Item) _:List) => Item + rule totalHead(L:List) => L [owise] + syntax List ::= totalTail(List) [function, total] + rule totalTail(ListItem(_) L:List) => L + rule totalTail(L:List) => L [owise] +endmodule +``` \ No newline at end of file diff --git a/kmxwasm/k-src/lemmas/semantics/elrond-wasm-lemma-proofs.md b/kmxwasm/k-src/lemmas/semantics/elrond-wasm-lemma-proofs.md new file mode 100644 index 00000000..577a649d --- /dev/null +++ b/kmxwasm/k-src/lemmas/semantics/elrond-wasm-lemma-proofs.md @@ -0,0 +1,38 @@ +```k + +requires "../../elrond-wasm.md" +requires "destructors.md" +requires "private-specification-lemmas.md" +requires "user-operations.md" + +module ELROND-WASM-LEMMA-PROOFS-SYNTAX + imports ELROND-WASM-SYNTAX +endmodule + +module ELROND-WASM-LEMMA-PROOFS + imports BOOL + imports DESTRUCTORS + imports ELROND-WASM-NO-LOCAL-LEMMAS + imports INT + imports LIST + imports PRIVATE-SPECIFICATION-LEMMAS + imports PROOF-SYNTAX + imports USER-OPERATIONS + + rule runProof(Op:ProofOperation ; Ops:ProofOperationList) + => runProofStep(Op) ~> runProof(Ops) + rule runProof(.ProofOperationList) + => end + rule (end => .K) ~> runProof(_) + + rule runProofStep(nop) => .K + rule runProofStep(var(_)) => .K + rule runProofStep(split(true, TrueBranch, _FalseBranch)) + => runProof(TrueBranch) + rule runProofStep(split(_, _TrueBranch, FalseBranch)) + => runProof(FalseBranch) + [owise] // This is an owise branch to avoid https://github.com/runtimeverification/haskell-backend/issues/3649 +endmodule + + +``` \ No newline at end of file diff --git a/kmxwasm/k-src/lemmas/semantics/private-specification-lemmas.md b/kmxwasm/k-src/lemmas/semantics/private-specification-lemmas.md new file mode 100644 index 00000000..5fe0a9fa --- /dev/null +++ b/kmxwasm/k-src/lemmas/semantics/private-specification-lemmas.md @@ -0,0 +1,91 @@ +```k +module PRIVATE-SPECIFICATION-LEMMAS + imports ELROND-WASM-NO-LOCAL-LEMMAS + + // Y > 0 + rule X /IntTotal Y => 0 + requires 0 <=Int X andBool X ((X -Int Y) /IntTotal Y) +Int 1 + requires 0 ((X +Int Y) /IntTotal Y) -Int 1 + requires 0 0 + requires Y ((X -Int Y) /IntTotal Y) +Int 1 + requires X <=Int Y andBool Y ((X +Int Y) /IntTotal Y) -Int 1 + requires Y 0 + rule X %IntTotal Y => X + requires 0 <=Int X andBool X (X -Int Y) %IntTotal Y + requires 0 (X +Int Y) %IntTotal Y + requires 0 X + requires Y (X -Int Y) %IntTotal Y + requires X <=Int Y andBool Y (X +Int Y) %IntTotal Y + requires Y 0 + rule X divIntTotal Y => 0 + requires 0 <=Int X andBool X ((X -Int Y) divIntTotal Y) +Int 1 + requires 0 ((X +Int Y) divIntTotal Y) -Int 1 + requires 0 0 + requires Y ((X -Int Y) divIntTotal Y) +Int 1 + requires Y ((X +Int Y) divIntTotal Y) -Int 1 + requires Y 0 + rule X modIntTotal Y => X + requires 0 <=Int X andBool X (X -Int Y) modIntTotal Y + requires 0 (X +Int Y) modIntTotal Y + requires 0 X + requires Y (X -Int Y) modIntTotal Y + requires Y (X +Int Y) modIntTotal Y + requires Y runProof( + destruct L as + head_tail(basicListInduction(totalTail(L))) + empty(nop) + ) + + syntax ProofUserOperation ::= moduloBetween0AndM(number:Int, mod:Int) [symbol, klabel(moduloBetween0AndM)] + + rule runProofStep(moduloBetween0AndM(A:Int, M:Int)) + => runProof( + split( + M >Int 0, + split( + A runProof( + split( + M >Int 0, + split( + A runProof( + numberAsTDivModuloHelper(A, M, 0, A) + ) + + syntax ProofUserOperation ::= numberAsTDivModuloHelper(number:Int, mod:Int, divresult:Int, modresult:Int) + [symbol, klabel(numberAsTDivModuloHelper)] + + rule runProofStep(numberAsTDivModuloHelper(A:Int, M:Int, Div:Int, Mod:Int)) + => runProof( + split( + 0 runProof( + numberAsDivModuloHelper(A, M, 0, A) + ) + + syntax ProofUserOperation ::= numberAsDivModuloHelper(number:Int, mod:Int, divresult:Int, modresult:Int) + [symbol, klabel(numberAsDivModuloHelper)] + + rule runProofStep(numberAsDivModuloHelper(A:Int, M:Int, Div:Int, Mod:Int)) + => runProof( + split( + 0 Tools: diff --git a/kmxwasm/src/kmxwasm/lemmas/expression.py b/kmxwasm/src/kmxwasm/lemmas/expression.py new file mode 100644 index 00000000..00224e05 --- /dev/null +++ b/kmxwasm/src/kmxwasm/lemmas/expression.py @@ -0,0 +1,142 @@ +from typing import Iterable + +from pyk.kast.inner import KApply, KInner, KSequence, KSort, KToken, KVariable +from pyk.prelude.kint import intToken + +from ..ast.collections import simple_list + +ML_LABELS = { + '#Not', + '#And', + '#Or', + '#Implies', + '#Iff', + '#Exists', + '#Forall', + '#Top', + '#Bottom', + '#Ceil', + '#Floor', + '#Equals', + '#In', +} + + +def var(name: str, sort: KSort) -> KVariable: + return KVariable(name, sort) + + +def v(value: int) -> KToken: + return intToken(value) + + +# TODO: Move to pyk. + + +def addInt(i1: KInner, i2: KInner) -> KApply: # noqa: N802 + return KApply('_+Int_', i1, i2) + + +def mulInt(i1: KInner, i2: KInner) -> KApply: # noqa: N802 + return KApply('_*Int_', i1, i2) + + +def subInt(i1: KInner, i2: KInner) -> KApply: # noqa: N802 + return KApply('_-Int_', i1, i2) + + +def divInt(i1: KInner, i2: KInner) -> KApply: # noqa: N802 + return KApply('_/Int_', i1, i2) + + +def modInt(i1: KInner, i2: KInner) -> KApply: # noqa: N802 + return KApply('_modInt_', i1, i2) + + +def geInt(i1: KInner, i2: KInner) -> KApply: # noqa: N802 + return KApply('_>=Int_', i1, i2) + + +def sizeList(l: KInner) -> KApply: # noqa: N802 + return KApply('size(_)_LIST_Int_List', l) # TODO: make sizeList in K a symbol. + + +def maxInt(l: KInner, r: KInner) -> KApply: # noqa: N802 + return KApply('maxInt(_,_)_INT-COMMON_Int_Int_Int', l, r) # TODO: make maxInt in K a symbol. + + +# DO NOT MOVE TO PYK + + +def tDivIntTotal(i1: KInner, i2: KInner) -> KApply: # noqa: N802 + return KApply('_/IntTotal_', i1, i2) + + +def tModIntTotal(i1: KInner, i2: KInner) -> KApply: # noqa: N802 + return KApply('_%IntTotal_', i1, i2) + + +def modIntTotal(i1: KInner, i2: KInner) -> KApply: # noqa: N802 + return KApply('modIntTotal', i1, i2) + + +def divIntTotal(i1: KInner, i2: KInner) -> KApply: # noqa: N802 + return KApply('divIntTotal', i1, i2) + + +def poundBool(b: KInner) -> KApply: # noqa: N802 + return KApply('boolToInt', b) + + +def moduloBetween0AndM(number: KInner, m: KInner) -> KApply: # noqa: N802 + return KApply('moduloBetween0AndM', number, m) + + +def tModuloBetween0AndM(number: KInner, m: KInner) -> KApply: # noqa: N802 + return KApply('tModuloBetween0AndM', number, m) + + +def numberAsDivModulo(number: KInner, m: KInner) -> KApply: # noqa: N802 + return KApply('numberAsDivModulo', number, m) + + +def numberAsDivModuloHelper( # noqa: N802 + number: KInner, m: KInner, current_div: KInner, current_mod: KInner +) -> KApply: + return KApply('numberAsDivModuloHelper', number, m, current_div, current_mod) + + +def numberAsTDivModulo(number: KInner, m: KInner) -> KApply: # noqa: N802 + return KApply('numberAsTDivModulo', number, m) + + +def numberAsTDivModuloHelper( # noqa: N802 + number: KInner, m: KInner, current_div: KInner, current_mod: KInner +) -> KApply: + return KApply('numberAsTDivModuloHelper', number, m, current_div, current_mod) + + +def is_ml(term: KInner) -> bool: + return isinstance(term, KApply) and (term.label.name in ML_LABELS) + + +def k_cell(contents: KSequence) -> KApply: + return KApply('', contents) + + +def commands_cell(contents: KSequence) -> KApply: + return KApply('', contents) + + +def instrs_cell(contents: KSequence) -> KApply: + return KApply('', contents) + + +def mandos_cell(*args: KInner) -> KApply: + return KApply('', *args) + + +def proofOperationList(proof: Iterable[KInner]) -> KInner: # noqa: N802 + return simple_list( + concat_label='proofOperationList', empty_label='.List{"proofOperationList"}_BytesStack', items=proof + ) diff --git a/kmxwasm/src/kmxwasm/lemmas/generate.py b/kmxwasm/src/kmxwasm/lemmas/generate.py new file mode 100755 index 00000000..2c1d282b --- /dev/null +++ b/kmxwasm/src/kmxwasm/lemmas/generate.py @@ -0,0 +1,278 @@ +#!/usr/bin/env python3 + +import sys + +from pyk.prelude.collections import LIST +from pyk.prelude.kbool import BOOL, FALSE, TRUE, andBool, notBool, orBool +from pyk.prelude.kint import INT, eqInt, gtInt, leInt, ltInt +from pyk.prelude.ml import mlEquals + +from ..build import LEMMA_PROOFS, kbuild_semantics +from ..paths import KBUILD_DIR, KBUILD_ML_PATH, ROOT +from .expression import ( + addInt, + divIntTotal, + geInt, + maxInt, + modInt, + modIntTotal, + moduloBetween0AndM, + mulInt, + numberAsDivModulo, + numberAsDivModuloHelper, + numberAsTDivModulo, + numberAsTDivModuloHelper, + poundBool, + sizeList, + subInt, + tDivIntTotal, + tModIntTotal, + tModuloBetween0AndM, + v, + var, +) +from .lemmas import ( + HelperLemma, + Lemma, + LemmaProof, + concrete, + make_helper_lemmas_module, + make_proven_lemmas_module, + smt_lemma, +) +from .proof import basicListInduction, proofSplit, proofVar + +LEMMAS_DIR = ROOT / 'kmxwasm' / 'k-src' / 'lemmas' +PROOFS_DIR = LEMMAS_DIR / 'proofs' + +HELPER_LEMMAS_FILE = PROOFS_DIR / 'helper-lemmas.md' +LEMMAS_FILE = LEMMAS_DIR / 'proven-elrond-lemmas.md' + +B = var('B', BOOL) +L = var('L', LIST) +M = var('M', INT) +T = var('T', INT) +X = var('X', INT) +Y = var('Y', INT) +Z = var('Z', INT) + +HELPER_LEMMAS = [ + HelperLemma( + proof=tModuloBetween0AndM(X, M), + requires=ltInt(v(0), M), + ensures=andBool([leInt(v(0), tModIntTotal(X, M)), ltInt(tModIntTotal(X, M), M)]), + ), + HelperLemma( + proof=tModuloBetween0AndM(X, M), + requires=ltInt(M, v(0)), + ensures=andBool([leInt(tModIntTotal(X, M), v(0)), ltInt(M, tModIntTotal(X, M))]), + ), + HelperLemma( + proof=moduloBetween0AndM(X, M), + requires=ltInt(v(0), M), + ensures=andBool([leInt(v(0), modIntTotal(X, M)), ltInt(modIntTotal(X, M), M)]), + ), + HelperLemma( + proof=moduloBetween0AndM(X, M), + requires=ltInt(M, v(0)), + ensures=andBool([leInt(v(0), modIntTotal(X, M)), ltInt(modIntTotal(X, M), subInt(v(0), M))]), + ), + HelperLemma( + proof=numberAsTDivModulo(X, M), + requires=ltInt(v(0), M), + ensures=eqInt(X, addInt(mulInt(tDivIntTotal(X, M), M), tModIntTotal(X, M))), + ), + HelperLemma( + proof=numberAsTDivModulo(X, M), + requires=ltInt(M, v(0)), + ensures=eqInt(X, addInt(mulInt(tDivIntTotal(X, M), M), tModIntTotal(X, M))), + ), + HelperLemma( + proof=numberAsTDivModuloHelper(X, M, Y, Z), + requires=andBool( + [ + ltInt(v(0), M), + eqInt(X, addInt(mulInt(Y, M), Z)), + eqInt(Y, tDivIntTotal(subInt(X, Z), M)), + eqInt(tModIntTotal(X, M), tModIntTotal(Z, M)), + ] + ), + ensures=eqInt(X, addInt(mulInt(tDivIntTotal(X, M), M), tModIntTotal(X, M))), + ), + HelperLemma( + proof=numberAsTDivModuloHelper(X, M, Y, Z), + requires=andBool( + [ + ltInt(M, v(0)), + eqInt(X, addInt(mulInt(Y, M), Z)), + eqInt(Y, tDivIntTotal(subInt(X, Z), M)), + eqInt(tModIntTotal(X, M), tModIntTotal(Z, M)), + ] + ), + ensures=eqInt(X, addInt(mulInt(tDivIntTotal(X, M), M), tModIntTotal(X, M))), + ), + HelperLemma( + proof=numberAsDivModulo(X, M), + requires=ltInt(v(0), M), + ensures=eqInt(X, addInt(mulInt(divIntTotal(X, M), M), modIntTotal(X, M))), + ), + HelperLemma( + proof=numberAsDivModulo(X, M), + requires=ltInt(M, v(0)), + ensures=eqInt(X, addInt(mulInt(divIntTotal(X, M), M), modIntTotal(X, M))), + ), + HelperLemma( + proof=numberAsDivModuloHelper(X, M, Y, Z), + requires=andBool( + [ + ltInt(v(0), M), + eqInt(X, addInt(mulInt(Y, M), Z)), + eqInt(Y, divIntTotal(subInt(X, Z), M)), + eqInt(modIntTotal(X, M), modIntTotal(Z, M)), + ] + ), + ensures=eqInt(X, addInt(mulInt(divIntTotal(X, M), M), modIntTotal(X, M))), + ), + HelperLemma( + proof=numberAsDivModuloHelper(X, M, Y, Z), + requires=andBool( + [ + ltInt(M, v(0)), + eqInt(X, addInt(mulInt(Y, M), Z)), + eqInt(Y, divIntTotal(subInt(X, Z), M)), + eqInt(modIntTotal(X, M), modIntTotal(Z, M)), + ] + ), + ensures=eqInt(X, addInt(mulInt(divIntTotal(X, M), M), modIntTotal(X, M))), + ), +] + + +LEMMAS = [ + LemmaProof( + name='pound-bool', + proof=[proofSplit(B)], + lemmas=[ + Lemma(leInt(v(0), poundBool(B)), TRUE, attributes=[smt_lemma]), + Lemma(leInt(poundBool(B), v(1)), TRUE, attributes=[smt_lemma]), + Lemma(ltInt(poundBool(B), v(1)), notBool(B)), + Lemma(mlEquals(v(0), poundBool(B)), mlEquals(FALSE, B)), + Lemma(mlEquals(v(1), poundBool(B)), mlEquals(TRUE, B)), + ], + ), + LemmaProof( + name='list-size', + proof=[basicListInduction(L)], + lemmas=[ + Lemma(geInt(sizeList(L), v(0)), TRUE, attributes=[smt_lemma]), + ], + ), + LemmaProof( + name='max-inequalities', + proof=[ + proofVar(X), + proofSplit( + leInt(Y, Z), + when_true=[proofSplit(ltInt(X, Z), when_false=[proofSplit(ltInt(Z, X))])], + when_false=[proofSplit(ltInt(Y, Z), when_false=[proofSplit(ltInt(Y, X))])], + ), + ], + lemmas=[ + Lemma(leInt(X, maxInt(Y, Z)), TRUE, requires=orBool([leInt(X, Y), leInt(X, Z)])), + Lemma(ltInt(X, maxInt(Y, Z)), TRUE, requires=orBool([ltInt(X, Y), ltInt(X, Z)])), + Lemma(geInt(X, maxInt(Y, Z)), TRUE, requires=andBool([geInt(X, Y), geInt(X, Z)])), + Lemma(gtInt(X, maxInt(Y, Z)), TRUE, requires=andBool([gtInt(X, Y), gtInt(X, Z)])), + Lemma(geInt(maxInt(Y, Z), X), TRUE, requires=orBool([leInt(X, Y), leInt(X, Z)])), + Lemma(gtInt(maxInt(Y, Z), X), TRUE, requires=orBool([ltInt(X, Y), ltInt(X, Z)])), + Lemma(leInt(maxInt(Y, Z), X), TRUE, requires=andBool([geInt(X, Y), geInt(X, Z)])), + Lemma(ltInt(maxInt(Y, Z), X), TRUE, requires=andBool([gtInt(X, Y), gtInt(X, Z)])), + ], + ), + LemmaProof( + name='mod-int-total', + proof=[proofVar(X), proofVar(Y), proofVar(Z), proofVar(T), proofVar(M)], + lemmas=[ + Lemma( + modIntTotal(addInt(addInt(modIntTotal(X, Y), Z), T), Y), + modIntTotal(addInt(addInt(X, Z), T), Y), + ), + Lemma( + modIntTotal(subInt(addInt(modIntTotal(X, Y), Z), T), Y), + modIntTotal(subInt(addInt(X, Z), T), Y), + ), + Lemma( + modIntTotal(addInt(modIntTotal(X, Y), Z), Y), + modIntTotal(addInt(X, Z), Y), + ), + Lemma( + modIntTotal(addInt(X, modIntTotal(Z, Y)), Y), + modIntTotal(addInt(X, Z), Y), + ), + Lemma(ltInt(modIntTotal(X, Y), Y), TRUE, requires=gtInt(Y, v(0)), attributes=[smt_lemma]), + Lemma( + leInt(v(0), modIntTotal(X, Y)), + TRUE, + requires=gtInt(Y, v(0)), + attributes=[smt_lemma], + ), + Lemma( + modIntTotal(addInt(X, Y), Z), + modIntTotal(addInt(X, modInt(Y, Z)), Z), + requires=andBool([notBool(eqInt(Z, v(0))), geInt(Y, Z)]), + attributes=[concrete(Y, Z)], + ), + Lemma( + mlEquals(modIntTotal(addInt(X, Y), M), modIntTotal(addInt(X, Z), M)), + mlEquals(modIntTotal(Y, M), modIntTotal(Z, M)), + ), + Lemma( + modIntTotal(X, Y), + X, + requires=andBool([leInt(v(0), X), ltInt(X, Y)]), + attributes=[], + ), + ], + ), +] + + +def cleanup(s: str) -> str: + old_s = '' + while old_s != s: + old_s = s + s = s.replace(' \n', '\n') + + # This hack is needed because of https://github.com/runtimeverification/k-private-issues/issues/3 + s = s.replace('} ', '}:Bool ') + return s + + +def main(args: list[str]) -> None: + # with kbuild_semantics(KBUILD_DIR, config_file=KBUILD_ML_PATH) as tools: + # tools.printer + # return + + LEMMAS_FILE.write_text('```k\nmodule PROVEN-ELROND-LEMMAS\nendmodule\n```\n') + HELPER_LEMMAS_FILE.write_text('```k\nmodule HELPER-LEMMAS\nendmodule\n```\n') + + with kbuild_semantics(KBUILD_DIR, config_file=KBUILD_ML_PATH, target=LEMMA_PROOFS) as tools: + for lemma in LEMMAS: + definition = lemma.make_definition() + printed = tools.printer.pretty_print(definition) + proof_path = PROOFS_DIR / f'{lemma.name.lower()}.k' + proof_path.write_text(cleanup(printed)) + + lemmas_module = make_proven_lemmas_module(LEMMAS, tools.printer.definition) + printed_lemmas = tools.printer.pretty_print(lemmas_module) + LEMMAS_FILE.write_text('```k\n' + cleanup(printed_lemmas) + '\n```\n') + + helper_module = make_helper_lemmas_module(HELPER_LEMMAS) + printed_helper = tools.printer.pretty_print(helper_module) + HELPER_LEMMAS_FILE.write_text('```k\n' + cleanup(printed_helper) + '\n```\n') + + with kbuild_semantics(KBUILD_DIR, config_file=KBUILD_ML_PATH, target=LEMMA_PROOFS) as tools: + tools.printer + + +if __name__ == '__main__': + main(sys.argv[1:]) diff --git a/kmxwasm/src/kmxwasm/lemmas/lemmas.py b/kmxwasm/src/kmxwasm/lemmas/lemmas.py new file mode 100644 index 00000000..e6284676 --- /dev/null +++ b/kmxwasm/src/kmxwasm/lemmas/lemmas.py @@ -0,0 +1,141 @@ +from dataclasses import dataclass, field + +from pyk.kast.inner import KInner, KRewrite, KSequence, KVariable, Subst +from pyk.kast.manip import count_vars, free_vars +from pyk.kast.outer import KAtt, KClaim, KDefinition, KFlatModule, KImport, KRequire, KRule +from pyk.prelude.k import DOTS +from pyk.prelude.kbool import TRUE +from pyk.prelude.ml import mlAnd, mlEquals, mlImplies + +from .expression import commands_cell, instrs_cell, is_ml, k_cell, mandos_cell, proofOperationList +from .proof import proofEnd, runProof, runProofStep + +HELPER_MODULE = 'HELPER-LEMMAS' + + +@dataclass(frozen=True) +class Attribute: + name: str + value: str = '' + + def add_to_dict(self, d: dict[str, str]) -> None: + d[self.name] = self.value + + +smt_lemma = Attribute('smt-lemma') + + +def concrete(*args: KVariable) -> Attribute: + return Attribute('concrete', ', '.join(var.name for var in args)) + + +@dataclass(frozen=True) +class Lemma: + lhs: KInner + rhs: KInner + requires: KInner = TRUE + attributes: list[Attribute] = field(default_factory=list) + + def make_claim(self, proof: KInner) -> KClaim: + assert is_ml(self.lhs) == is_ml(self.rhs) + if is_ml(self.lhs): + ens = mlAnd([mlImplies(self.lhs, self.rhs), mlImplies(self.rhs, self.lhs)]) + else: + ens = mlEquals(self.lhs, self.rhs) + rewrite = mandos_cell( + k_cell(KSequence(KRewrite(runProof(proof), proofEnd), DOTS)), + commands_cell(KSequence()), + instrs_cell(KSequence()), + DOTS, + ) + return KClaim(body=rewrite, requires=self.requires, ensures=ens) + + def make_rule(self, kast_defn: KDefinition) -> KRule: + # TODO: consider using or refactoring pyx.cterm.build_rule + lhs_vars = free_vars(self.lhs) + rhs_vars = free_vars(self.rhs) + var_occurrences = count_vars(mlAnd([KRewrite(self.lhs, self.rhs), self.requires])) + v_subst: dict[str, KVariable] = {} + vremap_subst: dict[str, KVariable] = {} + for v in var_occurrences: + new_v = v + if var_occurrences[v] == 1: + new_v = '_' + new_v + if v in rhs_vars and v not in lhs_vars: + new_v = '?' + new_v + if new_v != v: + v_subst[v] = KVariable(new_v) + vremap_subst[new_v] = KVariable(v) + + lhs = Subst(v_subst)(self.lhs) + rhs = self.rhs # apply_existential_substitutions(Subst(v_subst)(self.rhs)) + + lhs = kast_defn.sort_vars(lhs) + rhs = kast_defn.sort_vars(rhs) + + atts = {'simplification': ''} + for att in self.attributes: + att.add_to_dict(atts) + return KRule(body=KRewrite(lhs, rhs), requires=self.requires, att=KAtt(atts)) + + +@dataclass(frozen=True) +class LemmaProof: + name: str + proof: list[KInner] + lemmas: list[Lemma] + + def make_claim_module(self) -> KFlatModule: + proof = proofOperationList(self.proof) + claims = [l.make_claim(proof) for l in self.lemmas] + imports = [ + KImport(name='ELROND-WASM-LEMMA-PROOFS', public=False), + KImport(name=HELPER_MODULE, public=False), + ] + return KFlatModule(name=self.name.upper(), sentences=claims, imports=imports) + + def make_definition(self) -> KDefinition: + return KDefinition( + main_module_name=self.name.upper(), + all_modules=[self.make_claim_module()], + requires=[KRequire('helper-lemmas.md')], + ) + + def make_rules(self, kast_defn: KDefinition) -> list[KRule]: + return [l.make_rule(kast_defn) for l in self.lemmas] + + +def make_proven_lemmas_module(lemma_proofs: list[LemmaProof], kast_defn: KDefinition) -> KFlatModule: + rules = [r for lemma in lemma_proofs for r in lemma.make_rules(kast_defn)] + imports = [ + KImport(name='BOOL', public=False), + KImport(name='CEILS', public=False), + KImport(name='ELROND', public=False), + KImport(name='INT', public=False), + KImport(name='LIST', public=False), + ] + return KFlatModule(name='PROVEN-ELROND-LEMMAS', sentences=rules, imports=imports) + + +@dataclass(frozen=True) +class HelperLemma: + proof: KInner + requires: KInner = TRUE + ensures: KInner = TRUE + + def make_claim(self) -> KClaim: + rewrite = mandos_cell( + k_cell(KSequence(KRewrite(runProofStep(self.proof), proofEnd), DOTS)), + commands_cell(KSequence()), + instrs_cell(KSequence()), + DOTS, + ) + return KClaim(body=rewrite, requires=self.requires, ensures=self.ensures) + + +def make_helper_lemmas_module(lemmas: list[HelperLemma]) -> KFlatModule: + claims = [l.make_claim() for l in lemmas] + imports = [ + KImport(name='ELROND-WASM-LEMMA-PROOFS', public=False), + ] + return KFlatModule(name=HELPER_MODULE, sentences=claims, imports=imports) diff --git a/kmxwasm/src/kmxwasm/lemmas/proof.py b/kmxwasm/src/kmxwasm/lemmas/proof.py new file mode 100644 index 00000000..3d03f467 --- /dev/null +++ b/kmxwasm/src/kmxwasm/lemmas/proof.py @@ -0,0 +1,35 @@ +from typing import Iterable + +from pyk.kast.inner import KApply + +from .expression import KInner, KVariable, proofOperationList + + +def runProof(proof: KInner) -> KApply: # noqa: N802 + return KApply('runProof', proof) + + +def runProofStep(step: KInner) -> KApply: # noqa: N802 + return KApply('runProofStep', step) + + +proofNop = KApply('proofNop') # noqa: N816 +proofEnd = KApply('proofEnd') # noqa: N816 + + +def proofVar(v: KVariable) -> KApply: # noqa: N802 + return KApply('proofVar', v) + + +def proofSplit( # noqa: N802 + condition: KInner, when_true: Iterable[KInner] = (), when_false: Iterable[KInner] = () +) -> KApply: + return KApply('proofSplit', condition, proofOperationList(when_true), proofOperationList(when_false)) + + +def destructList(list: KInner, with_element: KInner, when_empty: KInner) -> KApply: # noqa: N802 + return KApply('destructList', list, with_element, when_empty) + + +def basicListInduction(value: KInner) -> KApply: # noqa: N802 + return KApply('basicListInduction', value) From 0eef9ee2066ab639e7d4eddd7b456a493ecb36d2 Mon Sep 17 00:00:00 2001 From: Virgil Date: Wed, 13 Sep 2023 23:53:13 +0300 Subject: [PATCH 02/15] Run json claims --- kmxwasm/src/kmxwasm/property.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kmxwasm/src/kmxwasm/property.py b/kmxwasm/src/kmxwasm/property.py index f9301c46..d9fe0641 100644 --- a/kmxwasm/src/kmxwasm/property.py +++ b/kmxwasm/src/kmxwasm/property.py @@ -5,9 +5,11 @@ from dataclasses import dataclass from pathlib import Path +from pyk.kast.inner import KApply from pyk.kcfg import KCFG from pyk.kcfg.show import KCFGShow from pyk.kore.rpc import KoreClientError +from pyk.prelude.utils import token from .build import HASKELL, LLVM, kbuild_semantics from .json import load_json_kcfg, load_json_kclaim, write_kcfg_json @@ -63,6 +65,9 @@ def run(self) -> None: claim = claims[0] else: claim = load_json_kclaim(self.claim_path) + # Fix the claim, it's not clear why these cells are being + # removed when generating claims. + claim = claim.let(body = KApply('', [claim.body, KApply('', [token(0)])])) kcfg: KCFG | None = None if self.restart: From 092f78f2a9315282b24c89af5130ac6ea8af71d7 Mon Sep 17 00:00:00 2001 From: Virgil Date: Thu, 14 Sep 2023 02:58:12 +0300 Subject: [PATCH 03/15] Make json claims work --- kmxwasm/src/kmxwasm/ast/elrond.py | 4 ++++ kmxwasm/src/kmxwasm/running.py | 8 +++----- kmxwasm/src/kmxwasm/wasm_krun_initializer.py | 3 +++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/kmxwasm/src/kmxwasm/ast/elrond.py b/kmxwasm/src/kmxwasm/ast/elrond.py index c6aa4a88..987b8d13 100644 --- a/kmxwasm/src/kmxwasm/ast/elrond.py +++ b/kmxwasm/src/kmxwasm/ast/elrond.py @@ -123,3 +123,7 @@ def set_big_int_heap_cell_content(root: KInner, replacement: KInner) -> KInner: def set_buffer_heap_cell_content(root: KInner, replacement: KInner) -> KInner: return set_single_argument_kapply_contents(root, '', replacement) + + +def set_exit_code_cell_content(root: KInner, replacement: KInner) -> KInner: + return set_single_argument_kapply_contents(root, '', replacement) diff --git a/kmxwasm/src/kmxwasm/running.py b/kmxwasm/src/kmxwasm/running.py index 725533d8..9f4d96e6 100644 --- a/kmxwasm/src/kmxwasm/running.py +++ b/kmxwasm/src/kmxwasm/running.py @@ -52,11 +52,9 @@ def run_claim( assert len(roots) in [1, 2] if len(roots) == 1: init_node_id = roots[0].id - # TODO: Is this the right way to get the destination node? - # Should I take the covered node, or a covered's node destination? - covers = kcfg.covered - assert len(covers) == 1 - target_node_id = covers[0].id + covers = set([cover.target.id for cover in kcfg.covers()]) + assert len(covers) == 1, covers + target_node_id = covers.pop() else: if roots[0] < roots[1]: init_node_id = roots[0].id diff --git a/kmxwasm/src/kmxwasm/wasm_krun_initializer.py b/kmxwasm/src/kmxwasm/wasm_krun_initializer.py index 0176abe4..84a615d7 100644 --- a/kmxwasm/src/kmxwasm/wasm_krun_initializer.py +++ b/kmxwasm/src/kmxwasm/wasm_krun_initializer.py @@ -19,6 +19,7 @@ set_call_args_cell_content, set_call_stack_cell_content, set_commands_cell_contents, + set_exit_code_cell_content, set_generated_counter_cell_content, set_interim_states_cell_content, set_k_cell_contents, @@ -54,6 +55,8 @@ def initialize(self, kcfg: KCFG, start_node: KCFG.Node) -> None: krun_cell = set_call_args_cell_content(krun_cell, listBytes([])) krun_cell = set_big_int_heap_cell_content(krun_cell, map_empty()) krun_cell = set_buffer_heap_cell_content(krun_cell, mapIntToBytes({})) + krun_cell = set_exit_code_cell_content(krun_cell, token(0)) + krun_cell = replace_wasm_cell(krun_cell, self.__first_wasm_cell) # TODO: Figure out if it's possible to cache the initialization result. From 05a36b739987ac350610c35c32e7d8984f7c3cd3 Mon Sep 17 00:00:00 2001 From: Virgil Date: Fri, 15 Sep 2023 17:22:11 +0300 Subject: [PATCH 04/15] Small fixes --- kmxwasm/k-src/elrond-lemmas.md | 5 +++- kmxwasm/src/kmxwasm/property.py | 43 +++++++++++++++++++++------------ kmxwasm/src/kmxwasm/running.py | 2 +- 3 files changed, 33 insertions(+), 17 deletions(-) diff --git a/kmxwasm/k-src/elrond-lemmas.md b/kmxwasm/k-src/elrond-lemmas.md index 28c8dcdc..22ec4e94 100644 --- a/kmxwasm/k-src/elrond-lemmas.md +++ b/kmxwasm/k-src/elrond-lemmas.md @@ -29,9 +29,12 @@ module ELROND-LEMMAS requires 0 <=Int Value [simplification] - rule { b"" #Equals Int2Bytes(Len:Int, _Value:Int, _E:Endianness)}:Bool + rule { b"" #Equals Int2Bytes(Len:Int, _Value:Int, _E:Endianness) }:Bool => {0 #Equals Len} [simplification] + rule { b"" #Equals Int2Bytes(Value:Int, _E:Endianness, _S:Signedness) }:Bool + => {0 #Equals Value} + [simplification] rule 0 <=Int A +Int B => true requires 0 <=Int A andBool 0 <=Int B diff --git a/kmxwasm/src/kmxwasm/property.py b/kmxwasm/src/kmxwasm/property.py index d9fe0641..182d4451 100644 --- a/kmxwasm/src/kmxwasm/property.py +++ b/kmxwasm/src/kmxwasm/property.py @@ -18,10 +18,6 @@ from .running import RunException, Stuck, Success, run_claim, split_edge from .wasm_krun_initializer import WasmKrunInitializer -# TODO: Make this work outside of github projects. -DEBUG_KCFG = ROOT / '.property' / 'kcfg.json' - - sys.setrecursionlimit(4000) @@ -51,6 +47,7 @@ class RunClaim(Action): remove: list[int] run_node_id: int | None depth: int + kcfg_path: Path def run(self) -> None: with ( @@ -67,11 +64,11 @@ def run(self) -> None: claim = load_json_kclaim(self.claim_path) # Fix the claim, it's not clear why these cells are being # removed when generating claims. - claim = claim.let(body = KApply('', [claim.body, KApply('', [token(0)])])) + claim = claim.let(body=KApply('', [claim.body, KApply('', [token(0)])])) kcfg: KCFG | None = None if self.restart: - kcfg = load_json_kcfg(DEBUG_KCFG) + kcfg = load_json_kcfg(self.kcfg_path) for node_id in self.remove: kcfg.remove_node(node_id) result = run_claim( @@ -82,7 +79,7 @@ def run(self) -> None: run_id=self.run_node_id, depth=self.depth, ) - write_kcfg_json(result.kcfg, DEBUG_KCFG) + write_kcfg_json(result.kcfg, self.kcfg_path) if isinstance(result, Stuck): stuck_node = result.kcfg.get_node(result.stuck_node_id) @@ -135,13 +132,14 @@ def run(self) -> None: @dataclass(frozen=True) class BisectAfter(Action): node_id: int + kcfg_path: Path def run(self) -> None: with kbuild_semantics(output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL) as tools: - kcfg = load_json_kcfg(DEBUG_KCFG) + kcfg = load_json_kcfg(self.kcfg_path) result = split_edge(tools, kcfg, start_node_id=self.node_id) - write_kcfg_json(result.kcfg, DEBUG_KCFG) + write_kcfg_json(result.kcfg, self.kcfg_path) if isinstance(result, Success): print('Success') @@ -172,10 +170,11 @@ def run(self) -> None: @dataclass(frozen=True) class ShowNode(Action): node_id: int + kcfg_path: Path def run(self) -> None: with kbuild_semantics(output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL) as tools: - kcfg = load_json_kcfg(DEBUG_KCFG) + kcfg = load_json_kcfg(self.kcfg_path) print('Printing: ', self.node_id) node = kcfg.get_node(self.node_id) if node: @@ -186,9 +185,11 @@ def run(self) -> None: @dataclass(frozen=True) class Tree(Action): + kcfg_path: Path + def run(self) -> None: with kbuild_semantics(output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL) as tools: - kcfg = load_json_kcfg(DEBUG_KCFG) + kcfg = load_json_kcfg(self.kcfg_path) show = KCFGShow(tools.printer) for line in show.pretty(kcfg): print(line) @@ -260,13 +261,19 @@ def read_flags() -> Action: required=False, help='File containing the claim to verify.', ) + parser.add_argument( + '--kcfg', + required=False, + default=str(ROOT / '.property' / 'kcfg.json'), + help='File in which to save the intermediate computing results.', + ) args = parser.parse_args() if args.show_node is not None: - return ShowNode(args.show_node) + return ShowNode(args.show_node, Path(args.kcfg)) if args.tree: - return Tree() + return Tree(Path(args.kcfg)) if args.bisect_after: - return BisectAfter(args.bisect_after) + return BisectAfter(args.bisect_after, Path(args.kcfg)) if args.claimfile is None: usage_error() @@ -284,7 +291,13 @@ def read_flags() -> Action: if args.run_node != -1: run = args.run_node return RunClaim( - claim_path=claim_path, is_k=args.is_k, restart=args.restart, remove=to_remove, run_node_id=run, depth=args.step + claim_path=claim_path, + is_k=args.is_k, + restart=args.restart, + remove=to_remove, + run_node_id=run, + depth=args.step, + kcfg_path=Path(args.kcfg), ) diff --git a/kmxwasm/src/kmxwasm/running.py b/kmxwasm/src/kmxwasm/running.py index 9f4d96e6..c76898eb 100644 --- a/kmxwasm/src/kmxwasm/running.py +++ b/kmxwasm/src/kmxwasm/running.py @@ -52,7 +52,7 @@ def run_claim( assert len(roots) in [1, 2] if len(roots) == 1: init_node_id = roots[0].id - covers = set([cover.target.id for cover in kcfg.covers()]) + covers = {cover.target.id for cover in kcfg.covers()} assert len(covers) == 1, covers target_node_id = covers.pop() else: From 560ce60a8350e7797396b166007b8f2476a722b4 Mon Sep 17 00:00:00 2001 From: Virgil Date: Wed, 20 Sep 2023 11:30:57 +0300 Subject: [PATCH 05/15] Multisig improvements --- kmxwasm/src/kmxwasm/ast/elrond.py | 78 +++++++++++++++++++-- kmxwasm/src/kmxwasm/ast/generic.py | 84 ++++++++++++++++++++++- kmxwasm/src/kmxwasm/build.py | 7 +- kmxwasm/src/kmxwasm/cell_abstracter.py | 71 ++++++++++++++++++++ kmxwasm/src/kmxwasm/implication.py | 33 +++++++++ kmxwasm/src/kmxwasm/property.py | 9 +-- kmxwasm/src/kmxwasm/running.py | 93 +++++++++++++++++++++++--- kmxwasm/src/kmxwasm/tools.py | 30 ++++++--- 8 files changed, 372 insertions(+), 33 deletions(-) create mode 100644 kmxwasm/src/kmxwasm/cell_abstracter.py create mode 100644 kmxwasm/src/kmxwasm/implication.py diff --git a/kmxwasm/src/kmxwasm/ast/elrond.py b/kmxwasm/src/kmxwasm/ast/elrond.py index 987b8d13..96bfb696 100644 --- a/kmxwasm/src/kmxwasm/ast/elrond.py +++ b/kmxwasm/src/kmxwasm/ast/elrond.py @@ -3,14 +3,23 @@ from pyk.kast.inner import KApply, KInner, KSequence, collect from .collections import cell_map, full_list, k_map, simple_list -from .generic import replace_with_path, set_ksequence_cell_contents, set_single_argument_kapply_contents +from .generic import get_with_path, replace_with_path, set_ksequence_cell_contents, set_single_argument_kapply_contents COMMANDS_CELL_NAME = '' +INSTRS_CELL_NAME = '' +K_CELL_NAME = '' WASM_CELL_NAME = '' CONTRACT_MOD_IDX_CELL_NAME = '' -CALL_STATE_PATH = ['', '', '', '', ''] +MANDOS_CELL_PATH = ['', ''] +NODE_CELL_PATH = MANDOS_CELL_PATH + ['', ''] +CALL_STATE_PATH = NODE_CELL_PATH + [''] +CALL_STACK_PATH = NODE_CELL_PATH + [''] + +COMMANDS_CELL_PATH = NODE_CELL_PATH + [COMMANDS_CELL_NAME] +K_CELL_PATH = MANDOS_CELL_PATH + [K_CELL_NAME] WASM_CELL_PATH = CALL_STATE_PATH + [WASM_CELL_NAME] +INSTRS_CELL_PATH = WASM_CELL_PATH + [INSTRS_CELL_NAME] CONTRACT_MOD_IDX_CELL_PATH = CALL_STATE_PATH + [CONTRACT_MOD_IDX_CELL_NAME] @@ -47,8 +56,24 @@ def commands_cell(node: KInner) -> None: return nodes[0] +def get_k_cell(root: KInner) -> KApply: + result = get_with_path(root, K_CELL_PATH) + assert isinstance(result, KApply) + return result + + +def k_cell_contents(root: KInner) -> KSequence: + commands = get_k_cell(root) + assert len(commands.args) == 1 + seq = commands.args[0] + assert isinstance(seq, KSequence) + return seq + + def get_commands_cell(root: KInner) -> KApply: - return find_single_named_node(root, COMMANDS_CELL_NAME) + result = get_with_path(root, COMMANDS_CELL_PATH) + assert isinstance(result, KApply) + return result def commands_cell_contents(root: KInner) -> KSequence: @@ -59,14 +84,55 @@ def commands_cell_contents(root: KInner) -> KSequence: return seq -def command_is_new_wasm_instance(root: KInner) -> bool: +def get_first_command_name(root: KInner) -> str | None: seq = commands_cell_contents(root) if not seq.items: - return False + return None + first = seq.items[0] + if not isinstance(first, KApply): + return None + return first.label.name + + +def get_instrs_cell(root: KInner) -> KApply: + result = get_with_path(root, INSTRS_CELL_PATH) + assert isinstance(result, KApply) + return result + + +def instrs_cell_contents(root: KInner) -> KSequence: + instrs = get_instrs_cell(root) + assert len(instrs.args) == 1 + seq = instrs.args[0] + assert isinstance(seq, KSequence) + return seq + + +def get_first_instr_name(root: KInner) -> str | None: + seq = instrs_cell_contents(root) + if not seq.items: + return None first = seq.items[0] if not isinstance(first, KApply): + return None + return first.label.name + + +def command_is_new_wasm_instance(root: KInner) -> bool: + command = get_first_command_name(root) + if not command: + return False + return command == 'newWasmInstance' + + +def cfg_changes_call_stack(root: KInner) -> bool: + command = get_first_command_name(root) + if command in ['pushCallState', 'popCallState', 'dropCallState']: + return True + instr = get_first_instr_name(root) + if not instr: return False - return first.label.name == 'newWasmInstance' + return instr == 'endFoundryImmediately' def set_commands_cell_contents(root: KInner, contents: KSequence) -> KInner: diff --git a/kmxwasm/src/kmxwasm/ast/generic.py b/kmxwasm/src/kmxwasm/ast/generic.py index c658a30f..6072d450 100644 --- a/kmxwasm/src/kmxwasm/ast/generic.py +++ b/kmxwasm/src/kmxwasm/ast/generic.py @@ -1,6 +1,27 @@ from pyk.kast.inner import KApply, KInner, KSequence, bottom_up +def get_single_argument_kapply_contents(root: KInner, name: str) -> KInner | None: + result: KInner | None = None + + def find_contents(node: KInner) -> KInner: + if not isinstance(node, KApply): + return node + if node.label.name != name: + return node + + nonlocal result + if result: + raise ValueError(f'Expected at most one node named {name}, found more.') + if len(node.args) != 1: + raise ValueError(f'Expected node {name} to heve exactly 1 child, found {len(node.args)}.') + result = node.args[0] + return node + + bottom_up(find_contents, root) + return result + + def set_single_argument_kapply_contents(root: KInner, name: str, contents: KInner) -> KInner: already_replaced = False @@ -11,10 +32,12 @@ def replace_contents(node: KInner) -> KInner: return node nonlocal already_replaced - assert not already_replaced + if already_replaced: + raise ValueError(f'Expected at most one node named {name}, found more.') already_replaced = True - assert len(node.args) == 1 + if len(node.args) != 1: + raise ValueError(f'Expected node {name} to heve exactly 1 child, found {len(node.args)}.') return node.let(args=[contents]) return bottom_up(replace_contents, root) @@ -48,3 +71,60 @@ def replace_with_path(root: KInner, path: list[str], replacement: KInner) -> KIn if not had_match: raise ValueError(f'Path component not found: {path[0]!r}') return root.let(args=new_args) + + +def replace_contents_with_path(root: KInner, path: list[str], replacement: KInner) -> KInner: + assert path + assert isinstance(root, KApply) + assert root.args + had_match = False + new_args = [] + for arg in root.args: + if not isinstance(arg, KApply): + new_args.append(arg) + continue + if not arg.label.name == path[0]: + new_args.append(arg) + continue + if had_match: + raise ValueError(f'Path component found twice: {path[0]!r}') + assert not had_match + had_match = True + if len(path) > 1: + new_args.append(replace_contents_with_path(arg, path[1:], replacement)) + else: + if not arg.arity == 1: + raise ValueError(f'Expected {path[0]!r} to have exactly one child, got {arg.arity}.') + new_args.append(arg.let(args=[replacement])) + if not had_match: + raise ValueError(f'Path component not found: {path[0]!r}') + return root.let(args=new_args) + + +def get_with_path(root: KInner, path: list[str]) -> KInner: + assert path + for element in path: + assert isinstance(root, KApply) + assert root.args + found_arg: KInner | None = None + for arg in root.args: + if not isinstance(arg, KApply): + continue + if not arg.label.name == element: + continue + if found_arg: + raise ValueError(f'Path component found twice: {element!r}') + found_arg = arg + if not found_arg: + raise ValueError(f'Path component not found: {found_arg!r}') + root = found_arg + return root + + +def get_single_argument_kapply_contents_path(root: KInner, path: list[str]) -> KInner: + node = get_with_path(root, path) + if not isinstance(node, KApply): + raise ValueError(f'Expected KApply for {path}') + if node.arity != 1: + raise ValueError(f'Expected {path} to have exactly one child, got {node.arity}.') + return node.args[0] diff --git a/kmxwasm/src/kmxwasm/build.py b/kmxwasm/src/kmxwasm/build.py index f8b6f7af..d635e178 100644 --- a/kmxwasm/src/kmxwasm/build.py +++ b/kmxwasm/src/kmxwasm/build.py @@ -17,5 +17,8 @@ def kbuild_semantics(output_dir: Path, config_file: Path, target: str) -> Tools: package = Package.create(config_file) start_time = time.time() kbuild.kompile(package, target) - print('Kompiling', target, ':', time.time() - start_time, 'sec') - return Tools(kbuild.definition_dir(package, target)) + mid_time = time.time() + print('Kompiling', target, ':', mid_time - start_time, 'sec') + kbuild.kompile(package, LLVM) + print('Kompiling', LLVM, ':', time.time() - mid_time, 'sec') + return Tools(kbuild.definition_dir(package, target), kbuild.definition_dir(package, LLVM)) diff --git a/kmxwasm/src/kmxwasm/cell_abstracter.py b/kmxwasm/src/kmxwasm/cell_abstracter.py new file mode 100644 index 00000000..309555b0 --- /dev/null +++ b/kmxwasm/src/kmxwasm/cell_abstracter.py @@ -0,0 +1,71 @@ +from pyk.cterm import CTerm +from pyk.kast.inner import KInner, KSort, KVariable +from pyk.kcfg import KCFG +from pyk.kcfg.kcfg import NodeIdLike + +from .ast.generic import get_single_argument_kapply_contents_path, replace_contents_with_path + + +class CellAbstracter: + def __init__(self, cell_path: list[str], variable_root: str, variable_sort: KSort): + self.__cell_path = cell_path + self.__variable_root = variable_root + self.__variable_sort = variable_sort + self.__variable_index = 0 + self.__last_variable: KVariable | None = None + self.__last_actual_value: KInner | None = None + self.__should_be_concrete: set[NodeIdLike] = set() + + def abstract_node(self, kcfg: KCFG, node_id: NodeIdLike) -> None: + node = kcfg.node(node_id) + new_variable = KVariable(f'{self.__variable_root}_{self.__variable_index}', self.__variable_sort) + self.__variable_index += 1 + + self.__last_variable = new_variable + self.__last_actual_value = get_single_argument_kapply_contents_path(node.cterm.config, self.__cell_path) + + self.__new_node_replace(kcfg, node, new_variable) + + if node_id in self.__should_be_concrete: + self.__should_be_concrete.remove(node_id) + + def concretize_kcfg(self, kcfg: KCFG, with_variable: set[NodeIdLike]) -> None: + for node in kcfg.nodes: + if node.id in with_variable: + continue + if node in self.__should_be_concrete: + continue + self.__concretize_node(kcfg, node.id, allow_missing_variable=True) + for node_id in with_variable: + self.__concretize_node(kcfg, node_id, allow_missing_variable=False) + + self.__last_variable = None + self.__last_actual_value = None + + def __concretize_node(self, kcfg: KCFG, node_id: NodeIdLike, allow_missing_variable: bool) -> None: + assert self.__last_actual_value + assert self.__last_variable + + current_node = kcfg.node(node_id) + assert current_node + variable = get_single_argument_kapply_contents_path(root=current_node.cterm.config, path=self.__cell_path) + if not variable: + raise ValueError(f'Could not find {self.__cell_path}; node_id={node_id}.') + if not isinstance(variable, KVariable): + if allow_missing_variable: + self.__should_be_concrete.add(node_id) + return + raise ValueError(f'Expected to find a variable in {self.__cell_path}, found {variable}; node_id={node_id}.') + if variable != self.__last_variable: + if allow_missing_variable: + self.__should_be_concrete.add(node_id) + return + raise ValueError(f'Variable {variable} not found in the generated variables dict; node_id={node_id}.') + + self.__new_node_replace(kcfg, current_node, self.__last_actual_value) + self.__should_be_concrete.add(node_id) + + def __new_node_replace(self, kcfg: KCFG, node: KCFG.Node, contents: KInner) -> None: + new_config = replace_contents_with_path(root=node.cterm.config, path=self.__cell_path, replacement=contents) + new_cterm = CTerm(new_config, node.cterm.constraints) + kcfg.replace_node(node.id, new_cterm) diff --git a/kmxwasm/src/kmxwasm/implication.py b/kmxwasm/src/kmxwasm/implication.py new file mode 100644 index 00000000..dfe5bc4d --- /dev/null +++ b/kmxwasm/src/kmxwasm/implication.py @@ -0,0 +1,33 @@ +from pyk.kast.inner import KApply, KInner, KSequence + +from .ast.elrond import commands_cell_contents, instrs_cell_contents, k_cell_contents + + +def quick_ksequence_implication_check(antecedent: KSequence, consequent: KSequence) -> bool: + if antecedent.arity == 0: + if consequent.arity == 0: + return True + if isinstance(consequent.items[0], KApply): + return False + return True + if consequent.arity == 0: + if isinstance(antecedent.items[0], KApply): + return False + return True + firsta = antecedent.items[0] + firstc = consequent.items[0] + if not isinstance(firsta, KApply): + return True + if not isinstance(firstc, KApply): + return True + return firsta.label.name == firstc.label.name + + +def quick_implication_check(antecedent: KInner, consequent: KInner) -> bool: + if not quick_ksequence_implication_check(k_cell_contents(antecedent), k_cell_contents(consequent)): + return False + if not quick_ksequence_implication_check(commands_cell_contents(antecedent), commands_cell_contents(consequent)): + return False + if not quick_ksequence_implication_check(instrs_cell_contents(antecedent), instrs_cell_contents(consequent)): + return False + return True diff --git a/kmxwasm/src/kmxwasm/property.py b/kmxwasm/src/kmxwasm/property.py index 182d4451..63e09d3f 100644 --- a/kmxwasm/src/kmxwasm/property.py +++ b/kmxwasm/src/kmxwasm/property.py @@ -11,7 +11,7 @@ from pyk.kore.rpc import KoreClientError from pyk.prelude.utils import token -from .build import HASKELL, LLVM, kbuild_semantics +from .build import HASKELL, kbuild_semantics from .json import load_json_kcfg, load_json_kclaim, write_kcfg_json from .paths import KBUILD_DIR, KBUILD_ML_PATH, ROOT from .printers import print_node @@ -50,10 +50,7 @@ class RunClaim(Action): kcfg_path: Path def run(self) -> None: - with ( - kbuild_semantics(output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL) as tools, - kbuild_semantics(output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=LLVM) as llvm_tools, - ): + with kbuild_semantics(output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL) as tools: if self.is_k: claims = tools.kprove.get_claims(self.claim_path) if len(claims) != 1: @@ -73,7 +70,7 @@ def run(self) -> None: kcfg.remove_node(node_id) result = run_claim( tools, - WasmKrunInitializer(llvm_tools), + WasmKrunInitializer(tools), claim=claim, restart_kcfg=kcfg, run_id=self.run_node_id, diff --git a/kmxwasm/src/kmxwasm/running.py b/kmxwasm/src/kmxwasm/running.py index c76898eb..9a8a18b3 100644 --- a/kmxwasm/src/kmxwasm/running.py +++ b/kmxwasm/src/kmxwasm/running.py @@ -6,8 +6,11 @@ from pyk.kcfg.exploration import KCFGExploration from pyk.kcfg.kcfg import NodeIdLike from pyk.kore.rpc import LogEntry +from pyk.prelude.collections import LIST -from .ast.elrond import command_is_new_wasm_instance +from .ast.elrond import CALL_STACK_PATH, cfg_changes_call_stack, command_is_new_wasm_instance, get_first_instr_name +from .cell_abstracter import CellAbstracter +from .implication import quick_implication_check from .printers import print_node from .tools import Tools from .wasm_krun_initializer import WasmKrunInitializer @@ -35,6 +38,15 @@ class RunException(RunClaimResult): last_processed_node: NodeIdLike +class Timer: + def __init__(self, message: str) -> None: + self.__message = message + self.__start = time.time() + + def measure(self) -> None: + print(self.__message, time.time() - self.__start, 'sec.', flush=True) + + def run_claim( tools: Tools, wasm_initializer: WasmKrunInitializer, @@ -66,11 +78,16 @@ def run_claim( (kcfg, init_node_id, target_node_id) = KCFG.from_claim(tools.printer.definition, claim) kcfg_exploration = KCFGExploration(kcfg) + abstract_call_stack = CellAbstracter( + cell_path=CALL_STACK_PATH, variable_root='AbstractCallStack', variable_sort=LIST + ) try: processed: set[NodeIdLike] = {target_node_id} non_final: set[NodeIdLike] = {target_node_id} to_process: list[KCFG.Node] = expandable_leaves(kcfg, target_node_id) + for n in to_process: + non_final.add(n.id) if run_id is not None: to_process = [kcfg.node(run_id)] final_node = kcfg.node(target_node_id) @@ -81,9 +98,11 @@ def run_claim( while to_process: node = to_process.pop() processed.add(node.id) - last_processed_node = node.id current_time = time.time() - print('Processing', node.id, 'previous = ', current_time - last_time, 'sec', flush=True) + if last_processed_node != -1: + print('Node', last_processed_node, 'took', current_time - last_time, 'sec.') + print('Processing', node.id, flush=True) + last_processed_node = node.id last_time = current_time assert len(list(kcfg.edges(source_id=node.id))) == 0 @@ -95,21 +114,69 @@ def run_claim( try: if command_is_new_wasm_instance(node.cterm.config): print('is new wasm') + t = Timer(' Initialize wasm') wasm_initializer.initialize(kcfg=kcfg, start_node=node) - else: + t.measure() + elif cfg_changes_call_stack(node.cterm.config): + print('changes call stack') + t = Timer(' Run call stack change') tools.explorer.extend( kcfg_exploration=kcfg_exploration, node=node, logs=logs, - execute_depth=depth, - cut_point_rules=['ELROND-CONFIG.newWasmInstance'], + execute_depth=1, + cut_point_rules=[ + # This runs with the LLVM backend + 'ELROND-CONFIG.newWasmInstance', + # These change the call stack + 'ELROND-NODE.pushCallState', + 'ELROND-NODE.popCallState', + 'ELROND-NODE.dropCallState', + 'FOUNDRY.endFoundryImmediately', + ], ) - for node in kcfg.leaves: - if node.id not in non_final: - non_final.add(node.id) + t.measure() + else: + t = Timer(' Abstract') + abstract_call_stack.abstract_node(kcfg, node.id) + t.measure() + + try: + t = Timer(' Extend') + node = kcfg.node(node.id) + print(f' First instr: {get_first_instr_name(node.cterm.config)}', flush=True) + tools.explorer.extend( + kcfg_exploration=kcfg_exploration, + node=node, + logs=logs, + execute_depth=depth, + cut_point_rules=[ + # This runs with the LLVM backend + 'ELROND-CONFIG.newWasmInstance', + # These change the call stack + 'ELROND-NODE.pushCallState', + 'ELROND-NODE.popCallState', + 'ELROND-NODE.dropCallState', + 'FOUNDRY.endFoundryImmediately', + ], + ) + t.measure() + finally: + t = Timer(' Concretize') + leaves = set(new_leaves(kcfg, non_final, final_node.id)) + leaves.add(node.id) + t.measure() + abstract_call_stack.concretize_kcfg(kcfg, leaves) + t.measure() + t = Timer(' Check final') + for node_id in new_leaves(kcfg, non_final, final_node.id): + non_final.add(node_id) + node = kcfg.node(node_id) + if quick_implication_check(node.cterm.config, final_node.cterm.config): csubst = tools.explorer.cterm_implies(node.cterm, final_node.cterm) if csubst: kcfg.create_cover(node.id, final_node.id, csubst) + t.measure() except ValueError: if not kcfg.stuck: raise @@ -117,11 +184,19 @@ def run_claim( return Stuck(kcfg, stuck_node_id=node.id, final_node_id=final_node.id) to_process = expandable_leaves(kcfg, target_node_id) + if last_processed_node != -1: + print('Node', last_processed_node, 'took', current_time - last_time, 'sec.') return Success(kcfg) except BaseException as e: + if last_processed_node != -1: + print('Node', last_processed_node, 'took', current_time - last_time, 'sec.') return RunException(kcfg, e, last_processed_node) +def new_leaves(kcfg: KCFG, existing: set[NodeIdLike], final: NodeIdLike) -> list[NodeIdLike]: + return [node.id for node in kcfg.leaves if node.id not in existing and node.id != final] + + def split_edge(tools: Tools, restart_kcfg: KCFG, start_node_id: int) -> RunClaimResult: target_node_id: NodeIdLike = -1 diff --git a/kmxwasm/src/kmxwasm/tools.py b/kmxwasm/src/kmxwasm/tools.py index 784b39a4..4b8cae7a 100644 --- a/kmxwasm/src/kmxwasm/tools.py +++ b/kmxwasm/src/kmxwasm/tools.py @@ -7,7 +7,7 @@ from pyk.kast.kast import kast_term from pyk.kast.pretty import SymbolTable from pyk.kcfg.explore import KCFGExplore -from pyk.kore.rpc import KoreClient, KoreServer +from pyk.kore.rpc import BoosterServer, KoreClient, KoreServer from pyk.ktool.kprint import KPrint from pyk.ktool.kprove import KProve from pyk.ktool.krun import KRunOutput, _krun @@ -15,8 +15,9 @@ class Tools: - def __init__(self, definition_dir: Path) -> None: + def __init__(self, definition_dir: Path, llvm_definition_dir: Path | None) -> None: self.__definition_dir = definition_dir + self.__llvm_definition_dir = llvm_definition_dir self.__kprove: Optional[KProve] = None self.__explorer: Optional[KCFGExplore] = None self.__kore_server: Optional[KoreServer] = None @@ -49,11 +50,20 @@ def explorer(self) -> KCFGExplore: if not self.__kore_server: if self.__kore_client: raise RuntimeError('Non-null KoreClient with null KoreServer.') - self.__kore_server = KoreServer( - self.__definition_dir, - self.printer.main_module, - # port=39425, - ) + if self.__llvm_definition_dir and False: + self.__kore_server = BoosterServer( + self.__definition_dir, + self.__llvm_definition_dir, + self.printer.main_module, + command='booster-rpc' + # port=39425, + ) + else: + self.__kore_server = KoreServer( + self.__definition_dir, + self.printer.main_module, + # port=39425, + ) if not self.__kore_client: self.__kore_client = KoreClient('localhost', self.__kore_server.port) @@ -66,9 +76,13 @@ def krun(self, cfg: KInner) -> KInner: pattern = self.printer.kast_to_kore(cfg, sort=GENERATED_TOP_CELL) ntf.write(pattern.text) ntf.flush() + if self.__llvm_definition_dir: + krun_dir = self.__llvm_definition_dir + else: + krun_dir = self.__definition_dir result = _krun( input_file=Path(ntf.name), - definition_dir=self.__definition_dir, + definition_dir=krun_dir, output=KRunOutput.JSON, term=True, parser='cat', From bcdc0768ff2d8004328505be2b9d0a1eaa021a0c Mon Sep 17 00:00:00 2001 From: Virgil Date: Wed, 20 Sep 2023 11:56:21 +0300 Subject: [PATCH 06/15] Refactoring property testing --- kmxwasm/src/kmxwasm/build.py | 1 - kmxwasm/src/kmxwasm/lemmas/generate.py | 2 +- kmxwasm/src/kmxwasm/property.py | 8 ++++---- .../src/kmxwasm/{ => property_testing}/cell_abstracter.py | 2 +- kmxwasm/src/kmxwasm/{ => property_testing}/implication.py | 2 +- kmxwasm/src/kmxwasm/{ => property_testing}/paths.py | 0 kmxwasm/src/kmxwasm/{ => property_testing}/printers.py | 2 +- kmxwasm/src/kmxwasm/{ => property_testing}/running.py | 4 ++-- .../{ => property_testing}/wasm_krun_initializer.py | 6 +++--- kmxwasm/src/tests/integration/test_claims.py | 6 +++--- 10 files changed, 16 insertions(+), 17 deletions(-) rename kmxwasm/src/kmxwasm/{ => property_testing}/cell_abstracter.py (97%) rename kmxwasm/src/kmxwasm/{ => property_testing}/implication.py (93%) rename kmxwasm/src/kmxwasm/{ => property_testing}/paths.py (100%) rename kmxwasm/src/kmxwasm/{ => property_testing}/printers.py (96%) rename kmxwasm/src/kmxwasm/{ => property_testing}/running.py (98%) rename kmxwasm/src/kmxwasm/{ => property_testing}/wasm_krun_initializer.py (96%) diff --git a/kmxwasm/src/kmxwasm/build.py b/kmxwasm/src/kmxwasm/build.py index d635e178..66013f87 100644 --- a/kmxwasm/src/kmxwasm/build.py +++ b/kmxwasm/src/kmxwasm/build.py @@ -9,7 +9,6 @@ HASKELL = 'haskell' LLVM = 'llvm' LEMMA_PROOFS = 'lemma-proofs' -LLVM = 'llvm' def kbuild_semantics(output_dir: Path, config_file: Path, target: str) -> Tools: diff --git a/kmxwasm/src/kmxwasm/lemmas/generate.py b/kmxwasm/src/kmxwasm/lemmas/generate.py index 2c1d282b..4c48b278 100755 --- a/kmxwasm/src/kmxwasm/lemmas/generate.py +++ b/kmxwasm/src/kmxwasm/lemmas/generate.py @@ -8,7 +8,7 @@ from pyk.prelude.ml import mlEquals from ..build import LEMMA_PROOFS, kbuild_semantics -from ..paths import KBUILD_DIR, KBUILD_ML_PATH, ROOT +from ..property_testing.paths import KBUILD_DIR, KBUILD_ML_PATH, ROOT from .expression import ( addInt, divIntTotal, diff --git a/kmxwasm/src/kmxwasm/property.py b/kmxwasm/src/kmxwasm/property.py index 63e09d3f..cc0f83dc 100644 --- a/kmxwasm/src/kmxwasm/property.py +++ b/kmxwasm/src/kmxwasm/property.py @@ -13,10 +13,10 @@ from .build import HASKELL, kbuild_semantics from .json import load_json_kcfg, load_json_kclaim, write_kcfg_json -from .paths import KBUILD_DIR, KBUILD_ML_PATH, ROOT -from .printers import print_node -from .running import RunException, Stuck, Success, run_claim, split_edge -from .wasm_krun_initializer import WasmKrunInitializer +from .property_testing.paths import KBUILD_DIR, KBUILD_ML_PATH, ROOT +from .property_testing.printers import print_node +from .property_testing.running import RunException, Stuck, Success, run_claim, split_edge +from .property_testing.wasm_krun_initializer import WasmKrunInitializer sys.setrecursionlimit(4000) diff --git a/kmxwasm/src/kmxwasm/cell_abstracter.py b/kmxwasm/src/kmxwasm/property_testing/cell_abstracter.py similarity index 97% rename from kmxwasm/src/kmxwasm/cell_abstracter.py rename to kmxwasm/src/kmxwasm/property_testing/cell_abstracter.py index 309555b0..926362b2 100644 --- a/kmxwasm/src/kmxwasm/cell_abstracter.py +++ b/kmxwasm/src/kmxwasm/property_testing/cell_abstracter.py @@ -3,7 +3,7 @@ from pyk.kcfg import KCFG from pyk.kcfg.kcfg import NodeIdLike -from .ast.generic import get_single_argument_kapply_contents_path, replace_contents_with_path +from ..ast.generic import get_single_argument_kapply_contents_path, replace_contents_with_path class CellAbstracter: diff --git a/kmxwasm/src/kmxwasm/implication.py b/kmxwasm/src/kmxwasm/property_testing/implication.py similarity index 93% rename from kmxwasm/src/kmxwasm/implication.py rename to kmxwasm/src/kmxwasm/property_testing/implication.py index dfe5bc4d..7bfd3c06 100644 --- a/kmxwasm/src/kmxwasm/implication.py +++ b/kmxwasm/src/kmxwasm/property_testing/implication.py @@ -1,6 +1,6 @@ from pyk.kast.inner import KApply, KInner, KSequence -from .ast.elrond import commands_cell_contents, instrs_cell_contents, k_cell_contents +from ..ast.elrond import commands_cell_contents, instrs_cell_contents, k_cell_contents def quick_ksequence_implication_check(antecedent: KSequence, consequent: KSequence) -> bool: diff --git a/kmxwasm/src/kmxwasm/paths.py b/kmxwasm/src/kmxwasm/property_testing/paths.py similarity index 100% rename from kmxwasm/src/kmxwasm/paths.py rename to kmxwasm/src/kmxwasm/property_testing/paths.py diff --git a/kmxwasm/src/kmxwasm/printers.py b/kmxwasm/src/kmxwasm/property_testing/printers.py similarity index 96% rename from kmxwasm/src/kmxwasm/printers.py rename to kmxwasm/src/kmxwasm/property_testing/printers.py index 6a577f36..e746bdeb 100644 --- a/kmxwasm/src/kmxwasm/printers.py +++ b/kmxwasm/src/kmxwasm/property_testing/printers.py @@ -2,7 +2,7 @@ from pyk.kcfg import KCFG from pyk.prelude.kbool import TRUE -from .tools import Tools +from ..tools import Tools def print_node(tools: Tools, node: KCFG.Node) -> None: diff --git a/kmxwasm/src/kmxwasm/running.py b/kmxwasm/src/kmxwasm/property_testing/running.py similarity index 98% rename from kmxwasm/src/kmxwasm/running.py rename to kmxwasm/src/kmxwasm/property_testing/running.py index 9a8a18b3..fbf794fe 100644 --- a/kmxwasm/src/kmxwasm/running.py +++ b/kmxwasm/src/kmxwasm/property_testing/running.py @@ -8,11 +8,11 @@ from pyk.kore.rpc import LogEntry from pyk.prelude.collections import LIST -from .ast.elrond import CALL_STACK_PATH, cfg_changes_call_stack, command_is_new_wasm_instance, get_first_instr_name +from ..ast.elrond import CALL_STACK_PATH, cfg_changes_call_stack, command_is_new_wasm_instance, get_first_instr_name +from ..tools import Tools from .cell_abstracter import CellAbstracter from .implication import quick_implication_check from .printers import print_node -from .tools import Tools from .wasm_krun_initializer import WasmKrunInitializer diff --git a/kmxwasm/src/kmxwasm/wasm_krun_initializer.py b/kmxwasm/src/kmxwasm/property_testing/wasm_krun_initializer.py similarity index 96% rename from kmxwasm/src/kmxwasm/wasm_krun_initializer.py rename to kmxwasm/src/kmxwasm/property_testing/wasm_krun_initializer.py index 84a615d7..e17f7f9f 100644 --- a/kmxwasm/src/kmxwasm/wasm_krun_initializer.py +++ b/kmxwasm/src/kmxwasm/property_testing/wasm_krun_initializer.py @@ -4,7 +4,7 @@ from pyk.prelude.collections import list_of, map_empty from pyk.prelude.utils import token -from .ast.elrond import ( +from ..ast.elrond import ( accountCellMap, commands_cell_contents, get_contract_mod_idx_cell, @@ -25,8 +25,8 @@ set_k_cell_contents, set_logging_cell_content, ) -from .ast.wasm import set_instrs_cell_contents -from .tools import Tools +from ..ast.wasm import set_instrs_cell_contents +from ..tools import Tools class WasmKrunInitializer: diff --git a/kmxwasm/src/tests/integration/test_claims.py b/kmxwasm/src/tests/integration/test_claims.py index 91b54dd4..ccbc3ee8 100644 --- a/kmxwasm/src/tests/integration/test_claims.py +++ b/kmxwasm/src/tests/integration/test_claims.py @@ -21,10 +21,10 @@ valStack, ) from kmxwasm.build import HASKELL, kbuild_semantics -from kmxwasm.paths import KBUILD_ML_PATH -from kmxwasm.running import Success, run_claim +from kmxwasm.property_testing.paths import KBUILD_ML_PATH +from kmxwasm.property_testing.running import Success, run_claim +from kmxwasm.property_testing.wasm_krun_initializer import WasmKrunInitializer from kmxwasm.tools import Tools -from kmxwasm.wasm_krun_initializer import WasmKrunInitializer sys.setrecursionlimit(1500000000) From dd5f34d01770d683c0342df69f3f2b99f5d7b8c1 Mon Sep 17 00:00:00 2001 From: Virgil Date: Thu, 21 Sep 2023 17:05:55 +0300 Subject: [PATCH 07/15] Add missing lemmas --- kmxwasm/k-src/elrond-lemmas.md | 53 ++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/kmxwasm/k-src/elrond-lemmas.md b/kmxwasm/k-src/elrond-lemmas.md index 22ec4e94..8eef34bf 100644 --- a/kmxwasm/k-src/elrond-lemmas.md +++ b/kmxwasm/k-src/elrond-lemmas.md @@ -85,6 +85,54 @@ module ELROND-LEMMAS andBool (PadLen #setRange( + #setRange(M:Bytes, Addr2:Int, Val2:Int, Width2:Int), + Addr1:Int, Val1:Int, Width1:Int + ) + requires disjontRanges(Addr1, Val1, Addr2, Val2) + [simplification, concrete(Addr1,Val1,Width1), symbolic(Val2)] + // TODO: Consider adding rules for when Addr1 or Width1 are symbolic + rule #getBytesRange( + #setRange(M:Bytes, SetAddr:Int, _SetVal:Int, SetWidth:Int), + GetAddr:Int, GetWidth:Int + ) + => #getBytesRange(M, GetAddr:Int, GetWidth:Int) + requires disjontRanges(SetAddr, SetWidth, GetAddr, GetWidth) + [simplification] + rule #getBytesRange( + #setRange(_M:Bytes, Addr:Int, Val:Int, Width:Int), + Addr:Int, Width:Int + ) + => Int2Bytes(Width, Val, LE) + requires 0 #setRange + ( replaceAtBytesTotal(M, Addr2, Src) + , Addr1:Int, Val1:Int, Width1:Int + ) + requires disjontRanges(Addr1, Width1, Addr2, lengthBytes(Src)) + [simplification, concrete(Addr2, Src), symbolic(Val1)] + + rule padRightBytesTotal + ( #setRange(M:Bytes, Addr1:Int, Val1:Int, Width1:Int) + , Len, 0 + ) + => #setRange + ( padRightBytesTotal(M:Bytes, Len, 0) + , Addr1:Int, Val1:Int, Width1:Int + ) + [simplification] + syntax Bool ::= disjontRangesSimple(start1:Int, len1:Int, start2:Int, len2:Int) [function, total] rule disjontRangesSimple(Start1:Int, Len1:Int, Start2:Int, Len2:Int) => (Start1 +Int Len1 <=Int Start2) @@ -328,6 +376,11 @@ module ELROND-LEMMAS requires 0 I + [simplification] + rule I:Int |Int 0 => I + [simplification] + endmodule ``` From f5e0969d9d73866d45e237f1048499831a82da83 Mon Sep 17 00:00:00 2001 From: Virgil Date: Tue, 26 Sep 2023 15:16:13 +0300 Subject: [PATCH 08/15] Use the booster backend --- kmxwasm/k-src/kbuild.toml | 5 +++ kmxwasm/poetry.lock | 40 ++++++++--------- kmxwasm/src/kmxwasm/ast/elrond.py | 20 ++++++++- kmxwasm/src/kmxwasm/build.py | 27 +++++++++--- kmxwasm/src/kmxwasm/lemmas/generate.py | 4 +- kmxwasm/src/kmxwasm/property.py | 44 ++++++++++++++++--- .../src/kmxwasm/property_testing/running.py | 31 +++++++------ kmxwasm/src/kmxwasm/timing.py | 10 +++++ kmxwasm/src/kmxwasm/tools.py | 27 +++++++++--- kmxwasm/src/tests/integration/test_claims.py | 2 +- 10 files changed, 151 insertions(+), 59 deletions(-) create mode 100644 kmxwasm/src/kmxwasm/timing.py diff --git a/kmxwasm/k-src/kbuild.toml b/kmxwasm/k-src/kbuild.toml index eef577bf..4c2de8d3 100644 --- a/kmxwasm/k-src/kbuild.toml +++ b/kmxwasm/k-src/kbuild.toml @@ -17,3 +17,8 @@ backend='haskell' [targets.lemma-proofs] main-file = 'lemmas/semantics/elrond-wasm-lemma-proofs.md' backend='haskell' + +[targets.llvm-library] +llvm-kompile-type='c' +main-file = 'elrond-wasm.md' +backend='llvm' diff --git a/kmxwasm/poetry.lock b/kmxwasm/poetry.lock index eb9c9383..f30b6757 100644 --- a/kmxwasm/poetry.lock +++ b/kmxwasm/poetry.lock @@ -240,21 +240,19 @@ testing = ["hatch", "pre-commit", "pytest", "tox"] [[package]] name = "filelock" -version = "3.12.3" +version = "3.12.4" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.12.3-py3-none-any.whl", hash = "sha256:f067e40ccc40f2b48395a80fcbd4728262fab54e232e090a4063ab804179efeb"}, - {file = "filelock-3.12.3.tar.gz", hash = "sha256:0ecc1dd2ec4672a10c8550a8182f1bd0c0a5088470ecd5a125e45f49472fac3d"}, + {file = "filelock-3.12.4-py3-none-any.whl", hash = "sha256:08c21d87ded6e2b9da6728c3dff51baf1dcecf973b768ef35bcbc3447edb9ad4"}, + {file = "filelock-3.12.4.tar.gz", hash = "sha256:2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd"}, ] -[package.dependencies] -typing-extensions = {version = ">=4.7.1", markers = "python_version < \"3.11\""} - [package.extras] docs = ["furo (>=2023.7.26)", "sphinx (>=7.1.2)", "sphinx-autodoc-typehints (>=1.24)"] testing = ["covdefaults (>=2.3)", "coverage (>=7.3)", "diff-cover (>=7.7)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-timeout (>=2.1)"] +typing = ["typing-extensions (>=4.7.1)"] [[package]] name = "flake8" @@ -274,13 +272,13 @@ pyflakes = ">=3.1.0,<3.2.0" [[package]] name = "flake8-bugbear" -version = "23.7.10" +version = "23.9.16" description = "A plugin for flake8 finding likely bugs and design problems in your program. Contains warnings that don't belong in pyflakes and pycodestyle." optional = false python-versions = ">=3.8.1" files = [ - {file = "flake8-bugbear-23.7.10.tar.gz", hash = "sha256:0ebdc7d8ec1ca8bd49347694562381f099f4de2f8ec6bda7a7dca65555d9e0d4"}, - {file = "flake8_bugbear-23.7.10-py3-none-any.whl", hash = "sha256:d99d005114020fbef47ed5e4aebafd22f167f9a0fbd0d8bf3c9e90612cb25c34"}, + {file = "flake8-bugbear-23.9.16.tar.gz", hash = "sha256:90cf04b19ca02a682feb5aac67cae8de742af70538590509941ab10ae8351f71"}, + {file = "flake8_bugbear-23.9.16-py3-none-any.whl", hash = "sha256:b182cf96ea8f7a8595b2f87321d7d9b28728f4d9c3318012d896543d19742cb5"}, ] [package.dependencies] @@ -805,13 +803,13 @@ testing = ["filelock"] [[package]] name = "rich" -version = "13.5.2" +version = "13.5.3" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" optional = false python-versions = ">=3.7.0" files = [ - {file = "rich-13.5.2-py3-none-any.whl", hash = "sha256:146a90b3b6b47cac4a73c12866a499e9817426423f57c5a66949c086191a8808"}, - {file = "rich-13.5.2.tar.gz", hash = "sha256:fb9d6c0a0f643c99eed3875b5377a184132ba9be4d61516a55273d3554d75a39"}, + {file = "rich-13.5.3-py3-none-any.whl", hash = "sha256:9257b468badc3d347e146a4faa268ff229039d4c2d176ab0cffb4c4fbc73d5d9"}, + {file = "rich-13.5.3.tar.gz", hash = "sha256:87b43e0543149efa1253f485cd845bb7ee54df16c9617b8a893650ab84b4acb6"}, ] [package.dependencies] @@ -854,13 +852,13 @@ files = [ [[package]] name = "typing-extensions" -version = "4.7.1" -description = "Backported and Experimental Type Hints for Python 3.7+" +version = "4.8.0" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, - {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, + {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, + {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, ] [[package]] @@ -890,17 +888,17 @@ files = [ [[package]] name = "zipp" -version = "3.16.2" +version = "3.17.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.16.2-py3-none-any.whl", hash = "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0"}, - {file = "zipp-3.16.2.tar.gz", hash = "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"}, + {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, + {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] [metadata] diff --git a/kmxwasm/src/kmxwasm/ast/elrond.py b/kmxwasm/src/kmxwasm/ast/elrond.py index 96bfb696..43069503 100644 --- a/kmxwasm/src/kmxwasm/ast/elrond.py +++ b/kmxwasm/src/kmxwasm/ast/elrond.py @@ -1,6 +1,6 @@ from typing import Iterable -from pyk.kast.inner import KApply, KInner, KSequence, collect +from pyk.kast.inner import KApply, KInner, KSequence, KToken, collect from .collections import cell_map, full_list, k_map, simple_list from .generic import get_with_path, replace_with_path, set_ksequence_cell_contents, set_single_argument_kapply_contents @@ -108,16 +108,32 @@ def instrs_cell_contents(root: KInner) -> KSequence: return seq -def get_first_instr_name(root: KInner) -> str | None: +def get_first_instr(root: KInner) -> KApply | None: seq = instrs_cell_contents(root) if not seq.items: return None first = seq.items[0] if not isinstance(first, KApply): return None + return first + + +def get_first_instr_name(root: KInner) -> str | None: + first = get_first_instr(root) + if first is None: + return None return first.label.name +def get_hostcall_name(hostcall: KApply) -> str | None: + if hostcall.label.name != 'hostCall': + return None + assert hostcall.arity > 1 + arg = hostcall.args[1] + if not isinstance(arg, KToken): + return None + return arg.token + def command_is_new_wasm_instance(root: KInner) -> bool: command = get_first_command_name(root) if not command: diff --git a/kmxwasm/src/kmxwasm/build.py b/kmxwasm/src/kmxwasm/build.py index 66013f87..a4084cc8 100644 --- a/kmxwasm/src/kmxwasm/build.py +++ b/kmxwasm/src/kmxwasm/build.py @@ -1,23 +1,36 @@ -import time from pathlib import Path from pyk.kbuild.kbuild import KBuild from pyk.kbuild.package import Package +from .timing import Timer from .tools import Tools HASKELL = 'haskell' LLVM = 'llvm' +LLVM_LIBRARY = 'llvm-library' LEMMA_PROOFS = 'lemma-proofs' -def kbuild_semantics(output_dir: Path, config_file: Path, target: str) -> Tools: +def kbuild_semantics(output_dir: Path, config_file: Path, target: str, booster: bool) -> Tools: kbuild = KBuild(output_dir) package = Package.create(config_file) - start_time = time.time() + + t = Timer(f'Kompiling {target}:') kbuild.kompile(package, target) - mid_time = time.time() - print('Kompiling', target, ':', mid_time - start_time, 'sec') + t.measure() + + t = Timer(f'Kompiling {LLVM}:') kbuild.kompile(package, LLVM) - print('Kompiling', LLVM, ':', time.time() - mid_time, 'sec') - return Tools(kbuild.definition_dir(package, target), kbuild.definition_dir(package, LLVM)) + t.measure() + + t = Timer(f'Kompiling {LLVM_LIBRARY}:') + kbuild.kompile(package, LLVM_LIBRARY) + t.measure() + + return Tools( + definition_dir=kbuild.definition_dir(package, target), + llvm_definition_dir=kbuild.definition_dir(package, LLVM), + llvm_library_definition_dir=kbuild.definition_dir(package, LLVM_LIBRARY), + booster=booster, + ) diff --git a/kmxwasm/src/kmxwasm/lemmas/generate.py b/kmxwasm/src/kmxwasm/lemmas/generate.py index 4c48b278..80da1355 100755 --- a/kmxwasm/src/kmxwasm/lemmas/generate.py +++ b/kmxwasm/src/kmxwasm/lemmas/generate.py @@ -255,7 +255,7 @@ def main(args: list[str]) -> None: LEMMAS_FILE.write_text('```k\nmodule PROVEN-ELROND-LEMMAS\nendmodule\n```\n') HELPER_LEMMAS_FILE.write_text('```k\nmodule HELPER-LEMMAS\nendmodule\n```\n') - with kbuild_semantics(KBUILD_DIR, config_file=KBUILD_ML_PATH, target=LEMMA_PROOFS) as tools: + with kbuild_semantics(KBUILD_DIR, config_file=KBUILD_ML_PATH, target=LEMMA_PROOFS, booster=False) as tools: for lemma in LEMMAS: definition = lemma.make_definition() printed = tools.printer.pretty_print(definition) @@ -270,7 +270,7 @@ def main(args: list[str]) -> None: printed_helper = tools.printer.pretty_print(helper_module) HELPER_LEMMAS_FILE.write_text('```k\n' + cleanup(printed_helper) + '\n```\n') - with kbuild_semantics(KBUILD_DIR, config_file=KBUILD_ML_PATH, target=LEMMA_PROOFS) as tools: + with kbuild_semantics(KBUILD_DIR, config_file=KBUILD_ML_PATH, target=LEMMA_PROOFS, booster=False) as tools: tools.printer diff --git a/kmxwasm/src/kmxwasm/property.py b/kmxwasm/src/kmxwasm/property.py index cc0f83dc..db4b1fcd 100644 --- a/kmxwasm/src/kmxwasm/property.py +++ b/kmxwasm/src/kmxwasm/property.py @@ -17,6 +17,7 @@ from .property_testing.printers import print_node from .property_testing.running import RunException, Stuck, Success, run_claim, split_edge from .property_testing.wasm_krun_initializer import WasmKrunInitializer +from .timing import Timer sys.setrecursionlimit(4000) @@ -44,13 +45,17 @@ class RunClaim(Action): claim_path: Path is_k: bool restart: bool + booster: bool remove: list[int] run_node_id: int | None depth: int kcfg_path: Path def run(self) -> None: - with kbuild_semantics(output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL) as tools: + with kbuild_semantics( + output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL, booster=self.booster + ) as tools: + t = Timer('Loading the claim') if self.is_k: claims = tools.kprove.get_claims(self.claim_path) if len(claims) != 1: @@ -62,12 +67,15 @@ def run(self) -> None: # Fix the claim, it's not clear why these cells are being # removed when generating claims. claim = claim.let(body=KApply('', [claim.body, KApply('', [token(0)])])) + t.measure() kcfg: KCFG | None = None if self.restart: + t = Timer('Loading kcfg') kcfg = load_json_kcfg(self.kcfg_path) for node_id in self.remove: kcfg.remove_node(node_id) + t.measure() result = run_claim( tools, WasmKrunInitializer(tools), @@ -130,10 +138,15 @@ def run(self) -> None: class BisectAfter(Action): node_id: int kcfg_path: Path + booster: bool def run(self) -> None: - with kbuild_semantics(output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL) as tools: + with kbuild_semantics( + output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL, booster=self.booster + ) as tools: + t = Timer('Loading kcfg') kcfg = load_json_kcfg(self.kcfg_path) + t.measure() result = split_edge(tools, kcfg, start_node_id=self.node_id) write_kcfg_json(result.kcfg, self.kcfg_path) @@ -168,10 +181,15 @@ def run(self) -> None: class ShowNode(Action): node_id: int kcfg_path: Path + booster: bool def run(self) -> None: - with kbuild_semantics(output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL) as tools: + with kbuild_semantics( + output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL, booster=self.booster + ) as tools: + t = Timer('Loading kcfg') kcfg = load_json_kcfg(self.kcfg_path) + t.measure() print('Printing: ', self.node_id) node = kcfg.get_node(self.node_id) if node: @@ -183,10 +201,15 @@ def run(self) -> None: @dataclass(frozen=True) class Tree(Action): kcfg_path: Path + booster: bool def run(self) -> None: - with kbuild_semantics(output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL) as tools: + with kbuild_semantics( + output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL, booster=self.booster + ) as tools: + t = Timer('Loading kcfg') kcfg = load_json_kcfg(self.kcfg_path) + t.measure() show = KCFGShow(tools.printer) for line in show.pretty(kcfg): print(line) @@ -264,13 +287,19 @@ def read_flags() -> Action: default=str(ROOT / '.property' / 'kcfg.json'), help='File in which to save the intermediate computing results.', ) + parser.add_argument( + '--booster', + action='store_true', + required=False, + help='Use the booster backend', + ) args = parser.parse_args() if args.show_node is not None: - return ShowNode(args.show_node, Path(args.kcfg)) + return ShowNode(args.show_node, Path(args.kcfg), booster=args.booster) if args.tree: - return Tree(Path(args.kcfg)) + return Tree(Path(args.kcfg), booster=args.booster) if args.bisect_after: - return BisectAfter(args.bisect_after, Path(args.kcfg)) + return BisectAfter(args.bisect_after, Path(args.kcfg), booster=args.booster) if args.claimfile is None: usage_error() @@ -295,6 +324,7 @@ def read_flags() -> Action: run_node_id=run, depth=args.step, kcfg_path=Path(args.kcfg), + booster=args.booster, ) diff --git a/kmxwasm/src/kmxwasm/property_testing/running.py b/kmxwasm/src/kmxwasm/property_testing/running.py index fbf794fe..a71e267b 100644 --- a/kmxwasm/src/kmxwasm/property_testing/running.py +++ b/kmxwasm/src/kmxwasm/property_testing/running.py @@ -8,7 +8,8 @@ from pyk.kore.rpc import LogEntry from pyk.prelude.collections import LIST -from ..ast.elrond import CALL_STACK_PATH, cfg_changes_call_stack, command_is_new_wasm_instance, get_first_instr_name +from ..ast.elrond import CALL_STACK_PATH, cfg_changes_call_stack, command_is_new_wasm_instance,get_first_instr, get_first_instr_name, get_hostcall_name +from ..timing import Timer from ..tools import Tools from .cell_abstracter import CellAbstracter from .implication import quick_implication_check @@ -38,15 +39,6 @@ class RunException(RunClaimResult): last_processed_node: NodeIdLike -class Timer: - def __init__(self, message: str) -> None: - self.__message = message - self.__start = time.time() - - def measure(self) -> None: - print(self.__message, time.time() - self.__start, 'sec.', flush=True) - - def run_claim( tools: Tools, wasm_initializer: WasmKrunInitializer, @@ -96,7 +88,7 @@ def run_claim( while to_process: # print([node.id for node in to_process]) while to_process: - node = to_process.pop() + node = to_process.pop(0) processed.add(node.id) current_time = time.time() if last_processed_node != -1: @@ -144,7 +136,14 @@ def run_claim( try: t = Timer(' Extend') node = kcfg.node(node.id) - print(f' First instr: {get_first_instr_name(node.cterm.config)}', flush=True) + processing: list[str] = [] + instr = get_first_instr(node.cterm.config) + if instr is not None: + processing = ['', instr.label.name] + call_name = get_hostcall_name(instr) + if call_name is not None: + processing.append(call_name) + print(f' First: {processing}', flush=True) tools.explorer.extend( kcfg_exploration=kcfg_exploration, node=node, @@ -169,7 +168,8 @@ def run_claim( abstract_call_stack.concretize_kcfg(kcfg, leaves) t.measure() t = Timer(' Check final') - for node_id in new_leaves(kcfg, non_final, final_node.id): + current_leaves = new_leaves(kcfg, non_final, final_node.id) + for node_id in current_leaves: non_final.add(node_id) node = kcfg.node(node_id) if quick_implication_check(node.cterm.config, final_node.cterm.config): @@ -182,7 +182,10 @@ def run_claim( raise for node in kcfg.stuck: return Stuck(kcfg, stuck_node_id=node.id, final_node_id=final_node.id) - to_process = expandable_leaves(kcfg, target_node_id) + if run_id is not None: + to_process += [kcfg.node(node_id) for node_id in current_leaves] + else: + to_process = expandable_leaves(kcfg, target_node_id) if last_processed_node != -1: print('Node', last_processed_node, 'took', current_time - last_time, 'sec.') diff --git a/kmxwasm/src/kmxwasm/timing.py b/kmxwasm/src/kmxwasm/timing.py new file mode 100644 index 00000000..26e45aef --- /dev/null +++ b/kmxwasm/src/kmxwasm/timing.py @@ -0,0 +1,10 @@ +import time + + +class Timer: + def __init__(self, message: str) -> None: + self.__message = message + self.__start = time.time() + + def measure(self) -> None: + print(self.__message, time.time() - self.__start, 'sec.', flush=True) diff --git a/kmxwasm/src/kmxwasm/tools.py b/kmxwasm/src/kmxwasm/tools.py index 4b8cae7a..e81fb7b3 100644 --- a/kmxwasm/src/kmxwasm/tools.py +++ b/kmxwasm/src/kmxwasm/tools.py @@ -3,6 +3,7 @@ from tempfile import NamedTemporaryFile from typing import Any, Optional +from pyk.utils import BugReport from pyk.kast.inner import KInner from pyk.kast.kast import kast_term from pyk.kast.pretty import SymbolTable @@ -14,10 +15,17 @@ from pyk.prelude.k import GENERATED_TOP_CELL +USE_BUG_REPORT = False + + class Tools: - def __init__(self, definition_dir: Path, llvm_definition_dir: Path | None) -> None: + def __init__( + self, definition_dir: Path, llvm_definition_dir: Path | None, llvm_library_definition_dir: Path, booster: bool + ) -> None: self.__definition_dir = definition_dir self.__llvm_definition_dir = llvm_definition_dir + self.__llvm_library_definition_dir = llvm_library_definition_dir + self.__booster = booster self.__kprove: Optional[KProve] = None self.__explorer: Optional[KCFGExplore] = None self.__kore_server: Optional[KoreServer] = None @@ -47,15 +55,20 @@ def printer(self) -> KPrint: @property def explorer(self) -> KCFGExplore: + bug_report = None + if (USE_BUG_REPORT): + bug_report = BugReport(Path('bug-report')) if not self.__kore_server: if self.__kore_client: raise RuntimeError('Non-null KoreClient with null KoreServer.') - if self.__llvm_definition_dir and False: + if self.__booster: self.__kore_server = BoosterServer( self.__definition_dir, - self.__llvm_definition_dir, + self.__llvm_library_definition_dir, self.printer.main_module, - command='booster-rpc' + command=('kore-rpc-booster'), + # command=('kore-rpc-booster', '-l', 'Rewrite'), + bug_report=bug_report # port=39425, ) else: @@ -65,7 +78,11 @@ def explorer(self) -> KCFGExplore: # port=39425, ) if not self.__kore_client: - self.__kore_client = KoreClient('localhost', self.__kore_server.port) + self.__kore_client = KoreClient( + 'localhost', + self.__kore_server.port, + bug_report=bug_report + ) if not self.__explorer: self.__explorer = KCFGExplore(self.printer, self.__kore_client) diff --git a/kmxwasm/src/tests/integration/test_claims.py b/kmxwasm/src/tests/integration/test_claims.py index ccbc3ee8..c85ffe5c 100644 --- a/kmxwasm/src/tests/integration/test_claims.py +++ b/kmxwasm/src/tests/integration/test_claims.py @@ -157,7 +157,7 @@ def full_configuration( @pytest.fixture(scope='module') def tools(tmp_path_factory: TempPathFactory) -> Tools: build_path = tmp_path_factory.mktemp('kbuild') - tools = kbuild_semantics(output_dir=build_path, config_file=KBUILD_ML_PATH, target=HASKELL) + tools = kbuild_semantics(output_dir=build_path, config_file=KBUILD_ML_PATH, target=HASKELL, booster=True) return tools From 397b86d0e12a1e9a404221421dee08de26200da7 Mon Sep 17 00:00:00 2001 From: Virgil Date: Mon, 2 Oct 2023 14:42:54 +0300 Subject: [PATCH 09/15] Fixes --- kmxwasm/k-src/elrond-lemmas.md | 2 +- .../property_testing/cell_abstracter.py | 6 ++-- .../src/kmxwasm/property_testing/printers.py | 2 +- .../src/kmxwasm/property_testing/running.py | 35 ++++++++----------- 4 files changed, 20 insertions(+), 25 deletions(-) diff --git a/kmxwasm/k-src/elrond-lemmas.md b/kmxwasm/k-src/elrond-lemmas.md index 8eef34bf..22cfc090 100644 --- a/kmxwasm/k-src/elrond-lemmas.md +++ b/kmxwasm/k-src/elrond-lemmas.md @@ -1,7 +1,7 @@ ```k require "ceils.k" -module ELROND-LEMMAS +module ELROND-LEMMAS [symbolic] imports private CEILS imports private ELROND imports private INT-KORE diff --git a/kmxwasm/src/kmxwasm/property_testing/cell_abstracter.py b/kmxwasm/src/kmxwasm/property_testing/cell_abstracter.py index 926362b2..b7458140 100644 --- a/kmxwasm/src/kmxwasm/property_testing/cell_abstracter.py +++ b/kmxwasm/src/kmxwasm/property_testing/cell_abstracter.py @@ -7,14 +7,14 @@ class CellAbstracter: - def __init__(self, cell_path: list[str], variable_root: str, variable_sort: KSort): + def __init__(self, cell_path: list[str], variable_root: str, variable_sort: KSort, destination: NodeIdLike): self.__cell_path = cell_path self.__variable_root = variable_root self.__variable_sort = variable_sort self.__variable_index = 0 self.__last_variable: KVariable | None = None self.__last_actual_value: KInner | None = None - self.__should_be_concrete: set[NodeIdLike] = set() + self.__should_be_concrete: set[NodeIdLike] = {destination} def abstract_node(self, kcfg: KCFG, node_id: NodeIdLike) -> None: node = kcfg.node(node_id) @@ -33,7 +33,7 @@ def concretize_kcfg(self, kcfg: KCFG, with_variable: set[NodeIdLike]) -> None: for node in kcfg.nodes: if node.id in with_variable: continue - if node in self.__should_be_concrete: + if node.id in self.__should_be_concrete: continue self.__concretize_node(kcfg, node.id, allow_missing_variable=True) for node_id in with_variable: diff --git a/kmxwasm/src/kmxwasm/property_testing/printers.py b/kmxwasm/src/kmxwasm/property_testing/printers.py index e746bdeb..020da2d1 100644 --- a/kmxwasm/src/kmxwasm/property_testing/printers.py +++ b/kmxwasm/src/kmxwasm/property_testing/printers.py @@ -6,7 +6,7 @@ def print_node(tools: Tools, node: KCFG.Node) -> None: - pretty = tools.printer.pretty_print(node.cterm.config) + pretty = tools.printer.pretty_print(node.cterm.config, sort_collections=True) print(pretty) for c in node.cterm.constraints: if c != TRUE: diff --git a/kmxwasm/src/kmxwasm/property_testing/running.py b/kmxwasm/src/kmxwasm/property_testing/running.py index a71e267b..13874874 100644 --- a/kmxwasm/src/kmxwasm/property_testing/running.py +++ b/kmxwasm/src/kmxwasm/property_testing/running.py @@ -8,7 +8,7 @@ from pyk.kore.rpc import LogEntry from pyk.prelude.collections import LIST -from ..ast.elrond import CALL_STACK_PATH, cfg_changes_call_stack, command_is_new_wasm_instance,get_first_instr, get_first_instr_name, get_hostcall_name +from ..ast.elrond import CALL_STACK_PATH, cfg_changes_call_stack, command_is_new_wasm_instance,get_first_instr, get_hostcall_name from ..timing import Timer from ..tools import Tools from .cell_abstracter import CellAbstracter @@ -17,6 +17,17 @@ from .wasm_krun_initializer import WasmKrunInitializer +CUT_POINT_RULES = [ + # This runs with the LLVM backend + 'ELROND-CONFIG.newWasmInstance', + # These change the call stack + 'ELROND-NODE.pushCallState', + 'ELROND-NODE.popCallState', + 'ELROND-NODE.dropCallState', + 'FOUNDRY.endFoundryImmediately', +] + + @dataclass(frozen=True) class RunClaimResult: kcfg: KCFG @@ -71,7 +82,7 @@ def run_claim( kcfg_exploration = KCFGExploration(kcfg) abstract_call_stack = CellAbstracter( - cell_path=CALL_STACK_PATH, variable_root='AbstractCallStack', variable_sort=LIST + cell_path=CALL_STACK_PATH, variable_root='AbstractCallStack', variable_sort=LIST, destination=target_node_id, ) try: @@ -117,15 +128,7 @@ def run_claim( node=node, logs=logs, execute_depth=1, - cut_point_rules=[ - # This runs with the LLVM backend - 'ELROND-CONFIG.newWasmInstance', - # These change the call stack - 'ELROND-NODE.pushCallState', - 'ELROND-NODE.popCallState', - 'ELROND-NODE.dropCallState', - 'FOUNDRY.endFoundryImmediately', - ], + cut_point_rules=CUT_POINT_RULES, ) t.measure() else: @@ -149,15 +152,7 @@ def run_claim( node=node, logs=logs, execute_depth=depth, - cut_point_rules=[ - # This runs with the LLVM backend - 'ELROND-CONFIG.newWasmInstance', - # These change the call stack - 'ELROND-NODE.pushCallState', - 'ELROND-NODE.popCallState', - 'ELROND-NODE.dropCallState', - 'FOUNDRY.endFoundryImmediately', - ], + cut_point_rules=CUT_POINT_RULES, ) t.measure() finally: From d4532a4ea27f92ecade5667e29d31abec9985513 Mon Sep 17 00:00:00 2001 From: Virgil Date: Mon, 2 Oct 2023 17:29:27 +0300 Subject: [PATCH 10/15] Tests --- .../tests/data/test_call_add_less-spec.json | 1 + .../src/tests/integration/test_integration.py | 41 +++++++++++++++++-- 2 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 kmxwasm/src/tests/data/test_call_add_less-spec.json diff --git a/kmxwasm/src/tests/data/test_call_add_less-spec.json b/kmxwasm/src/tests/data/test_call_add_less-spec.json new file mode 100644 index 00000000..7b763e4c --- /dev/null +++ b/kmxwasm/src/tests/data/test_call_add_less-spec.json @@ -0,0 +1 @@ +{"format": "KAST", "term": {"att": {"att": {"label": "test_call_add"}, "node": "KAtt"}, "body": {"args": [{"args": [{"args": [{"lhs": {"arity": 4, "items": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "setExitCode", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"k_______________________________\""}, {"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00k-test________________\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, {"args": [], "arity": 0, "label": {"name": ".List", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"test_call_add\""}, {"args": [{"args": [{"args": [{"args": [{"name": "ARG_0", "node": "KVariable", "sort": {"name": "Int", "node": "KSort"}}, {"args": [], "arity": 0, "label": {"name": "bigEndianBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "signedBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "Int2Bytes(_,_,_)_BYTES-HOOKED_Bytes_Int_Endianness_Signedness", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "wrapBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "ListBytesItem", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".ListBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "_ListBytes_", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5000000000"}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 8, "label": {"name": "callTx", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "OK", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "checkExpectStatus", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "setExitCode", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "node": "KSequence"}, "node": "KRewrite", "rhs": {"arity": 0, "items": [], "node": "KSequence"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"k_______________________________\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "tuple(_,_)_MANDOS_AddressNonce_Bytes_Int", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00k-test________________\""}], "arity": 2, "label": {"name": "_|->_", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"owner___________________________\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "tuple(_,_)_MANDOS_AddressNonce_Bytes_Int", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"adder___________________________\""}], "arity": 2, "label": {"name": "_|->_", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "_Map_", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"arity": 0, "items": [], "node": "KSequence"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"\""}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"\""}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".ListBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 6, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"arity": 0, "items": [], "node": "KSequence"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".ValStack", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Int", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".ModuleInstCellMap", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".FuncDefCellMap", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".TabInstCellMap", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".MemInstCellMap", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".GlobalInstCellMap", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 8, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Bool", "node": "KSort"}, "token": "true"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 9, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".MapIntToBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"bytesStackList\"}_BytesStack", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Int", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".ListBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"lhs": {"args": [], "arity": 0, "label": {"name": ".List", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, "node": "KRewrite", "rhs": {"name": "?_LOGS_CELL", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 9, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"lhs": {"name": "_VMOUTPUT_CELL", "node": "KVariable"}, "node": "KRewrite", "rhs": {"name": "?_VMOUTPUT_CELL_R", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"lhs": {"args": [{"args": [{"args": [{"args": [{"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"owner___________________________\""}], "arity": 1, "label": {"name": "
", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".EsdtDataCellMap", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Code", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"\""}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".MapBytesToBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 7, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00k-test________________\""}], "arity": 1, "label": {"name": "
", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".EsdtDataCellMap", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "26"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "27"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "28"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "27"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "29"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "29"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "30"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "31"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "30"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5000000"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131139"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "32"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aBr_if", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aReturn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 3, "label": {"name": "aBlock", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "33"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aUnreachable", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131249"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "12"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "40"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "9"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "30"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "12"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "13"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "32"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intEq", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIRelOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aBr_if", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "43"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aUnreachable", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 3, "label": {"name": "aBlock", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131237"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "12"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "40"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "30"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131264"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "10"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "loadOpLoad", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131280"}], "arity": 3, "label": {"name": "aLoad", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4294967295"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intAdd", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "storeOpStore", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131280"}], "arity": 3, "label": {"name": "aStore", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aGlobal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "16"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intSub", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aGlobal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "24"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intShl", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "8"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intShl", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "16711680"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intAnd", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intOr", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "8"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intShr_u", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "65280"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intAnd", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "24"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intShr_u", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intOr", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intOr", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "storeOpStore", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "12"}], "arity": 3, "label": {"name": "aStore", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "12"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intAdd", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "9"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "16"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intAdd", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aGlobal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "9"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "40"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "55"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aUnreachable", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "9"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "30"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "30"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "7"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intNe", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIRelOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aBr_if", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aReturn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 3, "label": {"name": "aBlock", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131142"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "25"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "8"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aUnreachable", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4294967282"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "aExtend_i32_u", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aCvtOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4294967282"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "38"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4294967295"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "17"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intNe", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIRelOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intLt_s", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIRelOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aSelect", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "38"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "255"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intAnd", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "aEqz", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTestOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "30"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "10"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "9"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4294967282"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4294967282"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "11"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "9"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "32"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "40"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131199"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "22"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "40"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131221"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "16"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "9"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "15"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aUnreachable", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "14"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "9"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "30"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "16"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "9"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "100"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "37"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "255"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intAnd", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "255"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intEq", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIRelOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "29"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "18"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "49"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aUnreachable", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131264"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "14"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "8"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aUnreachable", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aGlobal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "16"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intSub", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aGlobal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "19"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "36"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "35"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131075"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "42"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "26"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "44"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "30"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "20"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131107"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "42"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "21"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "29"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "29"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "360287970189639680"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "storeOpStore", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "8"}], "arity": 3, "label": {"name": "aStore", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "8"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intEq", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIRelOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aBr_if", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "8"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intAdd", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intAdd", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "loadOpLoad8_u", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 3, "label": {"name": "aLoad", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "aEqz", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTestOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aBr_if", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "9"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intLt_u", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIRelOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aBr_if", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "51"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aUnreachable", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}], "arity": 3, "label": {"name": "aBlock", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intAdd", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aBr", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}], "arity": 3, "label": {"name": "aBlock", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}], "arity": 3, "label": {"name": "aLoop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "8"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intSub", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "10"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "31"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "30"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i64", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5000000000000"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131167"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "42"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "22"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "28"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "44"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131072"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "32"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "47"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "45"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "37"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "255"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intAnd", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "aEqz", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTestOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "23"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "16"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intAdd", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aGlobal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aReturn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 3, "label": {"name": "aBlock", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "33"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aUnreachable", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "56"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aUnreachable", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "19"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "36"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "34"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "46"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "24"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "28"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "27"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "25"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131072"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "32"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "47"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "45"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "41"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "39"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "23"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "19"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "36"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "34"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "34"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "46"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "24"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "46"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "24"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "28"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "27"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "25"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "25"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131072"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "32"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "47"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "45"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "11"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "41"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "39"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "23"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "48"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aUnreachable", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "55"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aUnreachable", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "limitsMinMax", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTableDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "limitsMin", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aMemoryDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "mutVar", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aGlobalType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131072"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aGlobalDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "mutConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aGlobalType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131284"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aGlobalDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "mutConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aGlobalType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131296"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aGlobalDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131072"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"sumowner___________________________adder___________________________addwrong number of arguments\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00storage decode error: bad array lengthadderAddressownerAddress\\x00\\x00\\x00panic occurred\""}], "arity": 3, "label": {"name": "aDataDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "131280"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"\\x9c\\xff\\xff\\xff\""}], "arity": 3, "label": {"name": "aDataDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"mBufferFromBigIntUnsigned\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"startPrank\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"bigIntSetInt64\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"managedTransferValueExecute\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"stopPrank\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"bigIntGetUnsignedArgument\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"mBufferGetArgument\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"getNumArguments\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"signalError\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"mBufferAppendBytes\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "7"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"mBufferSetBytes\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "7"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"bigIntAdd\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "8"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"mBufferStorageLoad\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"mBufferGetLength\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "9"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"mBufferStorageStore\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"managedSignalError\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"mBufferToBigIntUnsigned\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"bigIntCmp\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"getStorage\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "8"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"checkNoPayment\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"createAccount\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "10"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"registerNewAddress\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "10"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"deployContract\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "11"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"assertBool\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"assumeBool\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"memory\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"init\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "50"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"test_call_add\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "52"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"test_call_add_twice\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "53"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"callBack\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "54"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"__data_end\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"__heap_base\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "String", "node": "KSort"}, "token": "\"tests/contracts/foundrylike//output/test-adder.wasm\""}], "arity": 3, "label": {"name": "moduleMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 11, "label": {"name": "aModuleDecl", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"k_______________________________\""}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"ownerAddress\""}], "arity": 1, "label": {"name": "wrapBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"owner___________________________\""}], "arity": 1, "label": {"name": "wrapBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "_Bytes2Bytes|->_", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"adderAddress\""}], "arity": 1, "label": {"name": "wrapBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"adder___________________________\""}], "arity": 1, "label": {"name": "wrapBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "_Bytes2Bytes|->_", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "_MapBytesToBytes_", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 7, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "_AccountCellMap_", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"k_______________________________\""}], "arity": 1, "label": {"name": "
", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "100000"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".EsdtDataCellMap", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Code", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"\""}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".MapBytesToBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 7, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "_AccountCellMap_", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"adder___________________________\""}], "arity": 1, "label": {"name": "
", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".EsdtDataCellMap", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aFuncType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTypeDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "12"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "loadOpLoad", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1048604"}], "arity": 3, "label": {"name": "aLoad", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4294967295"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intAdd", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIBinOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "storeOpStore", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1048604"}], "arity": 3, "label": {"name": "aStore", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "intNe", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aIRelOp", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aBr_if", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aReturn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "7"}], "arity": 3, "label": {"name": "aBlock", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1048576"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "25"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aUnreachable", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "7"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "12"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "12"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "12"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "12"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1048601"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "7"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "aDrop", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "8"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "13"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "11"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "16"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "15"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "8"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "13"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "16"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "14"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "9"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "listValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "8"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "13"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "11"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.set", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "16"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "14"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.tee", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "10"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 1, "label": {"name": "aLocal.get", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "15"}], "arity": 1, "label": {"name": "aCall", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}, {"args": [{"args": [], "arity": 0, "label": {"name": ".List{\"listValTypes\"}_ValTypes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "aVecType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "funcMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 4, "label": {"name": "aFuncDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "limitsMinMax", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aTableDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "17"}], "arity": 1, "label": {"name": "limitsMin", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aMemoryDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "mutVar", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aGlobalType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1048576"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aGlobalDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "mutConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aGlobalType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1048608"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aGlobalDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "mutConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "aGlobalType", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1048608"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aGlobalDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1048576"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"wrong number of argumentssum\""}], "arity": 3, "label": {"name": "aDataDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, {"args": [{"args": [{"args": [], "arity": 0, "label": {"name": "i32", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1048604"}], "arity": 2, "label": {"name": "aIConst", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Instrs_Instr_Instrs", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"\\x9c\\xff\\xff\\xff\""}], "arity": 3, "label": {"name": "aDataDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"bigIntGetUnsignedArgument\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"getNumArguments\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"signalError\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"mBufferStorageLoad\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"mBufferToBigIntUnsigned\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"mBufferFromBigIntUnsigned\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"mBufferStorageStore\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"mBufferSetBytes\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "3"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"checkNoPayment\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "4"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"bigIntFinishUnsigned\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "5"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"env\""}, {"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"bigIntAdd\""}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "6"}], "arity": 2, "label": {"name": "aFuncDesc", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "aImportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"memory\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"init\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "17"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"getSum\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "18"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"add\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "19"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"callBack\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "20"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"__data_end\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "1"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"node": "KToken", "sort": {"name": "WasmStringToken", "node": "KSort"}, "token": "\"__heap_base\""}, {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "2"}], "arity": 2, "label": {"name": "aExportDefn", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".List{\"listStmt\"}_EmptyStmts", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "___WASM-COMMON-SYNTAX_Defns_Defn_Defns", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Identifier", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"node": "KToken", "sort": {"name": "String", "node": "KSort"}, "token": "\"tests/contracts/foundrylike/../../../deps/mx-sdk-rs/contracts/examples/adder/output/adder.wasm\""}], "arity": 3, "label": {"name": "moduleMeta", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 11, "label": {"name": "aModuleDecl", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"owner___________________________\""}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"sum\""}], "arity": 1, "label": {"name": "wrapBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"\\x05\""}], "arity": 1, "label": {"name": "wrapBytes", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "_Bytes2Bytes|->_", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 7, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "_AccountCellMap_", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, "node": "KRewrite", "rhs": {"name": "?_ACCOUNTS_CELL", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"lhs": {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, "node": "KRewrite", "rhs": {"name": "?_PREVBLOCKTIMESTAMP_CELL", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"lhs": {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, "node": "KRewrite", "rhs": {"name": "?_PREVBLOCKNONCE_CELL", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"lhs": {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, "node": "KRewrite", "rhs": {"name": "?_PREVBLOCKROUND_CELL", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"lhs": {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, "node": "KRewrite", "rhs": {"name": "?_PREVBLOCKEPOCH_CELL", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"lhs": {"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\""}, "node": "KRewrite", "rhs": {"name": "?_PREVBLOCKRANDOMSEED_CELL", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 5, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [{"lhs": {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, "node": "KRewrite", "rhs": {"name": "?_CURBLOCKTIMESTAMP_CELL", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"lhs": {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, "node": "KRewrite", "rhs": {"name": "?_CURBLOCKNONCE_CELL", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"lhs": {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, "node": "KRewrite", "rhs": {"name": "?_CURBLOCKROUND_CELL", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"lhs": {"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, "node": "KRewrite", "rhs": {"name": "?_CURBLOCKEPOCH_CELL", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"lhs": {"node": "KToken", "sort": {"name": "Bytes", "node": "KSort"}, "token": "b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\""}, "node": "KRewrite", "rhs": {"name": "?_CURBLOCKRANDOMSEED_CELL", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 5, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 8, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"lhs": {"name": "_LOGGING_CELL", "node": "KVariable"}, "node": "KRewrite", "rhs": {"name": "?_LOGGING_CELL_R", "node": "KVariable"}}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 2, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 5, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"args": [], "arity": 0, "label": {"name": ".Map", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, {"args": [{"node": "KToken", "sort": {"name": "Bool", "node": "KSort"}, "token": "false"}], "arity": 1, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}], "arity": 3, "label": {"name": "", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}, "ensures": {"node": "KToken", "sort": {"name": "Bool", "node": "KSort"}, "token": "true"}, "node": "KClaim", "requires": {"args": [{"node": "KToken", "sort": {"name": "Int", "node": "KSort"}, "token": "0"}, {"name": "ARG_0", "node": "KVariable", "sort": {"name": "Int", "node": "KSort"}}], "arity": 2, "label": {"name": "_<=Int_", "node": "KLabel", "params": []}, "node": "KApply", "variable": false}}, "version": 3} \ No newline at end of file diff --git a/kmxwasm/src/tests/integration/test_integration.py b/kmxwasm/src/tests/integration/test_integration.py index 468e3727..73b80916 100644 --- a/kmxwasm/src/tests/integration/test_integration.py +++ b/kmxwasm/src/tests/integration/test_integration.py @@ -1,5 +1,40 @@ -from kmxwasm.hello import hello +from pathlib import Path +import pytest + +from pyk.kast.inner import KApply +from pyk.prelude.utils import token + +from kmxwasm.build import HASKELL, kbuild_semantics +from kmxwasm.property_testing.paths import KBUILD_DIR, KBUILD_ML_PATH, ROOT +from kmxwasm.tools import Tools +from kmxwasm.json import load_json_kclaim +from kmxwasm.property_testing.wasm_krun_initializer import WasmKrunInitializer +from kmxwasm.property_testing.running import Success, run_claim + +TEST_DATA = ROOT / 'kmxwasm' / 'src' / 'tests' / 'data' +INPUT_FILES = TEST_DATA.glob('*.json') + +@pytest.fixture(scope='module') +def tools() -> Tools: + return kbuild_semantics( + output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL, booster=False + ) + +@pytest.mark.parametrize('test_file', TEST_DATA, ids=[str(test_file.relative_to(TEST_DATA)) for test_file in TEST_DATA]) +def test_success(test_file:Path, tools:Tools) -> None: + claim = load_json_kclaim(test_file) + # Fix the claim, it's not clear why these cells are being + # removed when generating claims. + claim = claim.let(body=KApply('', [claim.body, KApply('', [token(0)])])) + + result = run_claim( + tools, + WasmKrunInitializer(tools), + claim=claim, + restart_kcfg=None, + depth=1000, + ) + + assert isinstance(result, Success), [result] -def test_hello() -> None: - assert hello('World') == 'Hello, World!' From 06c002a1bd14769f95008c4d8039b71a1e594359 Mon Sep 17 00:00:00 2001 From: Virgil Date: Mon, 2 Oct 2023 20:20:49 +0300 Subject: [PATCH 11/15] Testing --- .../{ => integration}/data/test_call_add_less-spec.json | 0 kmxwasm/src/tests/integration/test_integration.py | 7 ++++--- 2 files changed, 4 insertions(+), 3 deletions(-) rename kmxwasm/src/tests/{ => integration}/data/test_call_add_less-spec.json (100%) diff --git a/kmxwasm/src/tests/data/test_call_add_less-spec.json b/kmxwasm/src/tests/integration/data/test_call_add_less-spec.json similarity index 100% rename from kmxwasm/src/tests/data/test_call_add_less-spec.json rename to kmxwasm/src/tests/integration/data/test_call_add_less-spec.json diff --git a/kmxwasm/src/tests/integration/test_integration.py b/kmxwasm/src/tests/integration/test_integration.py index 73b80916..5d0177fd 100644 --- a/kmxwasm/src/tests/integration/test_integration.py +++ b/kmxwasm/src/tests/integration/test_integration.py @@ -12,8 +12,8 @@ from kmxwasm.property_testing.wasm_krun_initializer import WasmKrunInitializer from kmxwasm.property_testing.running import Success, run_claim -TEST_DATA = ROOT / 'kmxwasm' / 'src' / 'tests' / 'data' -INPUT_FILES = TEST_DATA.glob('*.json') +TEST_DATA = (Path(__file__).parent / 'data').resolve(strict=True) +INPUT_FILES = [TEST_DATA / 'test_call_add_less-spec.json'] @pytest.fixture(scope='module') def tools() -> Tools: @@ -21,7 +21,7 @@ def tools() -> Tools: output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL, booster=False ) -@pytest.mark.parametrize('test_file', TEST_DATA, ids=[str(test_file.relative_to(TEST_DATA)) for test_file in TEST_DATA]) +@pytest.mark.parametrize('test_file', INPUT_FILES, ids=[str(test_file.relative_to(TEST_DATA)) for test_file in INPUT_FILES]) def test_success(test_file:Path, tools:Tools) -> None: claim = load_json_kclaim(test_file) # Fix the claim, it's not clear why these cells are being @@ -34,6 +34,7 @@ def test_success(test_file:Path, tools:Tools) -> None: claim=claim, restart_kcfg=None, depth=1000, + run_id = None, ) assert isinstance(result, Success), [result] From 4a9478a4694bdf9ef491d262aad90156da0a5d24 Mon Sep 17 00:00:00 2001 From: Virgil Date: Tue, 3 Oct 2023 14:35:48 +0300 Subject: [PATCH 12/15] Update the Elrond semantics --- kmxwasm/k-src/elrond-semantics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kmxwasm/k-src/elrond-semantics b/kmxwasm/k-src/elrond-semantics index 1c0c214f..32108d96 160000 --- a/kmxwasm/k-src/elrond-semantics +++ b/kmxwasm/k-src/elrond-semantics @@ -1 +1 @@ -Subproject commit 1c0c214f82c03407559983b4f0da58d2dc91b04c +Subproject commit 32108d96439a447b2fcb9912a206ae28a417d018 From a36c20c1d118d85b9990913137baf3c044ec0cd9 Mon Sep 17 00:00:00 2001 From: Virgil Date: Tue, 3 Oct 2023 14:42:29 +0300 Subject: [PATCH 13/15] Fix lint warnings --- kmxwasm/src/kmxwasm/ast/elrond.py | 1 + .../src/kmxwasm/property_testing/running.py | 14 +++++++++--- kmxwasm/src/kmxwasm/tools.py | 11 +++------- .../src/tests/integration/test_integration.py | 22 +++++++++---------- 4 files changed, 26 insertions(+), 22 deletions(-) diff --git a/kmxwasm/src/kmxwasm/ast/elrond.py b/kmxwasm/src/kmxwasm/ast/elrond.py index 43069503..37475c36 100644 --- a/kmxwasm/src/kmxwasm/ast/elrond.py +++ b/kmxwasm/src/kmxwasm/ast/elrond.py @@ -134,6 +134,7 @@ def get_hostcall_name(hostcall: KApply) -> str | None: return None return arg.token + def command_is_new_wasm_instance(root: KInner) -> bool: command = get_first_command_name(root) if not command: diff --git a/kmxwasm/src/kmxwasm/property_testing/running.py b/kmxwasm/src/kmxwasm/property_testing/running.py index 13874874..e5199f54 100644 --- a/kmxwasm/src/kmxwasm/property_testing/running.py +++ b/kmxwasm/src/kmxwasm/property_testing/running.py @@ -8,7 +8,13 @@ from pyk.kore.rpc import LogEntry from pyk.prelude.collections import LIST -from ..ast.elrond import CALL_STACK_PATH, cfg_changes_call_stack, command_is_new_wasm_instance,get_first_instr, get_hostcall_name +from ..ast.elrond import ( + CALL_STACK_PATH, + cfg_changes_call_stack, + command_is_new_wasm_instance, + get_first_instr, + get_hostcall_name, +) from ..timing import Timer from ..tools import Tools from .cell_abstracter import CellAbstracter @@ -16,7 +22,6 @@ from .printers import print_node from .wasm_krun_initializer import WasmKrunInitializer - CUT_POINT_RULES = [ # This runs with the LLVM backend 'ELROND-CONFIG.newWasmInstance', @@ -82,7 +87,10 @@ def run_claim( kcfg_exploration = KCFGExploration(kcfg) abstract_call_stack = CellAbstracter( - cell_path=CALL_STACK_PATH, variable_root='AbstractCallStack', variable_sort=LIST, destination=target_node_id, + cell_path=CALL_STACK_PATH, + variable_root='AbstractCallStack', + variable_sort=LIST, + destination=target_node_id, ) try: diff --git a/kmxwasm/src/kmxwasm/tools.py b/kmxwasm/src/kmxwasm/tools.py index e81fb7b3..cc85be8f 100644 --- a/kmxwasm/src/kmxwasm/tools.py +++ b/kmxwasm/src/kmxwasm/tools.py @@ -3,7 +3,6 @@ from tempfile import NamedTemporaryFile from typing import Any, Optional -from pyk.utils import BugReport from pyk.kast.inner import KInner from pyk.kast.kast import kast_term from pyk.kast.pretty import SymbolTable @@ -13,7 +12,7 @@ from pyk.ktool.kprove import KProve from pyk.ktool.krun import KRunOutput, _krun from pyk.prelude.k import GENERATED_TOP_CELL - +from pyk.utils import BugReport USE_BUG_REPORT = False @@ -56,7 +55,7 @@ def printer(self) -> KPrint: @property def explorer(self) -> KCFGExplore: bug_report = None - if (USE_BUG_REPORT): + if USE_BUG_REPORT: bug_report = BugReport(Path('bug-report')) if not self.__kore_server: if self.__kore_client: @@ -78,11 +77,7 @@ def explorer(self) -> KCFGExplore: # port=39425, ) if not self.__kore_client: - self.__kore_client = KoreClient( - 'localhost', - self.__kore_server.port, - bug_report=bug_report - ) + self.__kore_client = KoreClient('localhost', self.__kore_server.port, bug_report=bug_report) if not self.__explorer: self.__explorer = KCFGExplore(self.printer, self.__kore_client) diff --git a/kmxwasm/src/tests/integration/test_integration.py b/kmxwasm/src/tests/integration/test_integration.py index 5d0177fd..38353594 100644 --- a/kmxwasm/src/tests/integration/test_integration.py +++ b/kmxwasm/src/tests/integration/test_integration.py @@ -1,28 +1,29 @@ from pathlib import Path import pytest - from pyk.kast.inner import KApply from pyk.prelude.utils import token from kmxwasm.build import HASKELL, kbuild_semantics -from kmxwasm.property_testing.paths import KBUILD_DIR, KBUILD_ML_PATH, ROOT -from kmxwasm.tools import Tools from kmxwasm.json import load_json_kclaim -from kmxwasm.property_testing.wasm_krun_initializer import WasmKrunInitializer +from kmxwasm.property_testing.paths import KBUILD_DIR, KBUILD_ML_PATH from kmxwasm.property_testing.running import Success, run_claim +from kmxwasm.property_testing.wasm_krun_initializer import WasmKrunInitializer +from kmxwasm.tools import Tools TEST_DATA = (Path(__file__).parent / 'data').resolve(strict=True) INPUT_FILES = [TEST_DATA / 'test_call_add_less-spec.json'] + @pytest.fixture(scope='module') def tools() -> Tools: - return kbuild_semantics( - output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL, booster=False - ) + return kbuild_semantics(output_dir=KBUILD_DIR, config_file=KBUILD_ML_PATH, target=HASKELL, booster=False) -@pytest.mark.parametrize('test_file', INPUT_FILES, ids=[str(test_file.relative_to(TEST_DATA)) for test_file in INPUT_FILES]) -def test_success(test_file:Path, tools:Tools) -> None: + +@pytest.mark.parametrize( + 'test_file', INPUT_FILES, ids=[str(test_file.relative_to(TEST_DATA)) for test_file in INPUT_FILES] +) +def test_success(test_file: Path, tools: Tools) -> None: claim = load_json_kclaim(test_file) # Fix the claim, it's not clear why these cells are being # removed when generating claims. @@ -34,8 +35,7 @@ def test_success(test_file:Path, tools:Tools) -> None: claim=claim, restart_kcfg=None, depth=1000, - run_id = None, + run_id=None, ) assert isinstance(result, Success), [result] - From b79083246ce2302d69f6d144e791bcbe9aef895c Mon Sep 17 00:00:00 2001 From: Virgil Date: Fri, 6 Oct 2023 12:51:19 +0300 Subject: [PATCH 14/15] Fix .ProofOperationList name --- kmxwasm/k-src/lemmas/proofs/list-size.k | 2 +- kmxwasm/k-src/lemmas/proofs/max-inequalities.k | 16 ++++++++-------- kmxwasm/k-src/lemmas/proofs/mod-int-total.k | 18 +++++++++--------- kmxwasm/k-src/lemmas/proofs/pound-bool.k | 10 +++++----- kmxwasm/k-src/lemmas/semantics/syntax.md | 2 +- kmxwasm/src/kmxwasm/lemmas/expression.py | 2 +- 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/kmxwasm/k-src/lemmas/proofs/list-size.k b/kmxwasm/k-src/lemmas/proofs/list-size.k index 6a1bf7e7..db38aa38 100644 --- a/kmxwasm/k-src/lemmas/proofs/list-size.k +++ b/kmxwasm/k-src/lemmas/proofs/list-size.k @@ -6,7 +6,7 @@ module LIST-SIZE claim - ( runProof ( proofOperationList ( basicListInduction ( L:List ) , .List{"proofOperationList"}_BytesStack ( ) ) ) => end ) + ( runProof ( basicListInduction ( L:List ) ; .ProofOperationList ) => end ) ... diff --git a/kmxwasm/k-src/lemmas/proofs/max-inequalities.k b/kmxwasm/k-src/lemmas/proofs/max-inequalities.k index a605f105..8f86bbbd 100644 --- a/kmxwasm/k-src/lemmas/proofs/max-inequalities.k +++ b/kmxwasm/k-src/lemmas/proofs/max-inequalities.k @@ -6,7 +6,7 @@ module MAX-INEQUALITIES claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ( runProof ( var ( X:Int ) ; split ( Y:Int <=Int Z:Int , split ( X:Int end ) ... @@ -25,7 +25,7 @@ module MAX-INEQUALITIES claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ( runProof ( var ( X:Int ) ; split ( Y:Int <=Int Z:Int , split ( X:Int end ) ... @@ -44,7 +44,7 @@ module MAX-INEQUALITIES claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ( runProof ( var ( X:Int ) ; split ( Y:Int <=Int Z:Int , split ( X:Int end ) ... @@ -63,7 +63,7 @@ module MAX-INEQUALITIES claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ( runProof ( var ( X:Int ) ; split ( Y:Int <=Int Z:Int , split ( X:Int end ) ... @@ -82,7 +82,7 @@ module MAX-INEQUALITIES claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ( runProof ( var ( X:Int ) ; split ( Y:Int <=Int Z:Int , split ( X:Int end ) ... @@ -101,7 +101,7 @@ module MAX-INEQUALITIES claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ( runProof ( var ( X:Int ) ; split ( Y:Int <=Int Z:Int , split ( X:Int end ) ... @@ -120,7 +120,7 @@ module MAX-INEQUALITIES claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ( runProof ( var ( X:Int ) ; split ( Y:Int <=Int Z:Int , split ( X:Int end ) ... @@ -139,7 +139,7 @@ module MAX-INEQUALITIES claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( split ( Y:Int <=Int Z:Int , proofOperationList ( split ( X:Int end ) + ( runProof ( var ( X:Int ) ; split ( Y:Int <=Int Z:Int , split ( X:Int end ) ... diff --git a/kmxwasm/k-src/lemmas/proofs/mod-int-total.k b/kmxwasm/k-src/lemmas/proofs/mod-int-total.k index f04af678..e611dd3e 100644 --- a/kmxwasm/k-src/lemmas/proofs/mod-int-total.k +++ b/kmxwasm/k-src/lemmas/proofs/mod-int-total.k @@ -6,7 +6,7 @@ module MOD-INT-TOTAL claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ( runProof ( var ( X:Int ) ; var ( Y:Int ) ; var ( Z:Int ) ; var ( T:Int ) ; var ( M:Int ) ; .ProofOperationList ) => end ) ... @@ -22,7 +22,7 @@ module MOD-INT-TOTAL claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ( runProof ( var ( X:Int ) ; var ( Y:Int ) ; var ( Z:Int ) ; var ( T:Int ) ; var ( M:Int ) ; .ProofOperationList ) => end ) ... @@ -38,7 +38,7 @@ module MOD-INT-TOTAL claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ( runProof ( var ( X:Int ) ; var ( Y:Int ) ; var ( Z:Int ) ; var ( T:Int ) ; var ( M:Int ) ; .ProofOperationList ) => end ) ... @@ -54,7 +54,7 @@ module MOD-INT-TOTAL claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ( runProof ( var ( X:Int ) ; var ( Y:Int ) ; var ( Z:Int ) ; var ( T:Int ) ; var ( M:Int ) ; .ProofOperationList ) => end ) ... @@ -70,7 +70,7 @@ module MOD-INT-TOTAL claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ( runProof ( var ( X:Int ) ; var ( Y:Int ) ; var ( Z:Int ) ; var ( T:Int ) ; var ( M:Int ) ; .ProofOperationList ) => end ) ... @@ -87,7 +87,7 @@ module MOD-INT-TOTAL claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ( runProof ( var ( X:Int ) ; var ( Y:Int ) ; var ( Z:Int ) ; var ( T:Int ) ; var ( M:Int ) ; .ProofOperationList ) => end ) ... @@ -104,7 +104,7 @@ module MOD-INT-TOTAL claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ( runProof ( var ( X:Int ) ; var ( Y:Int ) ; var ( Z:Int ) ; var ( T:Int ) ; var ( M:Int ) ; .ProofOperationList ) => end ) ... @@ -123,7 +123,7 @@ module MOD-INT-TOTAL claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ( runProof ( var ( X:Int ) ; var ( Y:Int ) ; var ( Z:Int ) ; var ( T:Int ) ; var ( M:Int ) ; .ProofOperationList ) => end ) ... @@ -140,7 +140,7 @@ module MOD-INT-TOTAL claim - ( runProof ( proofOperationList ( var ( X:Int ) , proofOperationList ( var ( Y:Int ) , proofOperationList ( var ( Z:Int ) , proofOperationList ( var ( T:Int ) , proofOperationList ( var ( M:Int ) , .List{"proofOperationList"}_BytesStack ( ) ) ) ) ) ) ) => end ) + ( runProof ( var ( X:Int ) ; var ( Y:Int ) ; var ( Z:Int ) ; var ( T:Int ) ; var ( M:Int ) ; .ProofOperationList ) => end ) ... diff --git a/kmxwasm/k-src/lemmas/proofs/pound-bool.k b/kmxwasm/k-src/lemmas/proofs/pound-bool.k index 09037577..67676aac 100644 --- a/kmxwasm/k-src/lemmas/proofs/pound-bool.k +++ b/kmxwasm/k-src/lemmas/proofs/pound-bool.k @@ -6,7 +6,7 @@ module POUND-BOOL claim - ( runProof ( proofOperationList ( split ( B:Bool , .List{"proofOperationList"}_BytesStack ( ) , .List{"proofOperationList"}_BytesStack ( ) ) , .List{"proofOperationList"}_BytesStack ( ) ) ) => end ) + ( runProof ( split ( B:Bool , .ProofOperationList , .ProofOperationList ) ; .ProofOperationList ) => end ) ... @@ -22,7 +22,7 @@ module POUND-BOOL claim - ( runProof ( proofOperationList ( split ( B:Bool , .List{"proofOperationList"}_BytesStack ( ) , .List{"proofOperationList"}_BytesStack ( ) ) , .List{"proofOperationList"}_BytesStack ( ) ) ) => end ) + ( runProof ( split ( B:Bool , .ProofOperationList , .ProofOperationList ) ; .ProofOperationList ) => end ) ... @@ -38,7 +38,7 @@ module POUND-BOOL claim - ( runProof ( proofOperationList ( split ( B:Bool , .List{"proofOperationList"}_BytesStack ( ) , .List{"proofOperationList"}_BytesStack ( ) ) , .List{"proofOperationList"}_BytesStack ( ) ) ) => end ) + ( runProof ( split ( B:Bool , .ProofOperationList , .ProofOperationList ) ; .ProofOperationList ) => end ) ... @@ -54,7 +54,7 @@ module POUND-BOOL claim - ( runProof ( proofOperationList ( split ( B:Bool , .List{"proofOperationList"}_BytesStack ( ) , .List{"proofOperationList"}_BytesStack ( ) ) , .List{"proofOperationList"}_BytesStack ( ) ) ) => end ) + ( runProof ( split ( B:Bool , .ProofOperationList , .ProofOperationList ) ; .ProofOperationList ) => end ) ... @@ -71,7 +71,7 @@ module POUND-BOOL claim - ( runProof ( proofOperationList ( split ( B:Bool , .List{"proofOperationList"}_BytesStack ( ) , .List{"proofOperationList"}_BytesStack ( ) ) , .List{"proofOperationList"}_BytesStack ( ) ) ) => end ) + ( runProof ( split ( B:Bool , .ProofOperationList , .ProofOperationList ) ; .ProofOperationList ) => end ) ... diff --git a/kmxwasm/k-src/lemmas/semantics/syntax.md b/kmxwasm/k-src/lemmas/semantics/syntax.md index 362cddcb..b6612f3c 100644 --- a/kmxwasm/k-src/lemmas/semantics/syntax.md +++ b/kmxwasm/k-src/lemmas/semantics/syntax.md @@ -8,7 +8,7 @@ module PROOF-SYNTAX | split(Bool, ProofOperationList, ProofOperationList) [klabel(proofSplit), symbol] | DestructOperation | ProofUserOperation - syntax ProofOperationList ::= List{ProofOperation, ";"} [klabel(proofOperationList)] + syntax ProofOperationList ::= List{ProofOperation, ";"} [klabel(proofOperationList), symbol] syntax ProofUserOperation syntax DestructOperation diff --git a/kmxwasm/src/kmxwasm/lemmas/expression.py b/kmxwasm/src/kmxwasm/lemmas/expression.py index 00224e05..69409b73 100644 --- a/kmxwasm/src/kmxwasm/lemmas/expression.py +++ b/kmxwasm/src/kmxwasm/lemmas/expression.py @@ -138,5 +138,5 @@ def mandos_cell(*args: KInner) -> KApply: def proofOperationList(proof: Iterable[KInner]) -> KInner: # noqa: N802 return simple_list( - concat_label='proofOperationList', empty_label='.List{"proofOperationList"}_BytesStack', items=proof + concat_label='proofOperationList', empty_label='.List{"proofOperationList"}', items=proof ) From 4497c78d9785136807fa1b1d48bc7aa8958bbf3e Mon Sep 17 00:00:00 2001 From: Virgil Date: Fri, 6 Oct 2023 22:19:50 +0300 Subject: [PATCH 15/15] Remove unused variable --- kmxwasm/src/kmxwasm/lemmas/expression.py | 4 +--- kmxwasm/src/kmxwasm/lemmas/lemmas.py | 2 -- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/kmxwasm/src/kmxwasm/lemmas/expression.py b/kmxwasm/src/kmxwasm/lemmas/expression.py index 69409b73..2720854f 100644 --- a/kmxwasm/src/kmxwasm/lemmas/expression.py +++ b/kmxwasm/src/kmxwasm/lemmas/expression.py @@ -137,6 +137,4 @@ def mandos_cell(*args: KInner) -> KApply: def proofOperationList(proof: Iterable[KInner]) -> KInner: # noqa: N802 - return simple_list( - concat_label='proofOperationList', empty_label='.List{"proofOperationList"}', items=proof - ) + return simple_list(concat_label='proofOperationList', empty_label='.List{"proofOperationList"}', items=proof) diff --git a/kmxwasm/src/kmxwasm/lemmas/lemmas.py b/kmxwasm/src/kmxwasm/lemmas/lemmas.py index e6284676..0a4beda3 100644 --- a/kmxwasm/src/kmxwasm/lemmas/lemmas.py +++ b/kmxwasm/src/kmxwasm/lemmas/lemmas.py @@ -56,7 +56,6 @@ def make_rule(self, kast_defn: KDefinition) -> KRule: rhs_vars = free_vars(self.rhs) var_occurrences = count_vars(mlAnd([KRewrite(self.lhs, self.rhs), self.requires])) v_subst: dict[str, KVariable] = {} - vremap_subst: dict[str, KVariable] = {} for v in var_occurrences: new_v = v if var_occurrences[v] == 1: @@ -65,7 +64,6 @@ def make_rule(self, kast_defn: KDefinition) -> KRule: new_v = '?' + new_v if new_v != v: v_subst[v] = KVariable(new_v) - vremap_subst[new_v] = KVariable(v) lhs = Subst(v_subst)(self.lhs) rhs = self.rhs # apply_existential_substitutions(Subst(v_subst)(self.rhs))