_>k?      !"#$%&'()*+,-./0123456789:;<=>!Safe?@AB?@AB?@ABSafe!";N CDEFGHIJKLCDEFGHIJCDEFGHIJKLSafe!"IN MNOPQRSTUVOPQRMNOPQRSTUSafe35WXYZ[\]^_`abcdeWXYZ[\]^_`abcd WXYZ[\]^_`abcde Safefghijkghijkfghijk Safe!";INUlSome high level utilities to translate a Copilot operator in a standard way | The unhandled operators are monomorphic, and their names are labeled so | that each name corresponds to a unique uninterpreted function with a | monomorphic type.*mnlopqrstuvwxyz{|}~(mnlopqrstuvwxyz{|}~ mnlop qrstuvwxyz{|}~ Safe!";NURM   SafeU5A transformation intended to remove boolean literals. Safe!"  SafeSafe!";IN3      !"#$%&'()*+,-]?@ABCDEFGHIJmnlopqrstuvwxyz{|}~     !"()*      !"#$%&'()*+,-Safe!"./0123456789:;<0./0123456789:;<NoneC =>?@ABCDEFGACDEFG=>?@ABCDEFGSafe  !"4IN'HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn] HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnNoneINoCompletes each node of a specification with imported variables such | that each node contains a copy of all its dependencies | The given specification should have its node sorted by topological | order. | The top nodes should have all the other nodes as its dependencies pqrstuvwxyz{orz{o pqrstuvwxyz{oNonec?@ABCDEFGHIJmnlopqrstuvwxyz{|}~     !"()*0]rz{oSafe!"INU|9Translates a Copilot specification to an IL specification}~||}~|SafeQ|SafeINSafe INU  Safe!"35Safe!"U Safe""None !"INSafe            Safe !";N"          None !"35INU1Checks the Copilot specification with k-induction!Tactics*Backends2!"#$%&'()*+,-./0 !"#$%&'()*+,-./012345678!"#$%&'()*+,-./0!"#$%()&'*.,0-+/'!"#$%&'()*+,-./0 !"#$%&'()*+,-./0123456None !"3457INU9pThis is all very ugly. It might make better sense to go straight from Core to SMTExpr, or maybe use SBV instead.:1Checks the Copilot specification with k-induction1TacticsV;<=>?@ABCDEFGHIJ9KLMNOPQRSTU:123456789:VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 78123456789: 1234569:78;;<=>?@ABCDEFGHIJ9KLMNOPQRSTU:123456789:VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~SafeINNoneU ;<=>78;<=>;<=>;<=>None-78;<=> Safe!Safe   "#$%&'()*+,+-.//01123456789:;<<=>??@ABCDEFGHIJKLM??N@ABCDEF??OPQRSTUUVVWXYZ[\]^_`abcdefghijklmnopqrstuvw x y z { | } ~   ~                                                                       0            W X Z             [ r 0r       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH*IIJKLM$NOPQRST0UVWXYZ[\]2^7_:"`abcdefghijklmmnopqrstuBvwxyz{|}$~f0jf0WZXUux}z|ymsxy        z copil_7iMPABxasMtBU2sYjp9U9GCopilot.Theorem.Prover.SMTCopilot.Theorem.ProveCopilot.Theorem.Prover.Z3Copilot.Theorem.Kind2.Prover#Copilot.Theorem.TransSys.InvariantsCopilot.Theorem.TransSys.TypeCopilot.Theorem.TransSys.CastCopilot.Theorem.Misc.SExprCopilot.Theorem.Misc.Error"Copilot.Theorem.TransSys.OperatorsCopilot.Theorem.IL.SpecCopilot.Theorem.IL.TransformCopilot.Theorem.IL.PrettyPrintCopilot.Theorem.Misc.UtilsCopilot.Theorem.TransSys.Spec$Copilot.Theorem.TransSys.PrettyPrint!Copilot.Theorem.TransSys.Renaming"Copilot.Theorem.TransSys.Translate"Copilot.Theorem.TransSys.TransformCopilot.Theorem.TransSysCopilot.Theorem.IL.TranslateCopilot.Theorem.ILCopilot.Theorem.Prover.BackendCopilot.Theorem.Prover.SMTIOCopilot.Theorem.Prover.SMTLibCopilot.Theorem.Prover.TPTPCopilot.Theorem.Kind2.ASTCopilot.Theorem.Kind2.Translate!Copilot.Theorem.Kind2.PrettyPrintCopilot.Theorem.Kind2.OutputCopilot.Theorem.Kind2Copilot.Theorem.TacticsCopilot.TheoremBackend SmtFormatSmtLibTptpActionCheckAssumeAdmit ProofSchemeProofUProof Existential UniversalPropRefPropIdProver proverName startProver askProver closeProverStatusSatValidInvalidUnknownErrorOutputcheckproveOptionsstartKmaxKdebugonlySat onlyValidity induction kInductionyicescvc4altErgoz3dRealmathsatmetitnraNLSatbmcMax kind2Prover HasInvariants invariants checkInvspropU2UTypeBoolIntegerReal $fShowType$fEqualTypeTypeCasted_castDyn castedTypecastcasting$fCastedDouble $fCastedBool$fCastedIntegercopil_DMcHz2ZOtzzDTidqFQAj2vCopilot.Core.Type.DynamictoDynSExprAtomListblankatomunit singletonlistnodeindenttoStringtoDocparser parseSExpr $fShowSExpr errorHeaderbadUse impossible impossible_ notHandledfatal UnhandledOp1 UnhandledOp2Op2EqAndOrLeLtGeGtAddSubMulModFdivPowOp1NotNegAbsExpSqrtLogSinTanCosAsinAtanAcosSinhTanhCoshAsinhAtanhAcosh handleOp1 handleOp2 typeErrMsg $fShowOp2 $fShowOp1IL modelInitmodelRec properties inductiveSeqDescrseqIdseqTypeVarDescrvarNamevarTypeargsExprConstBConstRConstIIteSValFunAppSBV8SBV16SBV32SBV64BV8BV16BV32BV64SeqIndexFixedVarSeqIdtypeOf_n__n_plusevalAt $fOrdVarDescr $fEqVarDescrbsimpl prettyPrintprintConstraint emptyLineppSpecppProp ppSeqDescr ppVarDescrppTypeppExpr ppSeqIndexppOp1ppOp2 isSublistOfnubEqnub'nubBy' openTempFileConstVarEVarDefPreConstrsvarDefExtVar extVarNodeextVarLocalPartNodenodeIdnodeDependencies nodeLocalVarsnodeImportedVars nodeConstrsTransSys specNodes specTopNodeId specPropsNodeIdmkExtVarfoldExpr foldUExpr transformExpr nodeVarsSetnodeLocalVarsSetnodeRhsVarsSetnodeImportedExtVarsSetnodeExportedExtVarsSet specNodesIdsspecDependenciesGraph specTopNodeisTopologicallySorted $fShowExtVar$fHasInvariantsTransSys$fHasInvariantsNodepSpecpProppTypepListpNodepConstpExtVarpIVarpLVarpExprpOp1pOp2 RenamingST_reservedNames _renamingRenamingaddReservedName getFreshNamerename getRenamingF runRenamingTransTransSt_lvars _importedVars _dependencies _extVarsNodes_curNode_nextUidncSepncMainncNode ncPropNode ncTopNode ncAnonInputncLocalncExternVarNodencExternFunNodencExternArrNode ncImported ncTimeAnnot translate mkTopNode mkExtVarNode mkPropNodes streamOfPropstreamexprnewUnconstrainedVarrunTrans runExprTransnewDep popLocalInfosgetUidgetFreshNodeNamenewImportedVarnewLocalcurNode newExtVarNodecompleteprefix ncNodeIdSep mergeNodesupdateOtherNode updateExprmergeVarsDescrs mergeConstrsrenameLocalVarsselectImportedVarsredirectLocalImportsinline removeCyclesTransSTlocalConstraintsmuxes nextFreshncSeq ncExternVar ncExternFun ncUnhandledOpncMuxbound streamInit streamRectrConsttrOp1trOp2trTypenewMuxgetMuxesfreshlocalConstraintpopLocalConstraints SatResultUnsatnamecmdcmdOptsinputTerminator incrementallogic interpretpushpopcheckSatsetLogicdeclFunassertSolver solverNameinhouthprocess debugModevarsmodelbackendsendreceivestartNewSolverstopassumeassume'entaileddeclVarssmtTy$fSmtFormatSmtLib $fShowSmtLibTptpExprBinUnFunAxNullshowOp1showOp2$fSmtFormatTptp$fShowTptpExpr $fShowTptpTerm ValueLiteralPrimedStateVarStateVarPredAppPredTypeInit StateVarFlagFConstInt StateVarDefvarIdvarFlagsPredDefpredId predStateVarspredInit predTransProppropNamepropTermFile filePreds filePropsStyleInlinedModularDepGraphtoKind2trSpectrProptrNodeaddAssumptionsgatherPredStateVarsmkConj mkEqualitytrVar trPrimedVar initLocals transLocals predCallstrExprSSExprkwPrime shouldIndentppFileppProps ppPredDef ppStateVarDefppTermcombinecombineOutputs$fMonadProofScheme$fApplicativeProofScheme$fFunctorProofScheme ProofScriptSolverIdBaseStep ProofStateoptionssolversspecrunPS getModels getSolver setSolver deleteSolver proofKind stopSolvers entailmentgetVarsunknownunknown'invalidsatvalid kInduction'onlySat' onlyValidity' selectProps$fDefaultOptionsdatad_CgDdtafiXY68XlqDb5IqXwData.Default.ClassDefaultdef DebugBackend debugBackend' debugHandle debugLines debugPrefix debugUseColormute TransStateboolVarsbv8Varsbv16Varsbv32Varsbv64VarsratVarsassumpssetVars newAssumpsnoVars getBoolVar getBV8Var getBV16Var getBV32Var getBV64Var getRatVargetVartransBncVartransRtransBV8 transBV16 transBV32 transBV64 trans2BV8 trans2BV16 trans2BV32 trans2BV64trans2Rtrans2B debugBackendnamedDebugBackend$fSMTBackendDebugBackendm simpleName parseOutputProverSTtransSys kind2Progkind2BaseOptionsaskKind2 instantiateadmit