gitextract__1j3kvgc/ ├── .github/ │ └── workflows/ │ └── ci.yml ├── .gitignore ├── C/ │ ├── Makefile │ ├── bitcoin/ │ │ ├── bitcoinJets.c │ │ ├── bitcoinJets.h │ │ ├── decodeBitcoinJets.inc │ │ ├── env.c │ │ ├── ops.c │ │ ├── ops.h │ │ ├── primitive.c │ │ ├── primitive.h │ │ ├── primitiveEnumJet.inc │ │ ├── primitiveEnumTy.inc │ │ ├── primitiveInitTy.inc │ │ ├── primitiveJetNode.inc │ │ ├── txEnv.c │ │ └── txEnv.h │ ├── bitstream.c │ ├── bitstream.h │ ├── bitstring.h │ ├── bounded.h │ ├── ctx8Pruned.c │ ├── ctx8Pruned.h │ ├── ctx8Unpruned.c │ ├── ctx8Unpruned.h │ ├── dag.c │ ├── dag.h │ ├── decodeCoreJets.inc │ ├── deserialize.c │ ├── deserialize.h │ ├── elements/ │ │ ├── checkSigHashAllTx1.c │ │ ├── checkSigHashAllTx1.h │ │ ├── cmr.c │ │ ├── decodeElementsJets.inc │ │ ├── elementsJets.c │ │ ├── elementsJets.h │ │ ├── env.c │ │ ├── exec.c │ │ ├── ops.c │ │ ├── ops.h │ │ ├── primitive.c │ │ ├── primitive.h │ │ ├── primitiveEnumJet.inc │ │ ├── primitiveEnumTy.inc │ │ ├── primitiveInitTy.inc │ │ ├── primitiveJetNode.inc │ │ ├── txEnv.c │ │ └── txEnv.h │ ├── elements-sources.mk │ ├── eval.c │ ├── eval.h │ ├── frame.c │ ├── frame.h │ ├── hashBlock.c │ ├── hashBlock.h │ ├── include/ │ │ └── simplicity/ │ │ ├── bitcoin/ │ │ │ └── env.h │ │ ├── elements/ │ │ │ ├── cmr.h │ │ │ ├── env.h │ │ │ └── exec.h │ │ └── errorCodes.h │ ├── jets-secp256k1.c │ ├── jets.c │ ├── jets.h │ ├── limitations.h │ ├── precomputed.h │ ├── regression4.c │ ├── regression4.h │ ├── rsort.c │ ├── rsort.h │ ├── schnorr0.c │ ├── schnorr0.h │ ├── schnorr6.c │ ├── schnorr6.h │ ├── secp256k1/ │ │ ├── README.md │ │ ├── assumptions.h │ │ ├── eckey.h │ │ ├── eckey_impl.h │ │ ├── ecmult.h │ │ ├── ecmult_impl.h │ │ ├── extrakeys.h │ │ ├── extrakeys_impl.h │ │ ├── field.h │ │ ├── field_5x52.h │ │ ├── field_5x52_asm_impl.h │ │ ├── field_5x52_impl.h │ │ ├── field_5x52_int128_impl.h │ │ ├── field_impl.h │ │ ├── generator.h │ │ ├── generator_impl.h │ │ ├── group.h │ │ ├── group_impl.h │ │ ├── int128.h │ │ ├── int128_impl.h │ │ ├── int128_native.h │ │ ├── int128_native_impl.h │ │ ├── int128_struct.h │ │ ├── int128_struct_impl.h │ │ ├── modinv64.h │ │ ├── modinv64_impl.h │ │ ├── precomputed_ecmult.h │ │ ├── scalar.h │ │ ├── scalar_4x64.h │ │ ├── scalar_4x64_impl.h │ │ ├── scalar_impl.h │ │ ├── schnorrsig.h │ │ ├── schnorrsig_impl.h │ │ ├── secp256k1.h │ │ ├── secp256k1_impl.h │ │ └── util.h │ ├── sha256.c │ ├── sha256.h │ ├── sha256_x86.inc │ ├── simplicity_alloc.h │ ├── simplicity_assert.h │ ├── taptweak.h │ ├── test.c │ ├── type.c │ ├── type.h │ ├── typeInference.c │ ├── typeInference.h │ ├── typeSkipTest.c │ ├── typeSkipTest.h │ └── uword.h ├── Coq/ │ ├── C/ │ │ ├── divstep.v │ │ ├── extraMath.v │ │ ├── jets_secp256k1.v │ │ ├── modinv.v │ │ ├── progressC.v │ │ └── secp256k1/ │ │ ├── spec_int128.v │ │ ├── spec_modinv64.v │ │ ├── verif_int128_impl.v │ │ └── verif_modinv64_impl.v │ ├── Simplicity/ │ │ ├── Alg.v │ │ ├── Bit.v │ │ ├── BitMachine.v │ │ ├── Core.v │ │ ├── Delegation.v │ │ ├── Digest.v │ │ ├── MerkleRoot.v │ │ ├── Primitive/ │ │ │ └── Bitcoin.v │ │ ├── Primitive.v │ │ ├── SHA256.v │ │ ├── StaticAnalysis.v │ │ ├── Translate.v │ │ ├── Ty.v │ │ ├── Util/ │ │ │ ├── Arith.v │ │ │ ├── List.v │ │ │ ├── Monad/ │ │ │ │ └── Reader.v │ │ │ ├── Monad.v │ │ │ ├── Option.v │ │ │ ├── PackedClass.v │ │ │ └── Thrist.v │ │ └── Word.v │ └── _CoqProject ├── Haskell/ │ ├── Bitcoin/ │ │ └── Simplicity/ │ │ └── Bitcoin/ │ │ ├── DataTypes.hs │ │ └── Primitive.hs │ ├── Core/ │ │ └── Simplicity/ │ │ ├── BitMachine/ │ │ │ ├── Authentic.hs │ │ │ ├── StaticAnalysis/ │ │ │ │ ├── Cost.hs │ │ │ │ └── TCO.hs │ │ │ ├── StaticAnalysis.hs │ │ │ ├── Translate/ │ │ │ │ └── TCO.hs │ │ │ ├── Translate.hs │ │ │ └── Ty.hs │ │ ├── BitMachine.hs │ │ ├── Bitcoin.hs │ │ ├── CoreJets.hs │ │ ├── Delegator/ │ │ │ └── Impl.hs │ │ ├── Delegator.hs │ │ ├── Digest/ │ │ │ └── Pure/ │ │ │ └── SHA.hs │ │ ├── Digest.hs │ │ ├── FFI/ │ │ │ ├── Frame.hs │ │ │ └── Jets.hs │ │ ├── Functor.hs │ │ ├── LibSecp256k1/ │ │ │ ├── Schnorr.hs │ │ │ └── Spec.hs │ │ ├── MerkleRoot/ │ │ │ └── Impl.hs │ │ ├── MerkleRoot.hs │ │ ├── Programs/ │ │ │ ├── Arith.hs │ │ │ ├── Bit.hs │ │ │ ├── Bitcoin/ │ │ │ │ └── Lib.hs │ │ │ ├── Bitcoin.hs │ │ │ ├── CheckSig/ │ │ │ │ └── Lib.hs │ │ │ ├── CheckSig.hs │ │ │ ├── Elements/ │ │ │ │ └── Lib.hs │ │ │ ├── Elements.hs │ │ │ ├── Generic.hs │ │ │ ├── LibSecp256k1/ │ │ │ │ └── Lib.hs │ │ │ ├── LibSecp256k1.hs │ │ │ ├── Loop.hs │ │ │ ├── Sha256/ │ │ │ │ └── Lib.hs │ │ │ ├── Sha256.hs │ │ │ ├── TimeLock.hs │ │ │ └── Word.hs │ │ ├── Serialization.hs │ │ ├── Tags.hs │ │ ├── Tensor.hs │ │ ├── Term/ │ │ │ └── Core.hs │ │ ├── Tree.hs │ │ ├── Ty/ │ │ │ ├── Bit.hs │ │ │ ├── LibSecp256k1.hs │ │ │ ├── Sha256.hs │ │ │ └── Word.hs │ │ ├── Ty.hs │ │ ├── Weight.hs │ │ └── Word.hs │ ├── Elements/ │ │ └── Simplicity/ │ │ └── Elements/ │ │ ├── DataTypes.hs │ │ └── Primitive.hs │ ├── Indef/ │ │ └── Simplicity/ │ │ ├── Dag.hs │ │ ├── Inference.hs │ │ ├── JetType.hs │ │ ├── Primitive.hsig │ │ ├── Semantics.hs │ │ ├── Serialization/ │ │ │ ├── BitString.hs │ │ │ └── ByteString.hs │ │ ├── StaticAnalysis/ │ │ │ └── Cost.hs │ │ └── Term.hs │ ├── Simplicity/ │ │ ├── Bitcoin/ │ │ │ ├── Benchmarks.hs │ │ │ ├── FFI/ │ │ │ │ ├── Env.hs │ │ │ │ └── Jets.hs │ │ │ ├── Jets.hs │ │ │ └── Programs/ │ │ │ ├── SigHash/ │ │ │ │ └── Lib.hs │ │ │ ├── SigHash.hs │ │ │ ├── TimeLock.hs │ │ │ ├── Transaction/ │ │ │ │ └── Lib.hs │ │ │ └── Transaction.hs │ │ └── Elements/ │ │ ├── Benchmarks.hs │ │ ├── FFI/ │ │ │ ├── Env.hs │ │ │ └── Jets.hs │ │ ├── Jets.hs │ │ └── Programs/ │ │ ├── Issuance/ │ │ │ └── Lib.hs │ │ ├── Issuance.hs │ │ ├── SigHash/ │ │ │ └── Lib.hs │ │ ├── SigHash.hs │ │ ├── TimeLock.hs │ │ ├── Transaction/ │ │ │ └── Lib.hs │ │ └── Transaction.hs │ ├── Tests/ │ │ ├── Simplicity/ │ │ │ ├── Arbitrary.hs │ │ │ ├── Bip0340.hs │ │ │ ├── BitMachine/ │ │ │ │ ├── StaticAnalysis/ │ │ │ │ │ └── Tests.hs │ │ │ │ └── Tests.hs │ │ │ ├── Bitcoin/ │ │ │ │ ├── Arbitrary.hs │ │ │ │ ├── FFI/ │ │ │ │ │ ├── Primitive.hs │ │ │ │ │ └── Tests.hs │ │ │ │ ├── Serialization/ │ │ │ │ │ └── Tests.hs │ │ │ │ ├── TestEval.hs │ │ │ │ └── Tests.hs │ │ │ ├── Elements/ │ │ │ │ ├── Arbitrary.hs │ │ │ │ ├── FFI/ │ │ │ │ │ ├── Primitive.hs │ │ │ │ │ └── Tests.hs │ │ │ │ ├── Regression.hs │ │ │ │ ├── Serialization/ │ │ │ │ │ └── Tests.hs │ │ │ │ ├── TestEval.hs │ │ │ │ └── Tests.hs │ │ │ ├── FFI/ │ │ │ │ ├── Bitstream.hs │ │ │ │ ├── Dag.hs │ │ │ │ └── Tests.hs │ │ │ ├── Programs/ │ │ │ │ ├── Example.hs │ │ │ │ └── Tests.hs │ │ │ ├── Serialization/ │ │ │ │ └── Tests.hs │ │ │ ├── TestCoreEval.hs │ │ │ └── Ty/ │ │ │ ├── Arbitrary.hs │ │ │ └── Tests.hs │ │ └── Tests.hs │ └── cbits/ │ ├── bitcoin/ │ │ ├── env.c │ │ └── jets.c │ ├── bitstream.c │ ├── coreJets.c │ ├── dag.c │ ├── elements/ │ │ ├── env.c │ │ └── jets.c │ ├── frame.c │ └── wrappers.h ├── Haskell-Examples/ │ └── TestnetTransaction.hs ├── Haskell-Generate/ │ ├── GenDecodeJet.hs │ ├── GenPrecomputed.hs │ ├── GenPrimitive.hs │ ├── GenRustJets.hs │ ├── GenTests.hs │ └── NameWrangler.hs ├── LICENSE ├── README.md ├── Setup.hs ├── Simplicity-Primitive.html ├── Simplicity-TR.tm ├── Simplicity.C.nix ├── Simplicity.Coq.nix ├── Simplicity.Haskell.nix ├── Simplicity.bib ├── Simplicity.cabal ├── alectryon/ │ ├── alectryon.css │ ├── alectryon.js │ ├── divstep.v.html │ ├── pygments.css │ ├── spec_int128.v.html │ ├── spec_modinv64.v.html │ ├── verif_int128_impl.v.html │ └── verif_modinv64_impl.v.html ├── compcert-opensource.nix ├── compcert-opensource.patch ├── default.nix ├── inheritance.Coq.dot ├── manual-index.html ├── safegcd-bounds.nix ├── shell.nix ├── spelling.ignore.txt ├── unification.patch └── vst.nix