(* Content-type: application/vnd.wolfram.mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Wolfram 15.0' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       154,          7]
NotebookDataLength[     45083,       1184]
NotebookOptionsPosition[     36562,       1025]
NotebookOutlinePosition[     38681,       1075]
CellTagsIndexPosition[     38603,       1070]
WindowTitle->SearchLedgerTestedQ
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[GridBox[{
   {GridBox[{
      {
       ItemBox[Cell[BoxData[
         RowBox[{
          TemplateBox[{12},
           "Spacer1"], Cell[
          "WOLFRAM INSTITUTE/ PUZZLES SYMBOL", "PacletNameCell",
           TextAlignment->Center,ExpressionUUID->
           "c1dd83c8-802c-44bd-9b2b-7bdd1dff6867"], 
          TemplateBox[{8},
           "Spacer1"]}]],
         TextAlignment->Center,ExpressionUUID->
         "7c8fa186-60d7-480b-a92c-25c4be63f653"],
        Background->LightDarkSwitched[
          RGBColor[0.490196, 0.576471, 0.690196]],
        ItemSize->Full], ""}
     },
     GridBoxAlignment->{"Rows" -> {{Center}}},
     GridBoxItemSize->{"Columns" -> {Full, 
         Scaled[0.02]}, "Rows" -> {{2.5}}}], Cell[TextData[{
     Cell[BoxData[
      TagBox[
       ActionMenuBox[
        FrameBox[Cell[TextData[{
          "See Also",
          " ",
          Cell[BoxData[
           GraphicsBox[
            {GrayLevel[0.66667], Thickness[0.13], 
             LineBox[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]},
            AspectRatio->1,
            ImageSize->20,
            PlotRange->{{-3, 4}, {-1, 1}}]],ExpressionUUID->
           "c4bd38b5-153f-4cc3-a100-2249a95c8af0"]
         }],ExpressionUUID->"5120b992-ed02-4150-9da0-f408337ac296"],
         StripOnInput->False],{
        StyleBox["\"SearchLedger\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/SearchLedger"], 
         StyleBox[
          "\"SearchLedgerRecord\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/SearchLedgerRecord"], 
         StyleBox[
          "\"SearchLedgerFilter\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/SearchLedgerFilter"], 
         StyleBox[
          "\"CandidateFingerprint\"", "SeeAlsoRelated", StripOnInput -> 
           False] :> Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/CandidateFingerprint"], 
         StyleBox[
          "\"CandidateSweep\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/CandidateSweep"]},
        Appearance->None,
        MenuAppearance->Automatic,
        MenuStyle->"SeeAlso"],
       MouseAppearanceTag["LinkHand"]]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "a12e3011-3fd2-4462-b144-51593215d8d9"],
     "\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\
\[ThickSpace]",
     Cell[BoxData[
      TagBox[
       ActionMenuBox[
        FrameBox[Cell[TextData[{
          "Related Guides",
          " ",
          Cell[BoxData[
           GraphicsBox[
            {GrayLevel[0.66667], Thickness[0.13], 
             LineBox[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]},
            AspectRatio->1,
            ImageSize->20,
            PlotRange->{{-3, 4}, {-1, 1}}]],ExpressionUUID->
           "50f8db2f-e8aa-4184-8bf5-7335dd4964cd"]
         }],ExpressionUUID->"e1efb34f-b558-4f0d-af54-b3a7111a2a16"],
         StripOnInput->False],{
        "\"Search\"" :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/guide/Search"]},
        Appearance->None,
        MenuAppearance->Automatic,
        MenuStyle->"MoreAbout"],
       MouseAppearanceTag["LinkHand"]]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "ee095e5e-f232-493a-bac8-93fc2b6ac2a4"],
     "\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\
\[ThickSpace]",
     Cell[BoxData[
      TagBox[
       ActionMenuBox[
        FrameBox[Cell[TextData[{
          "URL",
          " ",
          Cell[BoxData[
           GraphicsBox[
            {GrayLevel[0.66667], Thickness[0.13], 
             LineBox[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]},
            AspectRatio->1,
            ImageSize->20,
            PlotRange->{{-3, 4}, {-1, 1}}]],ExpressionUUID->
           "3ff49e8a-d235-47f7-a2a0-dd7836cc78a3"]
         }],ExpressionUUID->"135875f4-d2a2-49e2-8945-985d34faf115"],
         StripOnInput->False],{
        "\"WolframInstitute/Puzzles/ref/SearchLedgerTestedQ\"" :> None, 
         "\"Copy Wolfram Documentation Center URL\"" :> 
         CopyToClipboard["WolframInstitute/Puzzles/ref/SearchLedgerTestedQ"], 
         Delimiter, "\"Copy web URL\"" :> 
         Module[{DocumentationSearch`Private`nb$}, 
           DocumentationSearch`Private`nb$ = 
            NotebookPut[
             Notebook[{
               Cell[BoxData[
                 MakeBoxes[
                  Hyperlink[
                   "http://reference.wolfram.com/language/WolframInstitute/\
Puzzles/ref/SearchLedgerTestedQ.html"], StandardForm]], "Input", 
                 TextClipboardType -> "PlainText"]}, Visible -> False]]; 
           SelectionMove[DocumentationSearch`Private`nb$, All, Notebook]; 
           FrontEndTokenExecute[DocumentationSearch`Private`nb$, "Copy"]; 
           NotebookClose[DocumentationSearch`Private`nb$]; Null], 
         "\"Go to web URL\"" :> 
         FrontEndExecute[{
           NotebookLocate[{
             URL[If[TrueQ[False], 
                 "http://reference.wolfram.com/system-modeler/", 
                 "http://reference.wolfram.com/language/"] <> 
               "WolframInstitute/Puzzles/ref/SearchLedgerTestedQ" <> ".html"],
               None}]}]},
        Appearance->None,
        MenuAppearance->Automatic,
        MenuStyle->"URLMenu"],
       MouseAppearanceTag["LinkHand"]]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "bb676115-8784-400b-b2e4-79606b5b0a11"]
    }], "AnchorBar",
     CacheGraphics->False,ExpressionUUID->
     "62346b6f-9f61-4e56-9ad0-9d004e3399e4"]}
  }]], "AnchorBarGrid",
 CellID->1,ExpressionUUID->"dbb79378-5e8d-46b3-a002-6cd0efb8a8ce"],

Cell["WolframInstitute`Puzzles`", "ContextNameCell",ExpressionUUID->"cbd3c357-0011-4a53-ae35-700f0bd1386f"],

Cell[CellGroupData[{

Cell[BoxData[GridBox[{
   {Cell[TextData[{
     Cell[
     "SearchLedgerTestedQ", "ObjectName",ExpressionUUID->
      "8134129c-f258-429c-b31c-f01809573702"],
     Cell[BoxData[
      TemplateBox[{8},
       "Spacer1"]],ExpressionUUID->"d0be4c67-6d36-4806-947a-84fc89d6b8a6"],
     Cell[BoxData[
     ""], "ObjectNameTranslation",ExpressionUUID->
      "35367b83-dac5-42a2-a407-f0c77843033a"]
    }],ExpressionUUID->"211e87af-c92c-47e2-b126-eca5778d79bd"], 
    "\[SpanFromLeft]"}
  }]], "ObjectNameGrid",ExpressionUUID->"2c2173ca-abe1-41ae-a6fa-\
e2055de4a206"],

Cell[BoxData[GridBox[{
   {"", Cell[TextData[{
     Cell[BoxData[
      RowBox[{
       TemplateBox[{
         Cell[
          TextData["SearchLedgerTestedQ"]], 
         "paclet:WolframInstitute/Puzzles/ref/SearchLedgerTestedQ", 
         "WolframInstitute/Puzzles Package Symbol"},
        "PackageLink",
        BaseStyle->"InlineFormula"], "[", 
       RowBox[{
        StyleBox["ledger", "TI"], ",", 
        " ", "\"\<\!\(\*StyleBox[\"target\", \"TI\"]\)\>\"", ",", 
        " ", "\"\<\!\(\*StyleBox[\"candidate\", \"TI\"]\)\>\""}], "]"}]], 
      "InlineFormula",
      FontFamily->"Source Sans Pro",
      FontSize->0.9 Inherited,ExpressionUUID->
      "b816f4a8-7e97-44c3-85a0-ebdd0f30f352"],
     "\[LineSeparator]",
     "gives ",
     Cell[BoxData["True"], "InlineFormula",
      FontFamily->"Source Sans Pro",
      FontSize->0.9 Inherited,ExpressionUUID->
      "1ef95427-f953-4ccc-bb1d-d374e3dbc9fb"],
     " if the candidate has already been recorded against the target, and ",
     Cell[BoxData["False"], "InlineFormula",
      FontFamily->"Source Sans Pro",
      FontSize->0.9 Inherited,ExpressionUUID->
      "3c21f075-0a91-4027-aaa9-7590dc881739"],
     " otherwise."
    }],ExpressionUUID->"679bfd51-9f43-4b6b-aa65-b56e340f2c26"]}
  }]], "Usage",ExpressionUUID->"94a0011b-e035-4603-b34c-5e95ac3ead36"]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[Cell[BoxData[Cell[TextData[{
  Cell[BoxData[
   DynamicBox[ToBoxes[
     If[CurrentValue[
        EvaluationCell[], "CellGroupOpen"] =!= Closed, 
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], 
      Rotate[
       Style[
        Graphics[{
          Thickness[0.18], 
          RGBColor[0.8509803921568627, 0.396078431372549, 0], 
          Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
         PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
        0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]],
    ImageSizeCache->{
     13.600000000000001`, {-0.1685058593749993, 13.768505859375}}]],
   ExpressionUUID->"d4ed7217-5351-419a-807d-b9a2f7df99ab"],
  Cell[BoxData[
   TemplateBox[{1},
    "Spacer1"]],ExpressionUUID->"0e30e010-498c-43cf-aa0c-a65d82eb7cfc"],
  "Details and Options"
 }], "NotesFrameText",ExpressionUUID->
  "b9959bbe-f95b-4875-8140-7c0c4663752d"]],ExpressionUUID->"d5a115eb-ede9-\
439c-ba01-7e5499d36e5c"]], "NotesSection",
 ShowGroupOpener->"Thumbnail",
 WholeCellGroupOpener->True,
 CellGroupingRules->{"SectionGrouping", 50},
 CacheGraphics->False,
 CellID->147031165,ExpressionUUID->"accc5b7e-948c-460c-8c60-629880e7147d"],

Cell[TextData[{
 "The question asked is whether the candidate's ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["CandidateFingerprint"]], 
    "paclet:WolframInstitute/Puzzles/ref/CandidateFingerprint", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "2201eba0-aae9-4198-95a0-718269a1b7ad"],
 " is in the ledger's store for that target."
}], "Notes",ExpressionUUID->"2d3aff28-8dc3-4b78-8b65-ca546e766951"],

Cell["\<\
The answer is per target: the same candidate recorded against one target says \
nothing about another.\
\>", "Notes",ExpressionUUID->"6e6f0439-7fbe-4076-8a6e-a7708ee83216"],

Cell[TextData[{
 "Anything the predicate cannot answer yes to is ",
 Cell[BoxData["False"], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "7902bcbc-7fbd-4ffd-87da-89a30e21ad11"],
 ": an unrecorded candidate, a target with no records, a first argument that \
is not a ledger, a candidate that is neither a string nor a byte array."
}], "Notes",ExpressionUUID->"cf40333b-9e33-4ccf-a183-c42fd19d3e94"],

Cell["\<\
The target's store is read once and then memoised on its modification date \
and byte count, so a run of single checks costs one file read rather than one \
per call.\
\>", "Notes",ExpressionUUID->"f5963677-1d8e-40d9-bc1e-3637e8352e24"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["SearchLedgerFilter"]], 
    "paclet:WolframInstitute/Puzzles/ref/SearchLedgerFilter", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "3c5349bc-1fd1-41d9-bba0-edbfe8d351e0"],
 " is the batch form, and is the one to use inside a loop: it answers for a \
whole list against one read and one pass."
}], "Notes",ExpressionUUID->"1f1ca057-16e4-4a45-802f-ca7e0ef33d27"]
}, Closed]],

Cell["", "PageDelimiter",ExpressionUUID->"9930199b-e492-4bb9-a07e-dab42ef9a658"],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[
     MatchQ[
      CurrentValue[
       EvaluationNotebook[], {
       TaggingRules, "Openers", "PrimaryExamplesSection"}, Open], 
      Alternatives[True, Open]], 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]],
   ImageSizeCache->{
    13.600000000000001`, {4.251494140625001, 9.348505859375}}]],
  ExpressionUUID->"4bc187ba-e524-4d16-834b-5845d4aade90"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"253863f4-bd15-4bea-9fe8-31fab080f5a5"],
 "Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(10)", "ExampleCount",ExpressionUUID->
  "e578063c-9bd1-4920-98f7-54c14c9c8104"]
}], "PrimaryExamplesSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->1546596105,ExpressionUUID->"6298a35d-ce9f-4b89-885b-7fc511d85603"],

Cell[BoxData[
 RowBox[{"Needs", "[", "\"\<WolframInstitute`Puzzles`\>\"", "]"}]], "Input", \
"ExampleInitialization",
 CellLabel->"In[1]:=",
 CellID->1969679695,ExpressionUUID->"f97f273b-9c1f-4947-b58b-53b003479e02"],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "0d4d4d9a-7e1c-4b9c-b4ab-068c4ea35a7f"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"e1e4ab20-7865-477a-8662-c61cf1411fad"],
 "Basic Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(2)", "ExampleCount",ExpressionUUID->
  "a52ff603-abb3-4d34-b923-084aa61b38d1"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->498673447,ExpressionUUID->"45cfcf3b-741b-4d46-93f3-e0efacad0719"],

Cell["A recorded candidate:", "ExampleText",
 CellTags->
  "TextAnnotation",ExpressionUUID->"3370fa76-2bda-4c23-b902-9fb0fe23426d"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Module", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"ledger", " ", "=", " ", 
      RowBox[{"SearchLedger", "[", 
       RowBox[{"FileNameJoin", "[", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"CreateDirectory", "[", "]"}], ",", " ", "\"\<ledger\>\""}],
          "}"}], "]"}], "]"}]}], ",", " ", 
     RowBox[{
     "target", " ", "=", 
      " ", "\"\<1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa\>\""}]}], "}"}], ",", "\n",
    "\t", 
   RowBox[{
    RowBox[{"SearchLedgerRecord", "[", 
     RowBox[{"ledger", ",", " ", "target", ",", " ", 
      RowBox[{"{", 
       RowBox[{"\"\<hunter2\>\"", ",", " ", "\"\<letmein\>\""}], "}"}]}], 
     "]"}], ";", "\n", "\t", 
    RowBox[{"SearchLedgerTestedQ", "[", 
     RowBox[{"ledger", ",", " ", "target", ",", " ", "\"\<hunter2\>\""}], 
     "]"}]}]}], "\n", "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"18d4667f-d12f-4ed0-b381-a7869fd1f2d1"],

Cell[BoxData["True"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"7fc1afc0-36da-4cd9-b10e-cf6d4c65de21"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "6d467fd0-b7c3-4538-b742-80a6984633f1"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"8c25576c-c182-41bf-\
8e28-32b2c52f8942"],

Cell["A candidate the ledger has never seen:", "ExampleText",ExpressionUUID->"534fa79d-88c9-42af-9ed1-8b6f0a9962a0"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Module", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"ledger", " ", "=", " ", 
      RowBox[{"SearchLedger", "[", 
       RowBox[{"FileNameJoin", "[", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"CreateDirectory", "[", "]"}], ",", " ", "\"\<ledger\>\""}],
          "}"}], "]"}], "]"}]}], ",", " ", 
     RowBox[{
     "target", " ", "=", 
      " ", "\"\<1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa\>\""}]}], "}"}], ",", "\n",
    "\t", 
   RowBox[{
    RowBox[{"SearchLedgerRecord", "[", 
     RowBox[{"ledger", ",", " ", "target", ",", " ", 
      RowBox[{"{", 
       RowBox[{"\"\<hunter2\>\"", ",", " ", "\"\<letmein\>\""}], "}"}]}], 
     "]"}], ";", "\n", "\t", 
    RowBox[{"SearchLedgerTestedQ", "[", 
     RowBox[{
     "ledger", ",", " ", "target", ",", 
      " ", "\"\<correct horse battery staple\>\""}], "]"}]}]}], "\n", 
  "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"5200e71d-8f56-4f37-9c74-9c378c2911e8"],

Cell[BoxData["False"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"810eba11-2fcb-4371-b84c-95a758b4a3fc"]
}, Open  ]]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "066aa6a1-6816-4daf-a9fb-f43f41142c7a"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"fa40e280-0c83-40cd-bdc8-6891165b18d3"],
 "Scope",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(4)", "ExampleCount",ExpressionUUID->
  "53cf6c5f-33f1-4247-ad9d-6d694a55c8a0"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->1293636265,ExpressionUUID->"325244ed-5820-4545-bea8-eab555b77e83"],

Cell["The answer is per target:", "ExampleText",ExpressionUUID->"8d3668f9-3265-4c0f-b1e5-98fea9ad956e"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Module", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{"ledger", " ", "=", " ", 
     RowBox[{"SearchLedger", "[", 
      RowBox[{"FileNameJoin", "[", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"CreateDirectory", "[", "]"}], ",", " ", "\"\<ledger\>\""}], 
        "}"}], "]"}], "]"}]}], "}"}], ",", "\n", "\t", 
   RowBox[{
    RowBox[{"SearchLedgerRecord", "[", 
     RowBox[{
     "ledger", ",", " ", "\"\<1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa\>\"", ",", 
      " ", 
      RowBox[{"{", "\"\<hunter2\>\"", "}"}]}], "]"}], ";", "\n", "\t", 
    RowBox[{"SearchLedgerTestedQ", "[", 
     RowBox[{
     "ledger", ",", " ", "\"\<bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4\>\"",
       ",", " ", "\"\<hunter2\>\""}], "]"}]}]}], "\n", "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"e33968a9-e325-4d52-879e-8046ac461f86"],

Cell[BoxData["False"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"965b7e91-0512-4702-814e-9a43b3a6b9d2"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "b43e9e54-3347-4bd7-a765-6356f1e7ebea"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"e2a3664a-c9ba-42a4-\
8d17-98027fe7f7d4"],

Cell["A target with no records at all:", "ExampleText",ExpressionUUID->"bbc6519c-8d6d-45b6-a1df-a3a834c4be1a"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Module", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{"ledger", " ", "=", " ", 
     RowBox[{"SearchLedger", "[", 
      RowBox[{"FileNameJoin", "[", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"CreateDirectory", "[", "]"}], ",", " ", "\"\<ledger\>\""}], 
        "}"}], "]"}], "]"}]}], "}"}], ",", "\n", "\t", 
   RowBox[{"SearchLedgerTestedQ", "[", 
    RowBox[{
    "ledger", ",", " ", "\"\<a target never searched\>\"", ",", 
     " ", "\"\<hunter2\>\""}], "]"}]}], "\n", "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"5f5c9757-6d5a-4f8f-a8bb-7f39717f9908"],

Cell[BoxData["False"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"65f1a116-13b1-4f40-aa49-2dbe110afce6"]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "2528a660-9467-4fe1-b3e0-f40ab0794689"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"9be55fd7-c148-410e-\
91bc-b0a4f2652e85"],

Cell["A byte array candidate:", "ExampleText",ExpressionUUID->"d005affc-7508-4432-8de0-fb39f1d3918a"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Module", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"ledger", " ", "=", " ", 
      RowBox[{"SearchLedger", "[", 
       RowBox[{"FileNameJoin", "[", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"CreateDirectory", "[", "]"}], ",", " ", "\"\<ledger\>\""}],
          "}"}], "]"}], "]"}]}], ",", " ", 
     RowBox[{
     "target", " ", "=", 
      " ", "\"\<1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa\>\""}]}], "}"}], ",", "\n",
    "\t", 
   RowBox[{
    RowBox[{"SearchLedgerRecord", "[", 
     RowBox[{"ledger", ",", " ", "target", ",", " ", 
      RowBox[{"{", 
       RowBox[{"ByteArray", "[", 
        RowBox[{"{", 
         RowBox[{"1", ",", " ", "2", ",", " ", "3"}], "}"}], "]"}], "}"}]}], 
     "]"}], ";", "\n", "\t", 
    RowBox[{"SearchLedgerTestedQ", "[", 
     RowBox[{"ledger", ",", " ", "target", ",", " ", 
      RowBox[{"ByteArray", "[", 
       RowBox[{"{", 
        RowBox[{"1", ",", " ", "2", ",", " ", "3"}], "}"}], "]"}]}], 
     "]"}]}]}], "\n", "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"5a784868-9a08-473a-b316-617b03d86e45"],

Cell[BoxData["True"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"2ee1694e-206d-4e61-b6dc-a73c87780896"]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "ef9cab59-e125-4a8b-9e50-bf02c2890d51"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"2d64861a-1319-4373-\
a345-4a219eea3cba"],

Cell["A ledger reopened from disk answers the same way:", "ExampleText",ExpressionUUID->"1808ef02-a566-447b-a90c-ac04bbf0b1a4"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Module", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"directory", " ", "=", " ", 
      RowBox[{"FileNameJoin", "[", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"CreateDirectory", "[", "]"}], ",", " ", "\"\<ledger\>\""}], 
        "}"}], "]"}]}], ",", " ", 
     RowBox[{
     "target", " ", "=", 
      " ", "\"\<1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa\>\""}]}], "}"}], ",", "\n",
    "\t", 
   RowBox[{
    RowBox[{"SearchLedgerRecord", "[", 
     RowBox[{
      RowBox[{"SearchLedger", "[", "directory", "]"}], ",", " ", "target", ",",
       " ", 
      RowBox[{"{", "\"\<hunter2\>\"", "}"}]}], "]"}], ";", "\n", "\t", 
    RowBox[{"SearchLedgerTestedQ", "[", 
     RowBox[{
      RowBox[{"SearchLedger", "[", "directory", "]"}], ",", " ", "target", ",",
       " ", "\"\<hunter2\>\""}], "]"}]}]}], "\n", "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"866aa57a-1e28-4556-9dcf-7bdfda0bd0c9"],

Cell[BoxData["True"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"24db1b90-2134-4f9d-81a9-11952f97b95f"]
}, Open  ]]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "b685e1fc-f5ca-469e-bcde-5cf76a28e655"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"1f08458f-0764-426f-974a-012b1fe2b1fd"],
 "Properties & Relations",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(2)", "ExampleCount",ExpressionUUID->
  "0f000b5f-3c13-47df-beff-91b63879b6b3"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->2123667759,ExpressionUUID->"d1e7351f-6ef4-4d76-84c6-ff93a593edfd"],

Cell["\<\
It agrees with membership in the target's stored fingerprints:\
\>", "ExampleText",ExpressionUUID->"259c6cc2-2c03-4611-ae1c-e820880b3845"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Module", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"ledger", " ", "=", " ", 
      RowBox[{"SearchLedger", "[", 
       RowBox[{"FileNameJoin", "[", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"CreateDirectory", "[", "]"}], ",", " ", "\"\<ledger\>\""}],
          "}"}], "]"}], "]"}]}], ",", " ", 
     RowBox[{
     "target", " ", "=", 
      " ", "\"\<1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa\>\""}]}], "}"}], ",", "\n",
    "\t", 
   RowBox[{
    RowBox[{"SearchLedgerRecord", "[", 
     RowBox[{"ledger", ",", " ", "target", ",", " ", 
      RowBox[{"{", "\"\<hunter2\>\"", "}"}]}], "]"}], ";", "\n", "\t", 
    RowBox[{"MemberQ", "[", 
     RowBox[{
      RowBox[{"ledger", "[", 
       RowBox[{"\"\<Fingerprints\>\"", ",", " ", "target"}], "]"}], ",", " ", 
      
      RowBox[{"CandidateFingerprint", "[", "\"\<hunter2\>\"", "]"}]}], 
     "]"}]}]}], "\n", "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"19d0f981-5d79-435a-b48d-d6f0d83b37fc"],

Cell[BoxData["True"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"c48a4b98-2567-4d13-af6c-eeeb093d1440"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "afb05422-6301-4756-8bee-da97ed926c80"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"ae3b7d1d-2e04-4044-\
8253-4a3a75e7780c"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["SearchLedgerFilter"]], 
    "paclet:WolframInstitute/Puzzles/ref/SearchLedgerFilter", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "63948aca-f5f0-452a-a8f0-8f29f647af78"],
 " answers the same question for a whole batch:"
}], "ExampleText",ExpressionUUID->"89814e44-66ea-4796-ba45-6eb12ad80267"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Module", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"ledger", " ", "=", " ", 
      RowBox[{"SearchLedger", "[", 
       RowBox[{"FileNameJoin", "[", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"CreateDirectory", "[", "]"}], ",", " ", "\"\<ledger\>\""}],
          "}"}], "]"}], "]"}]}], ",", " ", 
     RowBox[{
     "target", " ", "=", 
      " ", "\"\<1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa\>\""}]}], "}"}], ",", "\n",
    "\t", 
   RowBox[{
    RowBox[{"SearchLedgerRecord", "[", 
     RowBox[{"ledger", ",", " ", "target", ",", " ", 
      RowBox[{"{", "\"\<hunter2\>\"", "}"}]}], "]"}], ";", "\n", "\t", 
    RowBox[{"SearchLedgerFilter", "[", 
     RowBox[{"ledger", ",", " ", "target", ",", " ", 
      RowBox[{"{", 
       RowBox[{"\"\<hunter2\>\"", ",", " ", "\"\<letmein\>\""}], "}"}]}], 
     "]"}]}]}], "\n", "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"e82701e2-e556-4955-ab6a-d3e8b0dfa8b2"],

Cell[BoxData[
 RowBox[{"{", "\<\"letmein\"\>", "}"}]], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"38b2de84-ae1b-4d89-8d56-608bd8418a8c"]
}, Open  ]]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "69b87446-b2d0-4a90-b828-9cfcc34a8d6e"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"706e1e78-96a7-469f-b7b1-dca7c7b6b54e"],
 "Possible Issues",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(2)", "ExampleCount",ExpressionUUID->
  "b5a92a46-76a3-43d7-b1f3-467740b66635"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->1305812373,ExpressionUUID->"0d6dc0df-2efb-42de-ba02-f5023db5111e"],

Cell[TextData[{
 "A first argument that is not a ledger gives ",
 Cell[BoxData["False"], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "b8202be8-72e1-4b20-8fb1-ba81acd25392"],
 ", not an error, so a mistyped handle re-tests rather than skips:"
}], "ExampleText",ExpressionUUID->"569e44ea-3651-426e-af69-d07c2e298722"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"SearchLedgerTestedQ", "[", 
  RowBox[{"\"\</tmp/ledger\>\"", ",", 
   " ", "\"\<1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa\>\"", ",", 
   " ", "\"\<hunter2\>\""}], "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"e5eb03bb-45dc-43e4-8b3c-bcfb373dcbd2"],

Cell[BoxData["False"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"76ee64c3-b94e-4fa6-9691-65dff1ff53cf"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "741028bf-7bfa-4034-9a21-b88ef9e66d4d"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"a77ccfc6-9c7b-4bb2-\
9d8f-fef9fc3d8aee"],

Cell["\<\
A candidate with no fingerprint is not recorded and cannot be tested:\
\>", "ExampleText",ExpressionUUID->"7e9e8640-4aa0-400c-8620-9fba7295c5ac"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Module", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{"ledger", " ", "=", " ", 
     RowBox[{"SearchLedger", "[", 
      RowBox[{"FileNameJoin", "[", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"CreateDirectory", "[", "]"}], ",", " ", "\"\<ledger\>\""}], 
        "}"}], "]"}], "]"}]}], "}"}], ",", "\n", "\t", 
   RowBox[{"SearchLedgerTestedQ", "[", 
    RowBox[{
    "ledger", ",", " ", "\"\<1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa\>\"", ",", 
     " ", "12345"}], "]"}]}], "\n", "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"adbb047d-85d5-485f-9f5a-891e48833410"],

Cell[BoxData["False"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"3d98efe1-585b-4751-93d0-68e1f10b5a74"]
}, Open  ]]
}, Open  ]]
}, Closed]]
}, Open  ]],

Cell[BoxData[GridBox[{
   {
    DynamicBox[FEPrivate`ImportImage[
      FrontEnd`FileName[{"Documentation", "FooterIcons"}, 
       "RelatedFunction.png"]]], GridBox[{
      {
       StyleBox[
        RowBox[{"See", " ", "Also"}], "SeeAlsoSection"]},
      {Cell[TextData[{
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["SearchLedger"]], 
           "paclet:WolframInstitute/Puzzles/ref/SearchLedger", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "9e31865e-cfee-4ef7-ae2c-b2a79f3b74c9"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["SearchLedgerRecord"]], 
           "paclet:WolframInstitute/Puzzles/ref/SearchLedgerRecord", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "1e8a493c-1f07-47fb-8be3-4a66a5d4391f"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["SearchLedgerFilter"]], 
           "paclet:WolframInstitute/Puzzles/ref/SearchLedgerFilter", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "c5983f74-269a-4822-8f2b-4364e1ca19ab"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["CandidateFingerprint"]], 
           "paclet:WolframInstitute/Puzzles/ref/CandidateFingerprint", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "53dce19d-8cd3-4529-924d-5215d8530b14"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["CandidateSweep"]], 
           "paclet:WolframInstitute/Puzzles/ref/CandidateSweep", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "e73658d6-3cf1-4848-9398-f39bdd3f1f77"]
       }], "SeeAlso",ExpressionUUID->"6a8b80da-65ab-439a-95bf-861f145ae8bf"]}
     }]}
  }]], "SeeAlsoSection",ExpressionUUID->"8446dfc2-60e7-48da-94e4-\
03f28d3021d3"],

Cell[BoxData[GridBox[{
   {
    DynamicBox[FEPrivate`ImportImage[
      FrontEnd`FileName[{"Documentation", "FooterIcons"}, 
       "RelatedGuide.png"]]], GridBox[{
      {
       StyleBox[
        RowBox[{"Related", " ", "Guides"}], "MoreAboutSection"]},
      {
       RowBox[{"\[FilledVerySmallSquare]", Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["Search"]], 
           "paclet:WolframInstitute/Puzzles/guide/Search"},
          "RefLinkPlain",
          BaseStyle->{"MoreAbout"}]], "MoreAbout",ExpressionUUID->
         "7a46be45-db3d-416a-93ca-32ed4716b661"]}]}
     }]}
  }]], "MoreAboutSection",ExpressionUUID->"38fd0463-0ce9-4a48-baa3-\
a9a4b76e2be7"],

Cell[" ", "FooterCell",ExpressionUUID->"845627a0-698c-4774-9a28-1077cf20deb4"]
},
Saveable->False,
ScreenStyleEnvironment->"Working",
WindowSize->{900, 830},
WindowMargins->{{0, Automatic}, {Automatic, 0}},
WindowTitle->"SearchLedgerTestedQ",
TaggingRules->{
 "ModificationHighlight" -> False, "ColorType" -> "", "LinkTrails" -> "", 
  "ExampleCounter" -> 1, 
  "Openers" -> {
   "PrimaryExamplesSection" -> Open, "ExampleSection" -> {"0" -> Open}, 
    "AllOptsTable" -> Closed}, "NewStyles" -> True, 
  "CitationPopupData" -> $Failed, "ShowCitation" -> False, "HasOptions" -> 
  True, "RootCaptions" -> "", "HeaderCoreAreaLink" -> {}, 
  "Metadata" -> {
   "built" -> "{2026, 8, 27, 0, 11, 47.136312}", 
    "history" -> {"XX", "", "", ""}, "context" -> "WolframInstitute`Puzzles`",
     "keywords" -> {}, "specialkeywords" -> {}, 
    "tutorialcollectionlinks" -> {}, "index" -> True, "label" -> 
    "Wolfram Institute/ Puzzles Symbol", "language" -> "en", "paclet" -> 
    "WolframInstitute/Puzzles", "status" -> "None", "summary" -> 
    "PackageLink[SearchLedgerTestedQ, paclet : \
WolframInstitute/Puzzles/ref/SearchLedgerTestedQ, WolframInstitute/Puzzles \
Package Symbol][ledger,  target,  candidate] gives True if the candidate has \
already been recorded against the target, and False otherwise.", 
    "synonyms" -> {}, "tabletags" -> {}, "title" -> "SearchLedgerTestedQ", 
    "titlemodifier" -> "", "metadescription" -> "", "windowtitle" -> 
    "SearchLedgerTestedQ", "type" -> "Symbol", "uri" -> 
    "WolframInstitute/Puzzles/ref/SearchLedgerTestedQ", "WorkflowDockedCell" -> 
    ""}, "SearchTextTranslated" -> ""},
CellContext->CellGroup,
FrontEndVersion->"15.0 for Mac OS X ARM (64-bit) (May 19, 2026)",
StyleDefinitions->FrontEnd`FileName[{"Wolfram"}, "Reference.nb"],
ExpressionUUID->"e05e8131-9225-4104-82d0-3f9e31757e7b"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{
 "TextAnnotation"->{
  Cell[14975, 396, 131, 2, 70, "ExampleText",ExpressionUUID->"3370fa76-2bda-4c23-b902-9fb0fe23426d",
   CellTags->"TextAnnotation"]}
 }
*)
(*CellTagsIndex
CellTagsIndex->{
 {"TextAnnotation", 38446, 1064}
 }
*)
(*NotebookFileOutline
Notebook[{
Cell[587, 21, 5847, 142, 70, "AnchorBarGrid",ExpressionUUID->"dbb79378-5e8d-46b3-a002-6cd0efb8a8ce",
 CellID->1],
Cell[6437, 165, 107, 0, 70, "ContextNameCell",ExpressionUUID->"cbd3c357-0011-4a53-ae35-700f0bd1386f"],
Cell[CellGroupData[{
Cell[6569, 169, 562, 14, 70, "ObjectNameGrid",ExpressionUUID->"2c2173ca-abe1-41ae-a6fa-e2055de4a206"],
Cell[7134, 185, 1323, 32, 70, "Usage",ExpressionUUID->"94a0011b-e035-4603-b34c-5e95ac3ead36"]
}, Open  ]],
Cell[CellGroupData[{
Cell[8494, 222, 1443, 34, 70, "NotesSection",ExpressionUUID->"accc5b7e-948c-460c-8c60-629880e7147d",
 CellGroupingRules->{"SectionGrouping", 50},
 CellID->147031165],
Cell[9940, 258, 562, 14, 70, "Notes",ExpressionUUID->"2d3aff28-8dc3-4b78-8b65-ca546e766951"],
Cell[10505, 274, 182, 3, 70, "Notes",ExpressionUUID->"6e6f0439-7fbe-4076-8a6e-a7708ee83216"],
Cell[10690, 279, 447, 8, 70, "Notes",ExpressionUUID->"cf40333b-9e33-4ccf-a183-c42fd19d3e94"],
Cell[11140, 289, 246, 4, 70, "Notes",ExpressionUUID->"f5963677-1d8e-40d9-bc1e-3637e8352e24"],
Cell[11389, 295, 582, 14, 70, "Notes",ExpressionUUID->"1f1ca057-16e4-4a45-802f-ca7e0ef33d27"]
}, Closed]],
Cell[11986, 312, 80, 0, 70, "PageDelimiter",ExpressionUUID->"9930199b-e492-4bb9-a07e-dab42ef9a658"],
Cell[CellGroupData[{
Cell[12091, 316, 1402, 37, 70, "PrimaryExamplesSection",ExpressionUUID->"6298a35d-ce9f-4b89-885b-7fc511d85603",
 CellID->1546596105],
Cell[13496, 355, 216, 4, 70, "Input",ExpressionUUID->"f97f273b-9c1f-4947-b58b-53b003479e02",
 CellID->1969679695],
Cell[CellGroupData[{
Cell[13737, 363, 1235, 31, 70, "ExampleSection",ExpressionUUID->"45cfcf3b-741b-4d46-93f3-e0efacad0719",
 CellID->498673447],
Cell[14975, 396, 131, 2, 70, "ExampleText",ExpressionUUID->"3370fa76-2bda-4c23-b902-9fb0fe23426d",
 CellTags->"TextAnnotation"],
Cell[CellGroupData[{
Cell[15131, 402, 997, 26, 70, "Input",ExpressionUUID->"18d4667f-d12f-4ed0-b381-a7869fd1f2d1"],
Cell[16131, 430, 110, 1, 70, "Output",ExpressionUUID->"7fc1afc0-36da-4cd9-b10e-cf6d4c65de21"]
}, Open  ]],
Cell[CellGroupData[{
Cell[16278, 436, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"8c25576c-c182-41bf-8e28-32b2c52f8942"],
Cell[16505, 443, 116, 0, 70, "ExampleText",ExpressionUUID->"534fa79d-88c9-42af-9ed1-8b6f0a9962a0"],
Cell[CellGroupData[{
Cell[16646, 447, 1028, 28, 70, "Input",ExpressionUUID->"5200e71d-8f56-4f37-9c74-9c378c2911e8"],
Cell[17677, 477, 111, 1, 70, "Output",ExpressionUUID->"810eba11-2fcb-4371-b84c-95a758b4a3fc"]
}, Open  ]]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[17849, 485, 1227, 31, 70, "ExampleSection",ExpressionUUID->"325244ed-5820-4545-bea8-eab555b77e83",
 CellID->1293636265],
Cell[19079, 518, 103, 0, 70, "ExampleText",ExpressionUUID->"8d3668f9-3265-4c0f-b1e5-98fea9ad956e"],
Cell[CellGroupData[{
Cell[19207, 522, 908, 22, 70, "Input",ExpressionUUID->"e33968a9-e325-4d52-879e-8046ac461f86"],
Cell[20118, 546, 111, 1, 70, "Output",ExpressionUUID->"965b7e91-0512-4702-814e-9a43b3a6b9d2"]
}, Open  ]],
Cell[CellGroupData[{
Cell[20266, 552, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"e2a3664a-c9ba-42a4-8d17-98027fe7f7d4"],
Cell[20493, 559, 110, 0, 70, "ExampleText",ExpressionUUID->"bbc6519c-8d6d-45b6-a1df-a3a834c4be1a"],
Cell[CellGroupData[{
Cell[20628, 563, 656, 16, 70, "Input",ExpressionUUID->"5f5c9757-6d5a-4f8f-a8bb-7f39717f9908"],
Cell[21287, 581, 111, 1, 70, "Output",ExpressionUUID->"65f1a116-13b1-4f40-aa49-2dbe110afce6"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[21447, 588, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"9be55fd7-c148-410e-91bc-b0a4f2652e85"],
Cell[21674, 595, 101, 0, 70, "ExampleText",ExpressionUUID->"d005affc-7508-4432-8de0-fb39f1d3918a"],
Cell[CellGroupData[{
Cell[21800, 599, 1159, 31, 70, "Input",ExpressionUUID->"5a784868-9a08-473a-b316-617b03d86e45"],
Cell[22962, 632, 110, 1, 70, "Output",ExpressionUUID->"2ee1694e-206d-4e61-b6dc-a73c87780896"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[23121, 639, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"2d64861a-1319-4373-a345-4a219eea3cba"],
Cell[23348, 646, 127, 0, 70, "ExampleText",ExpressionUUID->"1808ef02-a566-447b-a90c-ac04bbf0b1a4"],
Cell[CellGroupData[{
Cell[23500, 650, 999, 26, 70, "Input",ExpressionUUID->"866aa57a-1e28-4556-9dcf-7bdfda0bd0c9"],
Cell[24502, 678, 110, 1, 70, "Output",ExpressionUUID->"24db1b90-2134-4f9d-81a9-11952f97b95f"]
}, Open  ]]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[24673, 686, 1244, 31, 70, "ExampleSection",ExpressionUUID->"d1e7351f-6ef4-4d76-84c6-ff93a593edfd",
 CellID->2123667759],
Cell[25920, 719, 148, 2, 70, "ExampleText",ExpressionUUID->"259c6cc2-2c03-4611-ae1c-e820880b3845"],
Cell[CellGroupData[{
Cell[26093, 725, 1059, 28, 70, "Input",ExpressionUUID->"19d0f981-5d79-435a-b48d-d6f0d83b37fc"],
Cell[27155, 755, 110, 1, 70, "Output",ExpressionUUID->"c48a4b98-2567-4d13-af6c-eeeb093d1440"]
}, Open  ]],
Cell[CellGroupData[{
Cell[27302, 761, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"ae3b7d1d-2e04-4044-8253-4a3a75e7780c"],
Cell[27529, 768, 516, 13, 70, "ExampleText",ExpressionUUID->"89814e44-66ea-4796-ba45-6eb12ad80267"],
Cell[CellGroupData[{
Cell[28070, 785, 1017, 26, 70, "Input",ExpressionUUID->"e82701e2-e556-4955-ab6a-d3e8b0dfa8b2"],
Cell[29090, 813, 143, 2, 70, "Output",ExpressionUUID->"38b2de84-ae1b-4d89-8d56-608bd8418a8c"]
}, Open  ]]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[29294, 822, 1237, 31, 70, "ExampleSection",ExpressionUUID->"0d6dc0df-2efb-42de-ba02-f5023db5111e",
 CellID->1305812373],
Cell[30534, 855, 366, 7, 70, "ExampleText",ExpressionUUID->"569e44ea-3651-426e-af69-d07c2e298722"],
Cell[CellGroupData[{
Cell[30925, 866, 323, 6, 70, "Input",ExpressionUUID->"e5eb03bb-45dc-43e4-8b3c-bcfb373dcbd2"],
Cell[31251, 874, 111, 1, 70, "Output",ExpressionUUID->"76ee64c3-b94e-4fa6-9691-65dff1ff53cf"]
}, Open  ]],
Cell[CellGroupData[{
Cell[31399, 880, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"a77ccfc6-9c7b-4bb2-9d8f-fef9fc3d8aee"],
Cell[31626, 887, 155, 2, 70, "ExampleText",ExpressionUUID->"7e9e8640-4aa0-400c-8620-9fba7295c5ac"],
Cell[CellGroupData[{
Cell[31806, 893, 657, 16, 70, "Input",ExpressionUUID->"adbb047d-85d5-485f-9f5a-891e48833410"],
Cell[32466, 911, 111, 1, 70, "Output",ExpressionUUID->"3d98efe1-585b-4751-93d0-68e1f10b5a74"]
}, Open  ]]
}, Open  ]]
}, Closed]]
}, Open  ]],
Cell[32628, 918, 3154, 82, 70, "SeeAlsoSection",ExpressionUUID->"8446dfc2-60e7-48da-94e4-03f28d3021d3"],
Cell[35785, 1002, 692, 19, 70, "MoreAboutSection",ExpressionUUID->"38fd0463-0ce9-4a48-baa3-a9a4b76e2be7"],
Cell[36480, 1023, 78, 0, 70, "FooterCell",ExpressionUUID->"845627a0-698c-4774-9a28-1077cf20deb4"]
}
]
*)

(* End of internal cache information *)

