gitextract_ibtqno7a/ ├── .gitignore ├── CompCert-LICENSE.txt ├── README.md ├── binaries/ │ ├── MacOS/ │ │ ├── dsc │ │ ├── dsc_antchain │ │ └── minicc │ └── linux/ │ ├── dsc │ ├── dsc_antchain │ └── minicc ├── contracts/ │ ├── amm/ │ │ ├── .csdp.cache │ │ ├── .lia.cache │ │ ├── .nia.cache │ │ ├── .nra.cache │ │ ├── amm/ │ │ │ ├── RefineAMM.v │ │ │ ├── _CoqProject │ │ │ ├── prf.v │ │ │ ├── prf_int.v │ │ │ └── subdir.mk │ │ ├── amm.ds │ │ ├── cst_man.v │ │ ├── math_lemma.v │ │ └── prf_int.v │ ├── amm-i.wasm │ ├── amm-i.wat │ ├── amm-r.wasm │ ├── amm-r.wat │ ├── auction/ │ │ ├── auction/ │ │ │ └── FunctionalCorrectness.v │ │ ├── auction.ds │ │ ├── auction.wasm │ │ └── test.js │ ├── defi/ │ │ ├── amm_dsmodel.ucl │ │ └── defi.ds │ ├── fpblind/ │ │ ├── build.sh │ │ ├── fpblind/ │ │ │ ├── CertiKOS.v │ │ │ ├── DataTypeOps.v │ │ │ ├── DataTypes.v │ │ │ ├── EdsgerIdents.v │ │ │ ├── LSrcBLINDAUCTION.v │ │ │ ├── LSrcEVMOPCODE.v │ │ │ ├── LayerBLINDAUCTION.v │ │ │ ├── LayerEVMOPCODE.v │ │ │ ├── Makefile.conf │ │ │ ├── ObjBlindAuctionCode.v │ │ │ ├── ObjSimBlindAuction.v │ │ │ ├── RefineBLINDAUCTION.v │ │ │ ├── Symbols.v │ │ │ └── _CoqProject │ │ ├── fpblind.ds │ │ ├── fpblind.sol │ │ ├── prf.v │ │ ├── prf.v.crashcoqide │ │ ├── spblind/ │ │ │ ├── CertiKOS.v │ │ │ ├── DataTypeOps.v │ │ │ ├── DataTypeProofs.v │ │ │ ├── DataTypes.v │ │ │ ├── EdsgerIdents.v │ │ │ ├── LSimBLINDAUCTION.v │ │ │ ├── LSimEVMOPCODE.v │ │ │ ├── LSrcBLINDAUCTION.v │ │ │ ├── LSrcEVMOPCODE.v │ │ │ ├── LayerBLINDAUCTION.v │ │ │ ├── LayerEVMOPCODE.v │ │ │ ├── Makefile │ │ │ ├── Makefile.conf │ │ │ ├── ObjBlindAuctionCode.v │ │ │ ├── ObjBlindAuctionCodeProofs.v │ │ │ ├── ObjSimBlindAuction.v │ │ │ ├── ObjSimEVMOpcode.v │ │ │ ├── RefineBLINDAUCTION.v │ │ │ ├── Symbols.v │ │ │ ├── _CoqProject │ │ │ ├── extraction/ │ │ │ │ ├── Makefile │ │ │ │ └── Tester.ml │ │ │ └── subdir.mk │ │ └── spblind.ds │ ├── livevar/ │ │ ├── clash.dot │ │ ├── livevar.dot │ │ ├── livevar.ds │ │ ├── livevar_clash.dot │ │ └── lv.dot │ ├── olive/ │ │ ├── Olive.ds │ │ ├── lockable.ds │ │ └── test.js │ ├── simplestorage/ │ │ └── simplestorage.ds │ ├── swaps/ │ │ ├── build.sh │ │ ├── impl.v │ │ ├── prf_setup.v │ │ ├── swaps_general/ │ │ │ ├── CertiKOS.v │ │ │ ├── DataTypeOps.v │ │ │ ├── DataTypeProofs.v │ │ │ ├── DataTypes.v │ │ │ ├── EdsgerIdents.v │ │ │ ├── LSimEVMOPCODE.v │ │ │ ├── LSimSWAPCONTRACT.v │ │ │ ├── LSrcEVMOPCODE.v │ │ │ ├── LSrcSWAPCONTRACT.v │ │ │ ├── LayerEVMOPCODE.v │ │ │ ├── LayerSWAPCONTRACT.v │ │ │ ├── ObjSimDiGraph.v │ │ │ ├── ObjSimEVMOpcode.v │ │ │ ├── ObjSimSwapContract.v │ │ │ ├── ObjSwapContractCode.v │ │ │ ├── ObjSwapContractCodeProofs.v │ │ │ ├── RefineSWAPCONTRACT.v │ │ │ ├── Symbols.v │ │ │ ├── extraction/ │ │ │ │ ├── Makefile │ │ │ │ └── Tester.ml │ │ │ └── subdir.mk │ │ ├── swaps_general.ds │ │ ├── swaps_threeway/ │ │ │ ├── extraction/ │ │ │ │ └── Makefile │ │ │ └── subdir.mk │ │ ├── swaps_threeway.ds │ │ └── threeway_prf.v │ ├── token/ │ │ ├── test.js │ │ ├── token/ │ │ │ ├── FunctionalCorrectness.v │ │ │ ├── Invariant.v │ │ │ ├── Makefile │ │ │ ├── Makefile.conf │ │ │ ├── ManualRefinement.v │ │ │ ├── ObjFixedSupplyTokenCodeProofs.v │ │ │ ├── RefineFIXEDSUPPLYTOKEN.v │ │ │ ├── _CoqProject │ │ │ ├── prf.v │ │ │ └── subdir.mk │ │ ├── token.ds │ │ ├── token.wasm │ │ └── token.wat │ └── wasmtest/ │ ├── address/ │ │ ├── address-i.wasm │ │ ├── address-i.wat │ │ ├── address-r.wasm │ │ ├── address-r.wat │ │ ├── address.ds │ │ ├── address.js │ │ └── address_test.js │ ├── arith/ │ │ ├── arith-i.wasm │ │ ├── arith-i.wat │ │ ├── arith-r.wasm │ │ ├── arith-r.wat │ │ ├── arith.ds │ │ └── arith.js │ ├── asserts/ │ │ ├── asserts-i.wasm │ │ ├── asserts-i.wat │ │ ├── asserts-r.wasm │ │ ├── asserts-r.wat │ │ ├── asserts.ds │ │ └── asserts.js │ ├── builtins/ │ │ ├── builtins-i.wasm │ │ ├── builtins-i.wat │ │ ├── builtins-r.wasm │ │ ├── builtins-r.wat │ │ ├── builtins.ds │ │ └── builtins.js │ ├── events/ │ │ ├── events-i.wasm │ │ ├── events-i.wat │ │ ├── events-r.wasm │ │ ├── events-r.wat │ │ ├── events.ds │ │ └── events.js │ ├── for/ │ │ ├── for-i.wasm │ │ ├── for-i.wat │ │ ├── for-r.wasm │ │ ├── for-r.wat │ │ ├── for.ds │ │ └── for.js │ ├── index.js │ ├── init-single.sh │ ├── keccak256/ │ │ ├── keccak256-i.wasm │ │ ├── keccak256-i.wat │ │ ├── keccak256-r.wasm │ │ ├── keccak256-r.wat │ │ ├── keccak256.ds │ │ └── keccak256.js │ ├── layers1/ │ │ ├── layers1-i.wasm │ │ ├── layers1-i.wat │ │ ├── layers1-r.wasm │ │ ├── layers1-r.wat │ │ ├── layers1.ds │ │ └── layers1.js │ ├── lib/ │ │ ├── keccak256.wasm │ │ ├── keccak256.wat │ │ ├── wrapper.wasm │ │ └── wrapper.wat │ ├── match-int/ │ │ ├── match-int-i.wasm │ │ ├── match-int-i.wat │ │ ├── match-int-r.wasm │ │ ├── match-int-r.wat │ │ ├── match-int.ds │ │ └── match-int.js │ ├── run_test.sh │ ├── struct/ │ │ ├── struct-i.wasm │ │ ├── struct-i.wat │ │ ├── struct-r.wasm │ │ ├── struct-r.wat │ │ ├── struct.ds │ │ └── struct.js │ ├── testEWASM.sh │ └── utils.js ├── minic_unittests/ │ ├── basic_constructor.mc │ ├── comments.mc │ ├── declarations.mc │ ├── expressions.mc │ ├── functions.mc │ ├── methods.mc │ ├── statements.mc │ ├── test_bytecode.sh │ └── test_parse_and_print.sh ├── src/ │ ├── Edsger/ │ │ ├── abi.ml │ │ ├── abi.mli │ │ ├── ast.ml │ │ ├── ast.mli │ │ ├── astcommon.ml │ │ ├── astcommon.mli │ │ ├── config.h │ │ ├── coqgen.ml │ │ ├── dune │ │ ├── edsger.ml │ │ ├── lexer.mll │ │ ├── make_parser.sh │ │ ├── makefile_model │ │ ├── metadata.ml │ │ ├── minicgen.ml │ │ ├── parser.ml │ │ ├── parser.mli │ │ ├── parser.mly │ │ ├── parsetree.ml │ │ ├── parsetree.mli │ │ ├── typecheck.ml │ │ └── uclidgen.ml │ ├── Makefile │ ├── OpenSC/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── src/ │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── abi.ml │ │ │ ├── ast.ml │ │ │ ├── dune │ │ │ ├── example_contract/ │ │ │ │ ├── auction.sc │ │ │ │ ├── simpleStorage.sc │ │ │ │ ├── simpleToken.sc │ │ │ │ ├── test-simpleStorage.js │ │ │ │ ├── test-simpleToken.js │ │ │ │ ├── test-token.js │ │ │ │ ├── test.sc │ │ │ │ └── token.sc │ │ │ ├── opensc.ml │ │ │ ├── parser.mly │ │ │ ├── sast.ml │ │ │ ├── scanner.mll │ │ │ ├── semant.ml │ │ │ ├── test.ml │ │ │ ├── test2.ml │ │ │ ├── test3.ml │ │ │ ├── test4.ml │ │ │ ├── testfolder/ │ │ │ │ └── scanner.mll │ │ │ └── translateMinic.ml │ │ └── testcase/ │ │ ├── 01_check_var_exist_succ.sc │ │ ├── 02_check_var_exist_fail.sc │ │ ├── 03_check_var_duplicate_announce_fail.sc │ │ ├── 04_check_func_exist_succ.sc │ │ ├── 05_check_func_exist_fail.sc │ │ ├── 06_check_func_duplicate_announce_fail.sc │ │ ├── 07_check_func_duplicate_implement_fail.sc │ │ ├── 08_check_func_constructor_announce_once_fail.sc │ │ ├── 09_check_func_constructor_announce_once_fail2.sc │ │ ├── 10_check_var_in_method_succ.sc │ │ ├── 11_check_var_duplicate_in_method_fail.sc │ │ ├── 12_check_var_method_miss_args_fail.sc │ │ ├── 13_check_var_method_redundant_args_fail.sc │ │ ├── 14_check_var_args_unmatch_decl_type_fail.sc │ │ ├── 15_check_var_duplicate_with_global_var_in_args_fail.sc │ │ ├── 16_check_var_in_method_type_succ.sc │ │ ├── 17_check_var_in_method_return_type_succ.sc │ │ ├── 18_check_var_in_method_return_type_fail.sc │ │ ├── 19_check_binop_add_sub_succ.sc │ │ ├── 20_check_binop_add_sub_fail.sc │ │ ├── 21_check_binop_times_divide_succ.sc │ │ ├── 22_check_binop_times_divide_fail.sc │ │ ├── 23_check_binop_eq_neq_succ.sc │ │ ├── 24_check_binop_eq_neq_fail.sc │ │ ├── 25_check_binop_lgt_rgt_eq_succ.sc │ │ ├── 26_check_binop_lgt_rgt_eq_fail.sc │ │ ├── 27_check_binop_and_or_succ.sc │ │ ├── 28_check_binop_and_or_fail.sc │ │ ├── 29_check_binop_passign_succ.sc │ │ ├── 30_check_binop_passign_fail.sc │ │ ├── 31_check_binop_combine01_succ.sc │ │ ├── 32_check_binop_combine02_succ.sc │ │ ├── 33_check_binop_combine03_succ.sc │ │ ├── 34_check_binop_combine04_succ.sc │ │ ├── 35_check_map_query_succ.sc │ │ ├── 36_check_map_id_err_fail.sc │ │ ├── 37_check_map_not_map_type_fail.sc │ │ ├── 38_check_map_query_value_miss_fail.sc │ │ ├── 39_check_map_query_redundant_fail.sc │ │ ├── 40_check_map_query_wrong_type_fail.sc │ │ ├── 41_check_map_query_key_type_not_allowed_fail.sc │ │ ├── 42_check_map_query_assign_succ.sc │ │ └── 43_check_map_query_assign_unmatch_fail.sc │ ├── README.md │ ├── Runtime.v │ ├── _CoqProject │ ├── backend/ │ │ ├── AST.v │ │ ├── AbstractData.v │ │ ├── Cop.v │ │ ├── Ctypes.v │ │ ├── Environments/ │ │ │ ├── AllEnvironments.v │ │ │ ├── ExtEnv.v │ │ │ ├── Globalenvs.v │ │ │ ├── HashEnv.v │ │ │ └── StackEnv.v │ │ ├── Events.v │ │ ├── Expressions/ │ │ │ ├── ExpMiniC.v │ │ │ ├── ExpStacked.v │ │ │ └── SemanticsMiniC.v │ │ ├── GasModel.v │ │ ├── IndexLib.v │ │ ├── MachineModel.v │ │ ├── MachineModelLow.v │ │ ├── MemoryModel.v │ │ ├── Options.v │ │ ├── Smallstep.v │ │ ├── Statements/ │ │ │ └── StmtMiniC.v │ │ ├── SymbolicKeccak.v │ │ ├── TempModel.v │ │ ├── Values/ │ │ │ ├── HighValues.v │ │ │ └── LowValues.v │ │ ├── extraction/ │ │ │ ├── ASM.ml │ │ │ ├── ASM.mli │ │ │ ├── AST.ml │ │ │ ├── AST.mli │ │ │ ├── Ascii.ml │ │ │ ├── Ascii.mli │ │ │ ├── BinInt.ml │ │ │ ├── BinInt.mli │ │ │ ├── BinNat.ml │ │ │ ├── BinNat.mli │ │ │ ├── BinNums.ml │ │ │ ├── BinNums.mli │ │ │ ├── BinNumsExt.ml │ │ │ ├── BinNumsExt.mli │ │ │ ├── BinPos.ml │ │ │ ├── BinPos.mli │ │ │ ├── BinPosDef.ml │ │ │ ├── BinPosDef.mli │ │ │ ├── BuiltinSemanticsExt.ml │ │ │ ├── BuiltinSemanticsExt.mli │ │ │ ├── BytecodeExt.ml │ │ │ ├── Compiled.ml │ │ │ ├── Compiled.mli │ │ │ ├── Cop.ml │ │ │ ├── Cop.mli │ │ │ ├── CopExt.ml │ │ │ ├── CopExt.mli │ │ │ ├── Coqlib.ml │ │ │ ├── Coqlib.mli │ │ │ ├── Ctypes.ml │ │ │ ├── Ctypes.mli │ │ │ ├── CtypesExt.ml │ │ │ ├── CtypesExt.mli │ │ │ ├── Datatypes.ml │ │ │ ├── Datatypes.mli │ │ │ ├── DatatypesExt.ml │ │ │ ├── DatatypesExt.mli │ │ │ ├── Decimal.ml │ │ │ ├── Decimal.mli │ │ │ ├── EVM.ml │ │ │ ├── EVM.mli │ │ │ ├── EVMExt.ml │ │ │ ├── EVMExt.mli │ │ │ ├── ExpCintptr.ml │ │ │ ├── ExpCintptr.mli │ │ │ ├── ExpMiniC.ml │ │ │ ├── ExpMiniC.mli │ │ │ ├── ExpStacked.ml │ │ │ ├── ExpStacked.mli │ │ │ ├── ExprCompile.ml │ │ │ ├── ExprCompile.mli │ │ │ ├── Float.ml │ │ │ ├── Float.mli │ │ │ ├── FramesLabelsCintptr.ml │ │ │ ├── FramesLabelsCintptr.mli │ │ │ ├── Gen.ml │ │ │ ├── Gen.mli │ │ │ ├── Gen0.ml │ │ │ ├── Gen0.mli │ │ │ ├── Gen1.ml │ │ │ ├── Gen1.mli │ │ │ ├── Gen10.ml │ │ │ ├── Gen10.mli │ │ │ ├── Gen2.ml │ │ │ ├── Gen2.mli │ │ │ ├── Gen3.ml │ │ │ ├── Gen3.mli │ │ │ ├── Gen4.ml │ │ │ ├── Gen4.mli │ │ │ ├── Gen5.ml │ │ │ ├── Gen5.mli │ │ │ ├── Gen6.ml │ │ │ ├── Gen6.mli │ │ │ ├── Gen7.ml │ │ │ ├── Gen7.mli │ │ │ ├── Gen8.ml │ │ │ ├── Gen8.mli │ │ │ ├── Gen9.ml │ │ │ ├── Gen9.mli │ │ │ ├── GlobalenvCompile.ml │ │ │ ├── GlobalenvCompile.mli │ │ │ ├── Globalenvs.ml │ │ │ ├── Globalenvs.mli │ │ │ ├── Glue.ml │ │ │ ├── Glue.mli │ │ │ ├── IndexLib.ml │ │ │ ├── IndexLib.mli │ │ │ ├── Int0.ml │ │ │ ├── Int0.mli │ │ │ ├── Integers.ml │ │ │ ├── Integers.mli │ │ │ ├── Labels.ml │ │ │ ├── Labels.mli │ │ │ ├── Language.ml │ │ │ ├── Language.mli │ │ │ ├── Language0.ml │ │ │ ├── Language0.mli │ │ │ ├── LanguageExt.ml │ │ │ ├── LanguageExt.mli │ │ │ ├── List0.ml │ │ │ ├── List0.mli │ │ │ ├── LowValues.ml │ │ │ ├── LowValues.mli │ │ │ ├── MachineModel.ml │ │ │ ├── MachineModel.mli │ │ │ ├── MachineModelExt.ml │ │ │ ├── Maps0.ml │ │ │ ├── Maps0.mli │ │ │ ├── MemoryModel.ml │ │ │ ├── MemoryModel.mli │ │ │ ├── Monad.ml │ │ │ ├── Monad.mli │ │ │ ├── NameTablesExt.ml │ │ │ ├── Nat0.ml │ │ │ ├── Nat0.mli │ │ │ ├── OptErrMonad.ml │ │ │ ├── OptErrMonad.mli │ │ │ ├── OptionMonad.ml │ │ │ ├── OptionMonad.mli │ │ │ ├── Options.ml │ │ │ ├── Options.mli │ │ │ ├── Peano.ml │ │ │ ├── Peano.mli │ │ │ ├── PeanoNat.ml │ │ │ ├── PeanoNat.mli │ │ │ ├── Printing.ml │ │ │ ├── Semantics.ml │ │ │ ├── Semantics.mli │ │ │ ├── Semantics0.ml │ │ │ ├── Semantics0.mli │ │ │ ├── Semantics1.ml │ │ │ ├── Semantics1.mli │ │ │ ├── Semantics2.ml │ │ │ ├── Semantics2.mli │ │ │ ├── Semantics3.ml │ │ │ ├── Semantics3.mli │ │ │ ├── Specif.ml │ │ │ ├── Specif.mli │ │ │ ├── StackEnv.ml │ │ │ ├── StackEnv.mli │ │ │ ├── StmCompile.ml │ │ │ ├── StmCompile.mli │ │ │ ├── StmtCGraph.ml │ │ │ ├── StmtCGraph.mli │ │ │ ├── StmtCintptr.ml │ │ │ ├── StmtCintptr.mli │ │ │ ├── StmtClinear.ml │ │ │ ├── StmtClinear.mli │ │ │ ├── StmtClocal.ml │ │ │ ├── StmtClocal.mli │ │ │ ├── StmtExpressionless.ml │ │ │ ├── StmtExpressionless.mli │ │ │ ├── StmtMiniC.ml │ │ │ ├── StmtMiniC.mli │ │ │ ├── StmtStacked.ml │ │ │ ├── StmtStacked.mli │ │ │ ├── String0.ml │ │ │ ├── String0.mli │ │ │ ├── Structure.ml │ │ │ ├── Structure.mli │ │ │ ├── TempModelLow.ml │ │ │ ├── TempModelLow.mli │ │ │ ├── Trees.ml │ │ │ ├── Trees.mli │ │ │ ├── Types.ml │ │ │ ├── Types.mli │ │ │ ├── Values.ml │ │ │ ├── Values.mli │ │ │ ├── ZArith_dec.ml │ │ │ ├── ZArith_dec.mli │ │ │ ├── Zpower.ml │ │ │ ├── Zpower.mli │ │ │ └── dune │ │ └── phase/ │ │ └── MiniC/ │ │ ├── BigstepSemantics.v │ │ └── Semantics.v │ ├── backend.mlpack │ ├── cclib/ │ │ ├── Coqlib.v │ │ ├── Errors.v │ │ ├── Integers.v │ │ └── Maps.v │ ├── core/ │ │ ├── Cval.v │ │ ├── HyperType.v │ │ ├── HyperTypeInst.v │ │ ├── MemoryModel.v │ │ ├── SEnv.v │ │ ├── Syntax.v │ │ ├── SynthesisExpr.v │ │ ├── SynthesisFunc.v │ │ └── SynthesisStmt.v │ ├── dune-project │ ├── dune-workspace │ ├── lib/ │ │ ├── ArithInv.v │ │ ├── IndexedMaps.v │ │ ├── LangDef.v │ │ ├── Lens.v │ │ ├── Monad/ │ │ │ ├── Applicative.v │ │ │ ├── ContOptionMonad.v │ │ │ ├── Functor.v │ │ │ ├── Monad.v │ │ │ ├── MonadExc.v │ │ │ ├── MonadInv.v │ │ │ ├── MonadLaws.v │ │ │ ├── MonadPlus.v │ │ │ ├── MonadReader.v │ │ │ ├── MonadState.v │ │ │ ├── MonadTrans.v │ │ │ ├── MonadZero.v │ │ │ ├── OptErrMonad.v │ │ │ ├── OptErrMonadLaws.v │ │ │ ├── OptionMonad.v │ │ │ ├── OptionMonadLaws.v │ │ │ ├── RunStateTInv.v │ │ │ ├── StateMonad.v │ │ │ ├── StateMonadLaws.v │ │ │ └── StateMonadOption.v │ │ ├── OProp.v │ │ ├── SimpleIndexedMaps.v │ │ └── SimpleMaps.v │ ├── minic/ │ │ ├── dune │ │ ├── minicc.ml │ │ └── src/ │ │ ├── ast.ml │ │ ├── astExt.ml │ │ ├── dune │ │ ├── lexer.mll │ │ ├── parser.mly │ │ └── typecheck.ml │ └── opam └── unittests/ ├── .gitignore ├── README.md ├── amm_test.ts ├── builtins_test.ts ├── chain.ts ├── conflux-chain.ts ├── contracts/ │ ├── address.ds │ ├── amm.ds │ ├── asserts.ds │ ├── builtins.ds │ ├── constructor.ds │ ├── constructor2.ds │ ├── events.ds │ ├── forloop.ds │ ├── keccak256.ds │ ├── layers1.ds │ ├── match-int.ds │ ├── simple_call.ds │ └── struct.ds ├── cut_amm.sh ├── ethereum-chain.ts ├── events_test.ts ├── keccak256_test.ts ├── package.json ├── reference/ │ ├── README.md │ ├── events.sol │ └── keccak256.sol ├── replace_addresses.sh ├── run_unittests.sh ├── start_conflux.sh ├── test-unittest.ts ├── tests.ts ├── tests.yml ├── tethys.toml ├── tsconfig.json └── utils.ts