!1}+^      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]Safe^_`abcde(c) Reed Mullanix 2019 BSD-stylereedmullanix@gmail.comSafe=>?@An(c) Reed Mullanix 2019 BSD-stylereedmullanix@gmail.comNone8=>?@ACHMPVX_ refineryTHelper newtype for when you don't have any need for the mechanisms of MonadProvable.refinery>Applies a transformation of goals at every step of the tactic.refinery3Create a subgoal, and return the resulting extract.refineryA 5 is a monad transformer for creating inference rules.refineryA U is a monad transformer that performs proof refinement. The type variables signifiy:jdgJ - The goal type. This is the thing we are trying to construct a proof of.extK - The extract type. This is what we will recieve after running the tactic.m - The base monad.a" - The return value. This to make  a monad, and will always be '()'!refinery6Map the unwrapped computation using the given function"refinery4Helper function for making "stateful" tactics like " @"#refinery>Transforms a tactic into a rule. Useful for doing things with ".$refinery6Map the unwrapped computation using the given function !"#$% !"#$%(c) Reed Mullanix 2019 BSD-stylereedmullanix@gmail.comNone8=>?@ACHMV_+ NrefineryGenerates a "hole" of type ext0, which should represent an incomplete extract.OrefineryLCreate a tactic that applies each of the tactics in the list to one subgoal.When the number of subgoals is greater than the number of provided tactics, the identity tactic is applied to the remainder. When the number of subgoals is less than the number of provided tactics, the remaining tactics are ignored.Prefinery.Tries to run a tactic, backtracking on failureQrefinery'Runs a tactic repeatedly until it failsRrefineryGet the current goalSrefinery choice err ts$ tries to apply a series of tactics tsG, and commits to the 1st tactic that succeeds. If they all fail, then err is thrownTrefineryprogress eq err t applies the tactic tZ, and checks to see if the resulting subgoals are all equal to the initial goal by using eq. If they are, it throws err.UrefineryHApply the first tactic, and then apply the second tactic focused on the n th subgoal.VrefineryApplies f- to every subgoals resulting from the tactic t.WrefineryMRuns a tactic, producing the extract, along with a list of unsolved subgoals.Xrefinery%Turn an inference rule into a tactic.%MNOPQRSTUVWXWOPQSTRUVMNX%f        !""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi'refinery-0.1.0.0-Ir9LePvJnPnFvvlY5cEE0oRefinery.TacticRefinery.ProofStateRefinery.Tactic.InternalPaths_refinery*semigroupoids-5.3.2-4QoNSBbTIGK3dVQwmcGKLWData.Functor.AltmanysomeAlt ProofStateT unProofStateTaxiom mapExtract$fMonadStatesProofStateT$fMonadReaderenvProofStateT$fMonadCatchProofStateT$fMonadThrowProofStateT$fMonadErrorerrProofStateT$fMonadIOProofStateT$fMonadTransProofStateT$fMonadProofStateT$fApplicativeProofStateT$fFunctorProofStateTProvable ProvableT runProvableT MonadProvableproving MonadRulesubgoalRuleTunRuleTTacticT unTacticT mapTacticTstatefulasRulemapRuleT runProvable$fMonadTransTacticT $fAltTacticT$fMonadRulejdgextExceptT$fMonadRulejdgextStateT$fMonadRulejdgextReaderT$fMonadRulejdgextRuleT$fMonadProvablejdgExceptT$fMonadProvablejdgStateT$fMonadProvablejdgReaderT$fMonadProvablejdgProofStateT$fMonadStatesTacticT$fMonadTacticT$fApplicativeTacticT$fMonadTransProvableT$fMonadProvablejdgProvableT$fMonadRulejdgextProvableT$fFunctorTacticT$fMonadReaderTacticT$fMonadErrorTacticT$fMonadIOTacticT$fMonadThrowTacticT$fMonadCatchTacticT$fFunctorRuleT$fApplicativeRuleT $fMonadRuleT$fMonadReaderRuleT$fMonadStateRuleT$fMonadErrorRuleT$fMonadIORuleT$fMonadThrowRuleT$fMonadCatchRuleT$fMonadTransRuleT$fMFunctorRuleT$fFunctorProvableT$fApplicativeProvableT$fMonadProvableT$fMonadIOProvableT$fMonadStateProvableT$fMonadErrorProvableT MonadExtracthole<@>trymany_goalchoiceprogressfocus forSubgoals runTacticTrule$fMonadExtractextRuleT$fMonadExtractextExceptT$fMonadExtractextReaderT$fMonadExtractextStateT$fMonadExtractextProxyversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName